Skip to content

A SensorWeb Thing for PMS3003 particle sensor (PM2.5), based on nodeMCU 1.0 board

License

Notifications You must be signed in to change notification settings

lissyx/sensorweb-nodeMCU-PMS3003

Repository files navigation

NodeMCU PMS3003 PM2.5 Sensor

This repo aims at providing a PM2.5 (and others) sensor that pushes data to the Internets, namely AirCasting API. It uses a PMS3003 + NodeMCU v1.0 (ESP-12E), as it was built as a side-project to augment (now defunct) Mozilla SensorWeb project with something that could be autonomous and outdoor.

Good Known Setup

  • Arduino IDE 1.8.8
  • ESP8266 Package v2.4.2
  • ArduinoJson v5.13.5
  • NtpClientLib v2.5.1
  • Time v1.5
  • WiFiManager v0.14
  • ESP8266TrueRandom (any version?)
  • ESP8266FS.jar v0.3.0 (not a lib, need to be installed separately into tools/ arduino subdir)

Ensure to configure board in Arduino IDE as:

  • NodeMCU 1.0 (ESP-12E)
  • 80MHz
  • Flash
  • 4M (3M SPIFFS)
  • v2 Lower Memory

Configuration

For first flash, ensure you properly populate data/ subdirectory with:

  • wifi.json
  • ntp.json
  • aircasting.json Please follow the templates named .in, copy them as the proper name under data/. Then in Arduino IDE, flash using Tools, ESP8266 Sketch Data Upload.

Default configuration should be for AirCasting.org website, but it is expected to work on any instance following their API.

Then you can build and flash. It should boot and work.

Debugging

Serial debugging should work over USB. The same data is sent over the wire, defaulting to UDP multicast address 239.0.0.1, port 8899.

Outdooring

To be able to handle outdoor, original SensorWeb project has been augmented with a power source. This leads to the design of a small PCB that serves several purposes:

  • properly fitting / holding the NodeMCU with inline connectors
  • some logic to handle PMS3003 standby mode
  • proper connector for the PMS3003 wired to the NodeMCU pins
  • proper 5v: PMS3003 tends to be picky, working with less than 4v but giving inconsistent results

The power part of the PCB is inspired from Adafruit's Minty Boost: https://learn.adafruit.com/minty-boost/overview

Solar power cannot be available 100% of the time, so it is battery-backed, using the kit provided by Adafruit: https://learn.adafruit.com/usb-dc-and-solar-lipoly-charger?view=all

Solar panel are also provided, though they can be found at a lot of different places.

Any LiPo or LiIon should work.

Checkout the Kicad project for exact references.

About

A SensorWeb Thing for PMS3003 particle sensor (PM2.5), based on nodeMCU 1.0 board

Resources

License

Stars

Watchers

Forks

Packages

No packages published