Multi purpose Moteino sensor

So, after nearly a year running my first Moteino temperature sensors I have finally deployed a new range of sensors. These new sensors have the possibility to connect the following sensors:

  • Temperature and humidity (DHT22)
  • Atmospheric pressure (BMP180 or GY-68)
  • Light sensor (BH1750FVI)
  • UV sensor (ML8511)
  • Dust / air quality sensor (GP2Y1010AU0F)
  • Moist / rain / flood sensor

As of now I have only connected a DHT22 and a BMP180. I plan to have an air quality sensor in the bedroom and a UV sensor outside.

In addition to the sensors I can also connect a Nokia 5110 display to the sensors. Since I have yet to find a good project box that will fit the display, I will use them without. The image below shows the sensor with a display connected.

I made the program/sketch so I only have to change a few #define to adopt it to any environment. Schematic an code at the bottom of the page. Please note that I have not yet made any code for the Light sensor, UV sensor nor the air quality sensor. I will build more when I need to.

The sensors also have a 3mm LED that flashes rapidly every 32 seconds to show they are alive. Also, when the batteries are low, the LED will flash rapidly every 8 seconds. Nice indication to change batteries. If it turns out that these flashes will drain the batteries, I just have to change a #define in the code.

According to my calculations the sensors will run for about 6 months on standby with a 3V CR2477 coin cell battery. Right now, size doesn't matter so I use two "huge" AA batteries. That should be enough for well over a year.

Data from the sensors are uploaded to a database using my own API. The data are stored in the following JSON format:

{"thing":"bedroom","lastupdated":"22:56:56 10.01.2015","humanname":"Bedroom","nodeid":"204","rssi":"-73","temperature":"16.90","humidity":"57.00","heatindex":"26.63","millibar":"955.00","uptime":"16560","batteryvoltage":"2930","radiotemperature":"16"}

The heatindex calculation I need to work on, as it's not correct. I have not decided if I want to do that in the Moteino sketch or in the Perl script used to upload the sensor data. Time will show.

As of now I have 4 sensors operational. Bedroom, bathroom, livingroom and outside. I plan to make more, and maybe smaller, sensors in the near future. The sensors update every 6 minutes, that means a total of 40 database records per hour, 350.400 records per year.

The code (may change without notice):

Part list

  • Moteino
  • BMP180/GY-68
  • DHT22
  • 100 ohm resistor
  • 3mm green LED
  • Nokia 5110 display (optional)
  • Wires
  • Short female to female jumper wires
  • Headers (female & male)
  • Veroboard or PCB
  • Battery holder
  • 2xAA batteries
  • Box