Jump to content

WeatherStationWebsite.php gives no Temperature


blackfox

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 zu diesem Kommentar
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 zu diesem Kommentar
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 zu diesem Kommentar
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.

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...