Skip to content

avaldebe/AQmon

Repository files navigation

AQmon

DIY Air Quality Monitor

Controler

Sensors

  • BMP085/BMP180: pressure and temperature
  • AM2320/AM2321: relative humidity and temperature
  • BME280: pressure, relative humidity and temperature (alternative)
  • PMS3003: PM1, PM2.5 and PM10
  • MAX17043: LiPo fuel gauge (optional)
  • Other ICs/sensors/modules not relevant for this aplication, but nonetheless interesting:
    • Arduino pro mini (ATMEGA328P, 8bit AVR, 3.3V 8MHz): 8-channel 10-bit ADC, 6-channel 8-bit PWM, and programable sensor hub
    • Maple mini (STM32F103CB, 32-bit ARM Cortex M3, 3.3V 72MHz): 9-channel 12-bit ADC, 12-channel 16-bit PWM, and programable sensor hub
    • CD4051: 8-channel analog multiplexer/demultiplexer, to extend the esp8266 ADC
    • INA219: voltage, current and power
    • PCF8591: 4-channel 8-bit ADC and 1-channel 8-bit DAC, 4 addresses
    • ADS1115: 4-channel 16-bit ADC, 4 addresses
    • MCP4725: 1-channel 12-bit DAC, 2 addresses
    • PCA9685: 16-channel 12-bit PWM, 62 addresses

Development HW

  • Status RGB LED
  • Base Shield: base board for wide nodemcu modules (devkit-0.9). Incudes a 5V/1A buck regulator.
  • Motor Shield: base board for thin nodemcu modules (devkit-1.0). Incudes a L293D dual H-bridge IC.

Plugins

ToDo

  • lua_modules: Under 0.9.6 there is bearly enough RAM for the current modules. Moved to 1.4.0 custom nodemcu-firmware.
    • MAX17043 sensor.
    • browser side makrdown with strapdown.js
    • index.md: index page with thingspeak plugins and external widgets
    • config.md: config page
      • save params to keys.lua
      • wifi.SOFTAP only(?)

Alternative implementations

  • RPi: python powered moniitor.
    • Fast to prototype new sensors.
    • Extensive python sensor libraries.
    • Weekend project.
  • esp-link: espXX + atmega328/168 (w/optiboot).
    • Divide the problem in wifi/post (esp) and sensor-read (atmega).
    • Extensive arduino sensor libraries.
    • Re-program the atmega OTA.