GithubHelp home page GithubHelp logo

jthiller / cubecell-helium-vindriktning-particle-sensor Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hypfer/esp8266-vindriktning-particle-sensor

27.0 3.0 11.0 6.45 MB

Helium LoRaWAN data reporting via a Heltec Cubecell for the Ikea VINDRIKTNING PM2.5 air quality sensor

License: Apache License 2.0

C++ 86.92% C 1.93% JavaScript 11.15%
iot-device helium-network

cubecell-helium-vindriktning-particle-sensor's Introduction

Helium LoRaWAN connectivity for the Ikea VINDRIKTNING

This repository contains an Heltec CubeCell firmware, which adds Helium LoRaWAN connectivity to the Ikea VINDRIKTNING PM2.5 air quality sensor. The modification doesn't interfere with normal operation of the IKEA device in any way. The CubeCell just adds another data sink beside the colored LEDs.

half_assembled

The CubeCell seems to be 5V-tolerant, but just in case you can wire in the data line with a voltage divider.

Prerequisites

To extend your air quality sensor, you will need

Fortunately, there is a lot of unused space in the enclosure, which fits the HTCC-AB01 well. Also, everything we need is accessible via easy to solder testpoints.

Hardware

To install, just unscrew the four visible screws in the back of the enclosure.

There are also three screws holding the IKEA PCB in place. These aren't necessary to remove since you can solder in-place, however personally, I'd recommend taking the board out of there since it will be easier to solder without fear of accidentally melting some plastic.

board

As you can see in this image, you'll need to solder wires to GND, 5V and the Testpoint that is connected to TX of the Particle Sensor.

Then just connect these Wires to GND, VIN (5V) and Pin 2 on the CubeCell.

[Optional] If you choose to include a voltage divider, you can wire it in as follows: voltage divider

Done.

Software

The firmware can be built and flashed with VS Code using the PlatformIO plugin. PRs welcome for any Arduino IDE support/testing.

You can follow the guide below to set up the PlatformIO environment and CubeCell board:

https://docs.helium.com/use-the-network/devices/development/heltec/cubecell-dev-board/platformio/

LoRaWAN network keys will need to be added in the code. All keys are MSB. After keys are added; just build, flash, and you're done.

Downlinks

Update Interval

By default, the sensor will update on a 1 minute interval. LoRaWAN update interval is configurable via LoRaWAN downlink. Set the interval in hours, minutes, or both. Values are submitted in two separate buckets, [hours] and [minutes]. Values up to 255 are supported in each bucket. Use a tool like https://v2.cryptii.com/decimal/base64 to convert the two values into base64 before submitting them as a downlink in Helium Console. e.g.

"00 15" converts to "AA8=", representing 0 hrs, 15 min

Values are added, so 01 15 is equivalent to 00 75. Further, 02 00 = 00 120 etc.

Misc

The VINDRIKTNING consists of a custom(?) Cubic PM1006-like Sensor + another uC that does all that LED stuff, which talk via UART. Therefore, to add LoRaWAN connectivity, we just need to also listen to the TX of the Sensor and decode those messages. The transitions from Green to Yellow and Yellow to Red in the Ikea firmware are at around 30μg/m³ and 100μg/m³. There is a great analysis of the sensor's capabilities here.

References and sources

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.