WeCMS stands for Weather and Climate Monitoring Station. It is a homemade IoT weather station that was made with the help of an Arduino. It currently has a temperature, a humidity and a barometric pressure sensors. It is also connected with an analog ambient IR light sensor through a 16 bit DAC. For the temperature and humidity sensors I have used the HDC1080, for the barometric pressure sensor the BMP180 and for the ambient IR light sensor a simple IR photodiode. Regarding the DAC, I have used the ADS1115 of Texas Instruments. Also I am using an ESP8266 for the wireless data transmission.
- 1x Arduino
- 1x HDC1080
- 1x BMP180
- 1x IR photodiode
- 1x ADS1115
- 1x ESP8266
Before you start doing anything with the software you need to make the circuit. I have not published yet the circuit but it is pretty straight forward. Both the HDC1080, the BMP180 and ADS1115 (the IR sensor as it is connected to the ADC) use the I2C communication protocol. This means that they need only 4 wires: VCC,GND,SDA and SCL but the ADS1115 needs another connection from ADDR to GND. Finally you need to connect the ESP8266 the usual way to pins 10 and 11 but there is no need to describe it here.
The code I developed uses the following 5 libraries:
Wire
Adafruit_BMP085
ClosedCube_HDC1080
Adafruit_ADS1015
SoftwareSerial
If any of these libraries is missing, the code will not compile.
Before uploading the code to the Arduino you will need to change some parts of it. You need to replace the dashes of the following part of code to your wifi network name and password.
String network = "--------";
String password = "--------";
You need to also replace the dashes of the following part of code to your ThingSpeak API key.
String GET = "GET /update?api_key=----------------";
Now you are ready to upload the code to your Arduino! The weather station will work but there are still some improvements you can do.
The WeCMS collects the values of the sensors and sends them to ThingSpeak. From there you can view the data as graphs but these graphs are not customizable and most importantly, they require a powerful computer to be viewed properly. So I came up with a python program that downloads the data from ThingSpeak, re-plots them and saves them as .jpg images. These graphs are more customizable and since they are just a .jpg, they do not require a powerful computer to be viewed, but there is a problem. You can only see the new graphs in your computer. Thus, you need to host these graphs somewhere. I have chosen to do that with Dropbox. It is free and it will do the job just fine. To do that, you will need to copy the graphs made in the WeCMS_plotter folder and paste them as shortcuts to Dropbox. Then you need to create a public link for each graph (or set of graphs). Now you need to make a website for your project. I have created 2 websites. One from scratch and one with Weebly's templates.
Bitcoin address: 158K8rvpr2niipfcBZ8SnMXNuZNHqtYufN
This project is licensed under the MIT License - see the LICENSE file for details