Jump to content

Recommended Posts

Geschrieben

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?

 

 

Geschrieben

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.

Geschrieben

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!

Geschrieben

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?

 

Geschrieben

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

Join the conversation

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

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...