首页/课程/Microduino创新编程/开源WiFi气象站——制作
开源WiFi气象站——制作
教学目标及方法
学习气象站工作原理,制作自己的气象监控程序,并利用Microduino模块和激光切割,制作开源气象站。
主要内容

概述

  • 项目名称:开源WiFi气象站系统(可以本地监测气象数据,也可以ESP8266连接Blynk显示)
  • 目的:获取身边实时的温度、湿度、光照甚至pm2.5数据简介:
  • 它能够获取你身边实时的温度、湿度、光照甚至pm2.5数据,并且在屏幕上显示出来
  • 并把这些数据上传到Blynk上
  • 你可以通过手机(android或者Apple)来获取气象信息和用手机发送信息到气象站
  • 这套系统完全由Microduino来实现,非常简单。


实验原理

  1. 气象站可以检测的数据包括:
  2. 温湿度,通过数字温湿度传感器Sensor-Tem&Hum/zh
  3. 光照,通过光照强度传感器Sensor-Light-A1/zh
  4. 空气质量,通过空气质量传感器Sensor-Air Quality/zh
  5. pm2.5,通过pm2.5传感器GP2Y1010AU0F
  6. 由Microduino核心Microduino-Core+/zh对传感器数据分析处理
  7. 在OLED Microduino-OLED/zh中显示
  8. 同时通过Microduino-Module WIFI,ESP/zh使气象站与Blynk相连
  9. 每个传感器均与Microduino-Module Sensor Hub/zh连接

本地版气象站(只在气象站屏幕上显示数据)

程序烧写

  1. Microduino-Core+/zh、Microduino-USBTTL/zh堆叠在一起。
  2. 用数据线连接其中的Microduino-USBTTL/zh准备上传程序。(注意:最好不要将所有模块堆叠在一起之后再上传程序)
  3. 打开Arduino IDE for Microduino,环境,(搭建参考:AVR核心:Getting started/zh)
  4. 点击【工具】栏,确认板卡(Microduino-Core+)处理器(Atmega644pa@16M,5V)选择无误,并选中对应端口号(COMX)
  5. 点击【文件】->【打开】,浏览到项目程序地址,点击“localWeatherStation.ino”程序打开(程序下载见附件部分)
  6. 几项都无误后,点击"→"按钮下载程序到开发板上
  7. 请先下载附件,再上传或复制代码,以免程序出现问题。
  8. 附件中名为“history.ino”的文件适用于Arduino IDE 1.8.4以前的版本,以应用英文名命名的ino文件适用于Arduino IDE 1.8.4版本,请根据你的程序版本选择适用的文件进行上传。

Blynk版气象站

Blynk下载地址

Blynk设置过程

步骤一: 创建工程Weather Station,获取BLynk授权码(Auth Token)
1. 打开Blynk APP,点击“+New Project”创建新工程。为新工程取名,本案例中为“Weather Station”,第二行名为“Choose Device”的文本框中,选择“ESP8266”,第三行“ConnectionType”选择“WiFi”模块(此处注意,Android版本和IOS版本略有差别,如果安卓手机不需要选择第三行,则自动默认为WiFi模块),完成后,点击底部绿色按钮“Create Project”创建工程.
2.创建成功后,Blynk会向注册邮箱发送一封包含Blynk授权码(Auth Token)的邮件,这一信息同样可以在设置面板内找到,点击字符串即可复制。注意:安卓版本看不到Blynk授权码,但是可以复制,点击“Copy all”即可。
3. 获取Blynk授权码之后,开始向硬件烧写程序。此处烧写步骤请参考上方本地版程序烧写步骤,需要注意选择开发板(Microduino/mCookie-Device),处理器(Microduino/mCookie-Core+644pa@16M,5V)和对应端口号(COM N)。
下载附件中的“MicroduinoPackage_WeatherStation-master”附件。此处需注意,如果使用的Arduino IDE版本为1.6.9,那么打开History文件夹,如果使用的Arduino IDE是1.8.4版本则打开“ESP8266BlynkWeatherStationV2“文件夹。打开文件夹后,找到“ESP8266BlynkWeatherStationV2.ino”的文件,在Arduino IDE中打开,找到“userDef.h”库文件面板,在相应位置填写WiFi账号名称和密码,并输入Blynk授权码(Auth Token),然后将程序上传至模块。
步骤二:添加控件,创建气象站数据监测界面
1. 点击屏幕空白处,打开“Widget Box”面板,找到并点击“Value Display”控件,创建成功后如下图右侧所示。
2. 点击界面上新建的“Value Display”控件,将名称修改为Temp,代表气温数据,端口设置为V2,刷新频率(READING FREQUENCY)选择PUSH表示温度是气象站主动发送的,频率由Microduino端控制。 
  • 在Microduino端对应的代码是
void senTempHumi() {
Blynk.virtualWrite(V2, sensor_tem);
Blynk.virtualWrite(V3, sensor_hum);
}
3. 湿度的设置跟温度类似,INPUT设置成V3,都是通过一个定时器函数senTempHumi()一起发送的
  • 在Microduino端对应的代码是
void senTempHumi() {
Blynk.virtualWrite(V2, sensor_tem);
Blynk.virtualWrite(V3, sensor_hum);
}
4. PM2.5的INPUT设置成V6,READING FREQUENCY设置成5秒钟,代表获取PM2.5数据的频率
  • 对应的Microduino端的代码如下
BLYNK_READ(V6) {
Blynk.virtualWrite(V6, sensorPM25);
//BLYNK_PRINT.println(sensorPM25);
}
5. 同理,光照传感器的INPUT设置为V4,频率为2秒钟获取一次
  • 对应的Microduino端的代码如下
BLYNK_READ(V4) {
Blynk.virtualWrite(V4, sensor_light);
}
6. 甲烷气体的INPUT为V5,频率为5秒钟获取一次
  • 对应的Microduino端的代码如下
BLYNK_READ(V5) {
Blynk.virtualWrite(V5, Sensor_etoh);
//BLYNK_PRINT.println(Sensor_etoh);
}
7.连接上WiFi之后,Blynk的界面就会变成下图左侧所示,点击屏幕右上角的三角形按钮,数据就会自动刷新,点击方框按钮,则停止刷新。

代码展示

1. WiFi气象站

编程语言: C/C++(Arduino)

软件工具:Arduino IDE 1.8.4


附件下载
  • 资料展示
  • MicroduinoPackage_WeatherStation-master.zip
  • LocalWeatherStation.zip
授课教师
  • 杨立斌

    美科创新研究院高级工程师

问答专区
暂无数据!