Difference between revisions of "Open Source WiFi Weather Station"

From Microduino Wiki
Jump to: navigation, search
(Other Equipment)
(Other Equipment)
 
(49 intermediate revisions by the same user not shown)
Line 1: Line 1:
{| style="width: 840px;"
 
|-
 
|
 
 
==Outline==
 
==Outline==
 
*Project: Open Source WIFI Weather Station System.(ESP8266 connected to Blynk)   
 
*Project: Open Source WIFI Weather Station System.(ESP8266 connected to Blynk)   
Line 68: Line 65:
 
|Shell ||1||
 
|Shell ||1||
 
|}
 
|}
[[File:weatherStationMatiralAll.png||1000px|center]]
+
[[File:weatherStationMatiralAll.png||1000px]]
  
 
{| class="wikitable" style="background-color:#FEF9E7;"
 
{| class="wikitable" style="background-color:#FEF9E7;"
|'''Note:''' Different revisions will contain different components. Most noteable are:
+
|'''Note:''' Different revisions will contain different components.
*Duo-V will be replaced with a Microduino-Cube-S1 .
+
Most noteable are:
 +
*Duo-V will be replaced with a Microduino-Cube-S1.
 
*Humidity/TempSensor will be replaced with a Tem&Hum-S2.
 
*Humidity/TempSensor will be replaced with a Tem&Hum-S2.
 
|}
 
|}
Line 84: Line 82:
  
  
*Adopt [[Microduino-Core+]] to analyze and process sensor data.   
+
Other functions:
*Display on [[Microduino-OLED]]
+
*Use the [[Microduino-Core+]] to analyze and process sensor data.   
*Connect the Weather Station with Blynk via [[Microduino-WIFI(ESP)]]  
+
*Display data on the [[Microduino-OLED]].
*Each sensor connects with [[Microduino-Sensorhub]]  
+
*Connect the Weather Station with Blynk via [[Microduino-WIFI(ESP)]].
[[File:Wifistationtheory.jpg||600px|center]]
+
*Each sensor connects with [[Microduino-Sensorhub]].
  
 
==Get and Configure Blynk==
 
==Get and Configure Blynk==
 
Next, we'll learn how Microduino interacts with Blynk through the configuration process of the Weather Station.   
 
Next, we'll learn how Microduino interacts with Blynk through the configuration process of the Weather Station.   
  
===Get Blynk Phone Client===
+
===Download the Blynk App===
*Please refer to [[https://www.microduino.cn/wiki/index.php/Microduino-Blynk_Getting_start/zh#.E5.88.9B.E5.BB.BA.E9.A1.B9.E7.9B.AE Get and Configure Blynk]]
 
  
===Add Configuration Items ===
+
Visit the Google Play Store or the Apple App Store and download the '''Blynk''' app.
  
{| border="0" cellpadding="10" width="100%"
+
You'll need to setup an account with Blynk before proceeding. Please use a valid e-mail as your authentication tokens will be sent to that e-mail.
|-
 
|width="50%" valign="top" align="left"|
 
**You can scan the two-dimension code below to get Weather Station APP. 
 
|width="50%" valign="top" align="left"|
 
[[File:BlynkWeatherStationLink.png||300px|center]]
 
|}
 
  
 +
==Using the Blynk App==
  
{| border="0" cellpadding="10" width="100%"
+
*On the main screen of the Blynk app. Click on the '''QR code scanner''' to scan the Weather Station app.  
|-
+
::[[File:wws_qr_scan.png|300px]]
|width="50%" valign="top" align="left"|
 
*Also, you can make your own one.
 
*In this case, you can click the panel and call out '''WIDGET BOX''', on which you can see many choices.  
 
|width="50%" valign="top" align="left"|
 
[[File:BlynkSetting3.png||200px|center]]
 
|}
 
  
  
 +
*Scan the QR code below.
 +
::[[File:Wws_qr_code.png|300px]]
  
{| border="0" cellpadding="10" width="100%"
 
|-
 
|width="50%" valign="top" align="left"|
 
*Add '''Value Display''' item and name "temperature" to display '''Temperature value''' acquired. 
 
*Select V2 on '''INPUT'''; Choose PUSH on '''READING FREQUENCY''', which indicates the temperature is sent from the Weather Station and the frequency is controlled by Microduino Client. 
 
|width="50%" valign="top" align="left"|
 
[[File:BlynkSetting4.png||200px|center]]
 
|}
 
  
 +
*Once the project has loaded, click on '''Project Settings''' (nut icon).
 +
::[[File:wws_project_settings.png|300px]]
  
  
{| border="0" cellpadding="10" width="100%"
+
*Under Auth Tokens, click on '''Email all'''. This will send the authentication token to your registered e-mail. Make note of this, as you will need this token later.
|-
+
::[[File:wws_auth_token.png|300px]]
|width="50%" valign="top" align="left"|
 
The corresponding code at the Microduino Client is: 
 
|width="50%" valign="top" align="left"|
 
<source lang="cpp">
 
void senTempHumi() {
 
  am2321.read();
 
  float sensor_tem = am2321.temperature / 10.0;
 
  float sensor_hum = am2321.humidity / 10.0;
 
  Blynk.virtualWrite(V2, sensor_tem);
 
  Blynk.virtualWrite(V3, sensor_hum);
 
  
  oled(sensor_tem, sensor_hum, sensor_light, sensorPM25, Sensor_etoh);
 
}
 
</source>
 
|}
 
  
 +
*Click back to return to the Weather Station app.
 +
::[[File:Wws_weather_app.png|300px]]
  
 +
==Programming==
  
{| border="0" cellpadding="10" width="100%"
+
===Software Setup===
|-
+
Please follow the guide to ensure your software is correctly setup. The software is required to program the WiFi Weather Station.
|width="50%" valign="top" align="left"|
 
* The setting of the humidity is similar with that of temperature; Set '''INPUT''' as V3 and send it through a timer function " senTempHumi()".
 
|width="50%" valign="top" align="left"|
 
[[File:BlynkSetting5.png||200px|center]]
 
|}
 
  
 +
Download the latest software for your operating system and follow the getting started guides:
 +
{{Clickable software guide boxes}}
 +
{{Clickable_headed_image_table_box_clear}}
  
 +
===Programming the Weather Station===
 +
*Stack '''[[Microduino-Core+]]''' and '''[[Microduino-USBTTL]]''' together. 
 +
*Connect '''[[Microduino-USBTTL]]''' with a USB cable. Connect the other end to the PC being used.
 +
*Open the Arduino IDE for Microduino development environment. (Please refer to the [[#Software Setup]] section).
 +
*Configure the software to upload to the Core+ module as follows:
 +
**Tools > Board > '''Microduino/mCookie-device'''
 +
**Tools > Processor > '''Microduino/mCookie-Core+ (644pa)@16M,5V'''
 +
**Tools > Port > '''select the port''' (On MacOS, NOT the Bluetooth one).
 +
*Download the code for Weather Station here: '''[[File:ESP8266BlynkWeatherStationV2.zip]]'''
 +
*Unzip the file. Under the software (Arduino IDE), go to '''File > Open...''' and navigate to the unzipped folder and open the '''ESP8266BlynkWeatherStationV2.ino''' file.
 +
*The sketch with multiple files will open. Click on the '''userDef.h''' tab. You'll need to configure the WiFi connection (2.4GHz networks, non 5GHz) with:
 +
**'''SSID'''
 +
**'''PASS''' (WiFi password)
 +
**'''auth''' key as noted earlier in the Blynk app sent to you via e-mail.
 +
:::[[File:Wws_configuration.png|500px]]
 +
*Click on the '''upload button''' (right arrow icon on the top left) to upload the program.
 +
*The program will compile and upload. Once completed a upload successful message will appear on the bottom left.
  
{| border="0" cellpadding="10" width="100%"
+
==Hardware Buildup==
|-
+
===Step 1===
|width="50%" valign="top" align="left"|
+
*Fixate [[Microduino-OLED]] and '''Structure-A1''' with screws. 
* The frequency of the timer can be achieved by codes below: 
+
[[File:Waetherstep1.jpg||600px]]
|width="50%" valign="top" align="left"|
 
<source lang="cpp">
 
void senTempHumi() {
 
  SimpleTimer temHumtimer;
 
  temHumtimer.setInterval(2000L, senTempHumi);
 
}
 
</source>
 
|}
 
  
 +
===Step 2===
 +
*Assemble '''Structure-B1~B5''' with '''Structure-B6'''. 
 +
[[File:Waetherstep2.jpg||600px]]
  
 
+
===Step 3===
{| border="0" cellpadding="10" width="100%"
+
{| class="wikitable" style="background-color:#FEF9E7;"
|-
+
|'''Note:''' Different revisions of this kit may contain different components. Either a '''Duo-H''' or '''Cube-S1''' should be used. '''Duo-H''' is illustrated.
|width="50%" valign="top" align="left"|
 
* Set PM2.5's '''INPUT''' as V6, '''READING FREQUENCY''' as 5s, which represents frequency of the acquired PM2.5 data. 
 
|width="50%" valign="top" align="left"|
 
[[File:BlynkSetting6.png||200px|center]]
 
 
|}
 
|}
 +
*Fixate [[Microduino-Duo-h]] / Microduino-Cube-S1 on '''Structure-A2''' with screws and nuts. 
 +
*Stack the following modules on [[Microduino-Duo-h]] / Microduino-Cube-S1. 
 +
**[[Microduino-Core+]]
 +
**[[Microduino-USBTTL]]
 +
**[[Microduino-WiFi]]
 +
**[[Microduino-Sensorhub]] (on the very top of the stack)
 +
*Attach the included adhesive strip onto the '''PM2.5 Sensor''' GP2Y1010AU0F, then to the base board. 
 +
[[File:Waetherstep3.jpg||600px]]
  
 
+
===Step 4===
 
+
{| class="wikitable" style="background-color:#FEF9E7;"
 
+
|'''Note:''' Different revisions of this kit may contain different components. Either a '''Temp&Hum''' or '''Tem&Hum-S2''' should be used. '''Temp&Hum''' is illustrated.
 
 
{| border="0" cellpadding="10" width="100%"
 
|-
 
|width="50%" valign="top" align="left"|
 
* The corresponding code at the Microduino Client is:
 
|width="50%" valign="top" align="left"|
 
<source lang="cpp">
 
BLYNK_READ(V6) {
 
  Blynk.virtualWrite(V6, sensorPM25);
 
}
 
</source>
 
 
|}
 
|}
 +
*Assemble the following sensors with '''Structure-B7, B8, B9'''. 
 +
**Temperature and humidity sensor ([[Microduino-Temp&Hum]] / Tem&Hum-S2)
 +
**Air quality detector ([[Microduino-Air Quality]])
 +
**Light sensor ([[Microduino-Light]])
 +
[[File:Waetherstep4.jpg||600px]]
  
 
+
===Step 5===
{| border="0" cellpadding="10" width="100%"
+
{| class="wikitable" style="background-color:#FEF9E7;"
|-
+
|'''Note:''' Different revisions of this kit may contain different components. Either a '''Temp&Hum''' or '''Tem&Hum-S2''' should be used. '''Temp&Hum''' is illustrated.
|width="50%" valign="top" align="left"|
 
* Similarly, set the '''INPUT''' of the Light Sensor as V4 and the frequency is to get value every 3s.  
 
|width="50%" valign="top" align="left"|
 
[[File:BlynkSetting7.png||200px|center]]
 
 
|}
 
|}
  
 +
*Connect the sensors below to [[Microduino-Sensorhub]] using a connector wire.
 +
**Temperature and humidity sensor ([[Microduino-Temp&Hum]] / Tem&Hum-S2) to '''pin IIC'''.
 +
**Air quality detector ([[Microduino-Air Quality]]) to '''pin A2/A3'''.
 +
**Light sensor ([[Microduino-Light]]) to '''pin A0/A1'''.
 +
**PM2.5 to '''pin 4/5'''.
 +
*Refer to the picture below, stack all sensors on the slot of '''Structure-B1''' and '''Structure-B2'''. 
 +
*After that, connect '''Structure-A1''' and '''Structure-A2''' at the top and bottom of the system respectively. 
 +
[[File:Waetherstep5.jpg||600px]]
  
 +
===Step 6===
 +
*Complete the steps above, plug in a USB cable then fixate '''Structure-B0'''. Congratulations! You finished the buildup of the Weather Station.
  
 +
===Step 7===
 +
*Power on the Weather Station.
 +
*The Weather Station will connect to the WiFi network. This may take a minute or so.
 +
*After connecting, the OLED screen will display the sensor data.
 +
*If the data does not display, check the serial port in the IDE. It should display debugging information.
  
{| border="0" cellpadding="10" width="100%"
+
===Step 8===
|-
+
*If the Weather Station successfully connect to the WiFi network. You can now view the data on the Blynk Phone app.
|width="50%" valign="top" align="left"|
+
**WiFi Weather Station successfully connected to the WiFi network.
* The corresponding code at the Microduino Client is:
+
::[[File:Wws_connected_to_wifi.png|Wws_connected_to_wifi.png]]
|width="50%" valign="top" align="left"|
 
<source lang="cpp">
 
BLYNK_READ(V4) {
 
  sensor_light = map(analogRead(A0), 0, 1023, 0, 255);
 
  Blynk.virtualWrite(V4, sensor_light);
 
}
 
</source>
 
|}
 
 
 
 
 
 
 
 
 
{| border="0" cellpadding="10" width="100%"
 
|-
 
|width="50%" valign="top" align="left"|
 
* The '''INPUT''' of the methane gas is V5 and the frequency is to get value every 5s.
 
|width="50%" valign="top" align="left"|
 
[[File:BlynkSetting8.png||200px|center]]
 
|}
 
 
 
 
 
 
 
 
 
{| border="0" cellpadding="10" width="100%"
 
|-
 
|width="50%" valign="top" align="left"|
 
* The corresponding code at the Microduino Client is: 
 
|width="50%" valign="top" align="left"|
 
<source lang="cpp">
 
BLYNK_READ(V5) {
 
  Sensor_etoh= map(analogRead(A2), 0, 1023, 0, 30);
 
  Blynk.virtualWrite(V5, Sensor_etoh);
 
}
 
</source>
 
|}
 
 
 
 
 
 
 
 
 
{| border="0" cellpadding="10" width="100%"
 
|-
 
|width="50%" valign="top" align="left"|
 
*Finally, your phone panel turns into this:
 
|width="50%" valign="top" align="left"|
 
[[File:BlynkSetting12.png||200px|center]]
 
|}
 
 
 
==Program Download==
 
 
 
Weather Station Code: [https://github.com/Microduino/ESP8266BlynkWeatherStation ESP8266BlynkWeatherStation]
 
 
 
==Programming==
 
*Stack '''[[Microduino-Core+]]''' and '''[[Microduino-USBTTL]]''' together. 
 
**Connect '''[[Microduino-USBTTL]]''' for program uploading with a USB cable. 
 
**Attention: Please upload programs before stacking all modules together. 
 
*Open Arduino IDE for Microduino development environment. (Please refer to: '''[[AVR Core:Getting started]]''')
 
*Click '''【Tool】''', make sure the right ''' board card(Microduino-Core+) and processor(Atmega644pa@16M,5V)''', select the corresponding '''port (COMX) '''.   
 
*Click'''【File】'''->'''【Open】''', scan to the program address, click '''“ESP8266BlynkWeatherStation.ino”''' and open it. 
 
*After that, please click the button '''"→"''' to upload programs to the development board. 
 
  
==Hardware Buildup==
 
*Step1
 
**Fixate [[Microduino-OLED]] and '''Structure-A1''' with screws. 
 
[[File:Waetherstep1.jpg||600px|center]]
 
*Step2
 
**Assemble '''Structure-B1~B5''' with '''Structure-B6'''. 
 
[[File:Waetherstep2.jpg||600px|center]]
 
  
*Step3
+
*Return to your phone which is running Blynk. Open the Weather Station project. Click on Start (play icon).  
**Fixate [[Microduino-Duo-h]] on '''Structure-A2''' with screws and nuts.  
+
::[[File:Wws_start_project.png|300px]]
**Stack the following modules on [[Microduino-Duo-h]].
 
***[[Microduino-Core+]]
 
***[[Microduino-USBTTL]]
 
***[[Microduino-Sensorhub]]
 
**Stick the well prepared'''PM2.5 Sensor'''[[GP2Y1010AU0F]] to the base board. 
 
[[File:Waetherstep3.jpg||600px|center]]
 
  
*Step4
 
**Assemble the following sensors with '''Structure-B7, B8, B9'''. 
 
***Temperature and humidity sensor[[Microduino-Temp&Hum]]
 
***Air quality detector[[Microduino-Air Quality]]
 
***Light sensor[[Microduino-Light]]
 
[[File:Waetherstep4.jpg||600px|center]]
 
*Step5
 
**Connect the sensors below to [[Microduino-Sensorhub]].
 
***Temperature and humidity sensor[[Microduino-Temp&Hum]]
 
***Air quality detector[[Microduino-Air Quality]]
 
***Light sensor[[Microduino-Light]]
 
**Refer to the picture below, stack all sensors on the slot of '''Structure-B1''' and '''Structure-B2'''. 
 
**After that, connect '''Structure-A1''' and '''Structure-A2''' at the top and bottom of the system respectively. 
 
[[File:Waetherstep5.jpg||600px|center]]
 
  
*Step6
+
*The sensor data should start streaming to the Blynk app.
**Complete the steps above, then fixate with '''Structure-B0''' and plug in a USB cable. Congratulations! You just finished the buildup of the Weather Station.   
+
::[[File:Wws_project_running.png|300px]]
 
 
*Step7
 
**You can see sensor data on [[Microduino-OLED]] after setting. 
 
**At the same time, you can also see uploaded data of the Weather Station on your phone Blynk.
 
[[File:BlynkSetting13.png||300px|center]]
 
  
 
==Notes==
 
==Notes==
 
*Please make sure the verification code is configured right.   
 
*Please make sure the verification code is configured right.   
*Make sure your router runs normally, the SSID and password are correct.
+
*Make sure your router runs normally, the SSID and password are correct.
 
 
|}
 

Latest revision as of 02:34, 19 December 2018

Outline

  • Project: Open Source WIFI Weather Station System.(ESP8266 connected to Blynk)
  • Objective: To get temperature, humidity, light intensity and PM2.5 at the weather station.
    • Note: PM2.5 refers to atmospheric particulate matter (PM) that have a diameter of less than 2.5 micrometers
  • Difficulty: Medium
  • Time-consuming: 2-Hour
  • Maker: Ray

Introduction:

  • Read temperature, humidity, light intensity and PM2.5 data and display those data on the screen.
  • Upload the data to Blynk.
  • View data on phone anywhere using the Blynk app.
  • Created by Microduino with Microduino components.

Bill of Material

Microduino Equipment

Note: Different revisions may contain different components.
Module Number Function
Microduino-Core+ 1 Core board (Arduino)
Microduino-USBTTL -OR- Microduino-USBTLL-C 1 Programmer for Core board
Microduino-WIFI(ESP) 1 WiFi communication module
Microduino-Sensorhub 1 Connector Hub to connect sensors
Microduino-Duo-h -OR- Microduino-Cube-S1 1 Extension board
Microduino-OLED 1 Display
Sensor Number Function
Microduino-Temp&Hum -OR- Sensor-Tem&Hum-S2 1 Digital temperature and humidity sensor
Microduino-Air Quality 1 Air quality detector
Microduino-Light 1 Light-sensitive sensor
GP2Y1010AU0F 1 PM2.5 sensor

Other Equipment

Equipment Number Function
Micro-USB cable 1 For program download and power supply
GP2Y1010AU0F 1 PM2.5 sensor
Screw 7 Fixate modules
Screwdriver 1 Fixate screws
Shell 1

WeatherStationMatiralAll.png

Note: Different revisions will contain different components.

Most noteable are:

  • Duo-V will be replaced with a Microduino-Cube-S1.
  • Humidity/TempSensor will be replaced with a Tem&Hum-S2.

Principle of the Experiment

This Weather Station can detect data including:


Other functions:

Get and Configure Blynk

Next, we'll learn how Microduino interacts with Blynk through the configuration process of the Weather Station.

Download the Blynk App

Visit the Google Play Store or the Apple App Store and download the Blynk app.

You'll need to setup an account with Blynk before proceeding. Please use a valid e-mail as your authentication tokens will be sent to that e-mail.

Using the Blynk App

  • On the main screen of the Blynk app. Click on the QR code scanner to scan the Weather Station app.
Wws qr scan.png


  • Scan the QR code below.
Wws qr code.png


  • Once the project has loaded, click on Project Settings (nut icon).
Wws project settings.png


  • Under Auth Tokens, click on Email all. This will send the authentication token to your registered e-mail. Make note of this, as you will need this token later.
Wws auth token.png


  • Click back to return to the Weather Station app.
Wws weather app.png

Programming

Software Setup

Please follow the guide to ensure your software is correctly setup. The software is required to program the WiFi Weather Station.

Download the latest software for your operating system and follow the getting started guides:

Windows
MicroduinoGettingStart-ForWindows.jpg
IDE Install Guide for Windows
MAC
MicroduinoGettingStart-ForMAC.jpg
IDE Install Guide for MAC

Programming the Weather Station

  • Stack Microduino-Core+ and Microduino-USBTTL together.
  • Connect Microduino-USBTTL with a USB cable. Connect the other end to the PC being used.
  • Open the Arduino IDE for Microduino development environment. (Please refer to the #Software Setup section).
  • Configure the software to upload to the Core+ module as follows:
    • Tools > Board > Microduino/mCookie-device
    • Tools > Processor > Microduino/mCookie-Core+ (644pa)@16M,5V
    • Tools > Port > select the port (On MacOS, NOT the Bluetooth one).
  • Download the code for Weather Station here: File:ESP8266BlynkWeatherStationV2.zip
  • Unzip the file. Under the software (Arduino IDE), go to File > Open... and navigate to the unzipped folder and open the ESP8266BlynkWeatherStationV2.ino file.
  • The sketch with multiple files will open. Click on the userDef.h tab. You'll need to configure the WiFi connection (2.4GHz networks, non 5GHz) with:
    • SSID
    • PASS (WiFi password)
    • auth key as noted earlier in the Blynk app sent to you via e-mail.
Wws configuration.png
  • Click on the upload button (right arrow icon on the top left) to upload the program.
  • The program will compile and upload. Once completed a upload successful message will appear on the bottom left.

Hardware Buildup

Step 1

Waetherstep1.jpg

Step 2

  • Assemble Structure-B1~B5 with Structure-B6.

Waetherstep2.jpg

Step 3

Note: Different revisions of this kit may contain different components. Either a Duo-H or Cube-S1 should be used. Duo-H is illustrated.

Waetherstep3.jpg

Step 4

Note: Different revisions of this kit may contain different components. Either a Temp&Hum or Tem&Hum-S2 should be used. Temp&Hum is illustrated.

Waetherstep4.jpg

Step 5

Note: Different revisions of this kit may contain different components. Either a Temp&Hum or Tem&Hum-S2 should be used. Temp&Hum is illustrated.
  • Connect the sensors below to Microduino-Sensorhub using a connector wire.
  • Refer to the picture below, stack all sensors on the slot of Structure-B1 and Structure-B2.
  • After that, connect Structure-A1 and Structure-A2 at the top and bottom of the system respectively.

Waetherstep5.jpg

Step 6

  • Complete the steps above, plug in a USB cable then fixate Structure-B0. Congratulations! You finished the buildup of the Weather Station.

Step 7

  • Power on the Weather Station.
  • The Weather Station will connect to the WiFi network. This may take a minute or so.
  • After connecting, the OLED screen will display the sensor data.
  • If the data does not display, check the serial port in the IDE. It should display debugging information.

Step 8

  • If the Weather Station successfully connect to the WiFi network. You can now view the data on the Blynk Phone app.
    • WiFi Weather Station successfully connected to the WiFi network.
Wws_connected_to_wifi.png


  • Return to your phone which is running Blynk. Open the Weather Station project. Click on Start (play icon).
Wws start project.png


  • The sensor data should start streaming to the Blynk app.
Wws project running.png

Notes

  • Please make sure the verification code is configured right.
  • Make sure your router runs normally, the SSID and password are correct.