Jump to content
View in the app

A better way to browse. Learn more.

Tinkerunity

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

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
  • Autor

I've changed the number into 10.0, 100.0, 1000.0 and 10000.0, but it all gave the same result, then I've removed the division altogether but the result stays on "null".

 

 

Geschrieben
  • Autor

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
  • Autor

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
  • Autor

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.