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!