balenaSense v2: Updated temperature, pressure, and humidity monitoring for Raspberry Pi

Please use the thread below to discuss the related blog post:

Can i Use a Raspberry pi 0?

The Pi Zero is not supported by InfluxDB so balenaSense won’t run on the Zero. However, you can use our “Simple Sensor” project (GitHub - balena-io-playground/simple-sensor: Read sensor data and send via MQTT) on a Pi Zero and send its data to balenaSense or any other project using MQTT.

I have two sensors connected. VEML6070 and BME680.
The VEML6070 sensor is not working for me. Getting an error:
022-03-02T21:43:00Z E! [inputs.http] Error in plugin: [url=http://sensor:7575]: Get “http://sensor:7575”: dial tcp 172.17.0.4:7575: connect: connection refused
The BME680 is working fine.

Hello @cjlfilm I attached the same sensors to a new instance of balenaSense but was not able to reproduce that error. Can you tell me a bit more about your setup, such as the device type and version of balenaOS you’re using?

Do you know if this will work with the Adafruit MCP9600 I2C Thermocouple Amplifier? I have some on order, but thought I would ask before receiving them, because I’m impatient it seems. :slight_smile: I need a higher temp range (up to 850*F) with a 5-meter Type-K thermocouple (6 of them, actually), which is why I’m going to try the MCP9600.

Thanks!

I don’t see an iio driver for the MCP9600 available here: Kconfig « temperature « iio « drivers - kernel/git/stable/linux.git - Linux kernel stable tree which is the first step in determining if it works with the sensor block. (If it was there, the next step would be to see if it was included in balenaOS) However, even though it does not work with this block, you could easily install the Adafruit module in a container with pip3, following the instructions here: GitHub - adafruit/Adafruit_CircuitPython_MCP9600: CircuitPython driver for the MCP9600 thermocouple I2C amplifier. and using the simple Python example on the same page.

I’ll go take a look at the code there - thanks for the info!

I used balenaOS 2.82.10+rev1 with VELM6070 and BME680 in parallel. Should be fine. In the mean time, the BME680 has failed. The sensor is not at all suited for outdoor use, due to condensation. Sensor was installed inside a stevenson screen. Is there any sensor available, suited for outdoor (north-west europe) use? Or maybe a way to protect the sensor from condensation inside the sensor cavity, without interfering with results?

Hello @cjlfilm you could try a thermocouple which is pretty rugged against moisture, but it will only provide temperature readings. Adafruit mentions that the SCD-40 is suited for outdoor use but it costs a bit more for the CO2 functionality, although you also get temperature and humidity readings. I’ve been using an SCD-30 outdoors in a small stevenson screen for about four months in the Northeast US harsh winter/ wet spring with no problems, although it’s protected a bit under a roof overhang. I can’t guarantee you’ll get the same results though! Note that none of these are currently supported by the sensor block, so you’d have to install their respective drivers in a container.

If you could provide instructions on how to install the drivers, that would be great. Will CO2 show up in balena sense?

You can take a look at our Air Quality device project for an example of how to install the drivers for a sensor in a container: balena-iaq/iaq at master · balena-io-playground/balena-iaq · GitHub
BalenaSense itself will not show CO2 because none of the supported sensors have CO2. However, since balenaSense is built with blocks, you can copy most of the services it uses and just replace the sensor block in a manner similar to the project mentioned above. For more details about the “building blocks” of balenaSense see this post: balenaBlocks in-depth: Sensor and Pulse
Hopefully this will be enough information to get you started but please reach back out if you get stuck!

Hi, using Rpi 3b+
balenaOS 2.98.33
supervisor: 13.1.11
current release/target release: 13.1.11

All working well except for Grafana Telegram notifications. Seems to be a certificate issue with Balena.
When i click ‘test notification’ on grafana; I get this error msg in Balena Cloud log:

dashboard INFO[06-07|18:14:23] Sending telegram notification logger=alerting.notifier.telegram chat_id=-1730411451 bot_token=[–My_bot_API–] apiAction=sendMessage
dashboard EROR[06-07|18:14:23] Failed to send webhook logger=alerting.notifier.telegram error=“Post “https://api.telegram.org/bot[--My_bot_API--]/sendMessage”: x509: certificate signed by unknown authority” webhook=HumidityAlerts

Any tips would be much appreciated,
Thanks

Adding the BALENASENSE_TEMP_OFFSET variable doesn’t appear to be working for me when I add it to the device. I have tried all the services in the dropdown. Can anyone confirm if their offset variables work?

Can this be used without BalenaOS or the cloud stuff? I have an existing docker stack and I’m just looking to add the ability collect environment stats using the BME680 and would prefer to not make radical changes to the setup and keep it entirely local.

Hello @rcarteraz welcome to the balena community!

Yes! that might work using the Docker stack on a Linux device. Try it and let us know if works!

1 Like

Thanks, will do. I’ve gone ahead and installed it a on separate rpi for now so I could experiment with Balenacloud. It’s a pretty cool piece of software.

1 Like

Is there a way to convert the VOC readings into an AQI reading instead? That would be better.

@rcarteraz what do you recommend?

I don’t have a recommendation, I was asking if there was a way to do that as it would be a better visual representation than a resistance value. The vast majority of folks don’t know what a resistance value is, let alone how to interpret it.