Jump to content

WeatherStationWebsite.php gives no Temperature


blackfox
 Share

Recommended Posts

Hello,

 

I'm testing the weather station with PHP.

 

For WeatherStationWebsite.php I use:

 

<?php

 

require_once('Tinkerforge/IPConnection.php');

require_once('Tinkerforge/BrickletAmbientLight.php');

require_once('Tinkerforge/BrickletHumidity.php');

require_once('Tinkerforge/BrickletBarometer.php');

 

use Tinkerforge\IPConnection;

use Tinkerforge\BrickletAmbientLight;

use Tinkerforge\BrickletHumidity;

use Tinkerforge\BrickletBarometer;

 

$ipcon = new IPConnection();

$brickletAmbientLight = new BrickletAmbientLight("enG", $ipcon);

$brickletHumidity = new BrickletHumidity("eFY", $ipcon);

$brickletBarometer = new BrickletBarometer("eUy", $ipcon);

 

$ipcon->connect("localhost", 4223);

 

$illuminance = $brickletAmbientLight->getIlluminance()/10.0;

$humidity = $brickletHumidity->getHumidity()/10.0;

$air_pressure = $brickletBarometer->getAirPressure()/1000.0;

$temperature = $brickletBarometer->getChipTemperature()/100.0;

 

$response = array (

    "illuminance"  => "Illuminance: $illuminance Lux",

    "humidity"    => "Humidity: $humidity %RH",

    "air_pressure" => "Air Pressure: $air_pressure mbar",

    "temperature"  => "Temperature: $temperature °C",

);

 

print_r(json_encode($response));

 

?>

 

But the result is:

 

{"illuminance":"Illuminance: 1.7 Lux","humidity":"Humidity: 68.6 %RH","air_pressure":"Air Pressure: 1001.318 mbar","temperature":null}

 

What is the correct code to retrieve the temperature from the barometer bricklet?

 

 

Link to comment
Share on other sites

PHP Version 5.4.4-14+deb7u2

 

BCMath support enabled

 

include_path .:/usr/share/php:/usr/share/pear

 

Recent download: pear install Tinkerforge.tgz

 

And may I add that WeatherStation.php does work and gives me a correct temperature.

 

But I cannot get a temperature with WeatherStationWebsite.php.

Link to comment
Share on other sites

If you print $temperature, is that also "null"?

 

Your PHP seems to evaluate "Temperature: $temperature °C" as null. I am not sure why that is. Perhaps you can try to change the string bit for bit, to find what excatly the reason is!

Link to comment
Share on other sites

It seems that the ° in front of the C causes the problem.

 

By omitting the ° I get a response: {"illuminance":"Illuminance: 838.1 Lux","humidity":"Humidity: 61 %RH","air_pressure":"Air Pressure: 1013.163 mbar","temperature":"Temperature: 20.46 C"}

 

Adding a ° gives always a null no mater where it is put.

 

Is ° a not accepted character in PHP?

 

Link to comment
Share on other sites

utf-8 encoding wasn't the problem.

 

I fixed it as follows:

 

Changed:  "temperature"  => "Temperature: $temperature °C"

 

To:      "temperature"  => "Temperature: $temperature &degC"

 

Or:      "temperature"  => "Temperature: $temperature &#176C"

 

So the °C was changed to &decC or to &#176C

 

This gives the correct response:  Temperature: 18.83 °C

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...