15. IoT Case 06: Weather Station¶
Level:
15.1. Goal¶
Make a weather station which gets the values from the raindrop sensor, temperature and humidity sensor. The data will be sent to IoT platform - ThingSpeak.
15.2. Background¶
What is Thingspeak?
ThingSpeak is an IoT analytics platform service which provides instant visualizations of data posted by your devices to ThingSpeak. In this case, we will use this platform to update our data to plot instant graphs.
Weather station operation
Collecting temperature, humidity and raindrop consistently and uploading the data by using Thingspeak. This can help us to do analytical work more conveniently as we can refer to the automatically plotted graphs.
15.4. Assembly step¶
Step 1
Attach the raindrop sensor to F2 model.
Step 2
Attach the temperature and humidity sensor to F2 model.
Step 3
Put together all the cardboard parts (F1-F2).
Step 4
Assembly completed!
15.5. Hardware connect¶
Connect the Raindrop Sensor to P0 port of IoT:bit
Connect the Temperature and humidity Sensor to P2 port of IoT:bit
Pull the buzzer switch ‘up’ to disconnect the buzzer in this execrise
15.6. IoT (ThingSpeak)¶
* For more details, please refer to Chapter 1: Upload Data to ThingSpeak
Step 1
Go to https://thingspeak.com, Choose Channels -> My Channels -> New Channel
Step 2
Input Channel name, Field1 and Field2 , then click “Save Channel”
Channel name: Smart Weather Station
Field 1: temperature
Field 2: humidity
Freld 3: raindrop
Step 3
Select your channel > “API Keys” ,copy the API key as follows:
15.7. Programming (MakeCode)¶
Step 1. Initialize OLED, IoT:bit and connect to WiFi
Snap
Initialize OLED with width:128, height: 64
toon start
Snap
Initialize IoT:bit TX P16 RX P8
fromIoT:bit
toon start
Snap
Set Wi-Fi to ssid pwd
fromIoT:bit
Enter your Wi-Fi name and password. Here we set
smarthon
asSSID
and12345678
aspassword
Set variable
raindrop
,humidity
andtemperature
to 0 fromvariables
*
Step 2. Show icon “tick” after WiFi connection
Snap
show icon
frombasic
toOn WiFi connected
and select icontick
Step 3. Get temperature, humidity and raindrop values
Snap
if statement
to blockforever
If
WiFi is connected
Then, set
humidity
toread humidity from DHT11 at Pin P2
Set
temperature
toread temperature from DHT11
Set
raindrop
toget raindrop value (percentage) at Pin P0
Step 4. Show values on OLED
Snap
clear OLED display
fromOLED
to avoid overlapSnap
show string
and show value of variablesTemperature
,Humidity
andRaindrop
Step 5. Upload data to ThingSpeak
Snap
Send Thingspeak key...
inside theif-statement
Fill in the
api key
from Thingspeak with temperature, humidity and raindrop valueSnap
pause
to the loop to wait 15 second
Step 6. Show ThingSpeak upload status
Snap
show string
insideOn Thingspeak Uploaded
Draw the variable
Status
andError_code
to blockshow string
Full Solution
MakeCode: https://makecode.microbit.org/_TMyYxL8Re1du
15.8. Result¶
When micro:bit is connected to WiFi, it will check weather information (temperature, humidity from Temperature and humidity Sensor and raindrop value from raindrop sensor). Then, those data will be sent to ThingSpeak and pause for 15 seconds for another update.
We can find three graphs on Thingspeak including temperature, humidity and raindrop (field1, field2, field3) respectively by collecting data using different sensors.