Skip to content

Create an IoT application using a F103RB Nucleo ARM board, an Arduino wather shield from TE Connectivity, an ESP8266 thing and a Raspberry PI

License

Notifications You must be signed in to change notification settings

nikmonios/IoT_Weather_Station

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IoT_Weather_Station

Create an IoT application using a F103RB Nucleo ARM board, an Arduino wather shield from TE Connectivity, an ESP8266 thing and a Raspberry PI


WORK IN PROGRESS!!!


Development boards used:

  1. STM32 F103RB Nucleo board - http://www.st.com/en/evaluation-tools/nucleo-f103rb.html
  2. Raspberry PI 3 - Model B - https://www.adafruit.com/products/3055
  3. Sparkfun ESP8266 Thing - https://www.sparkfun.com/products/13231
  4. Arduino Weather Station - http://www2.mouser.com/ProductDetail/TE-Connectivity/DPP902S000/?qs=1fQ7IOp4WrheKF877Di7Eg%3d%3d

What does it do?
This IoT application uses a weather station from TE Connectiviy to measure physical parameters (Temperature, Pressure and Humidity) using various sensors. Originally, TE Connectivity has released the source code of the shield's library for Arduino, but I decided to re-write it for ARM-based Nucleo boards, using the mbed online compiler. Please note, that you can use the Arduino IDE to download the stm32duino and program ARM-based boards with the Arduino C++, but I wanted a challenge, and I used mbed c++.

So, the Nucleo F103RB is the board that will host the weather shield. It responsible for deciding when to sleep, when to take samples and when to transmit samples. In order for the application to communicate with the internet, an ESP8266 thing was used, which communicates serially with the Nucleo board. The Nucleo F103RB sends samples 4 times per hour (every 15 minutes) to the ESP8266, and the ESP8266 sends them to a cloud VM. The ESP8266 will be programmed using microPython.

The Raspberry Pi will be used to emulate the cloud VM. It will host the Flask server that will accept http requests from the ESP8266, as well as an application that will make a forecast for the weather of the vicinity in the near future. The predictions will be also hosted on the cloud so the user can see them from any place in the planet - as long as there is an internet connection!

This picture shows the topology of the application:

alt text


Flashing the boards:
To flash the F103RB board, I used the cloud-based mbded IDE compiler. You can create a free account on https://os.mbed.com/ , and then go to the compiler page https://os.mbed.com/compiler, where all your projects are saved. When you compile your project, it is automatically downloaded to your system, and you can drag and drop it to the Nucleo board, in order to start the flashing.


To flash the ESP8266, I used the Zerynth IDE. Instructions on how to setup the ESP8266 and Zerynth, can be found on https://www.zerynth.com/get-started/

About

Create an IoT application using a F103RB Nucleo ARM board, an Arduino wather shield from TE Connectivity, an ESP8266 thing and a Raspberry PI

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published