darkcurrent / WeCMS

Code and more for the WeCMS (Weather and Climate Monitoring Station), an IoT weather station

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WeCMS

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.

Hardware

What you will need

  • 1x Arduino
  • 1x HDC1080
  • 1x BMP180
  • 1x IR photodiode
  • 1x ADS1115
  • 1x ESP8266

Circuit

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.

Software

Libraries

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.

Things to do before uploading the code

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=----------------";

Upload!

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.

Data Handling and Plotting

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.

Donate

Bitcoin address: 158K8rvpr2niipfcBZ8SnMXNuZNHqtYufN

btc

License

This project is licensed under the MIT License - see the LICENSE file for details

About

Code and more for the WeCMS (Weather and Climate Monitoring Station), an IoT weather station

License:MIT License


Languages

Language:Python 58.7%Language:Arduino 41.3%