开源WiFi气象站系统(ESP连接Blynk)/zh

来自Microduino Wikipedia
Radiumray9@gmail.com讨论 | 贡献2016年3月10日 (四) 12:28的版本 Microduino设备
跳转至: 导航搜索

概述

  • 项目名称:开源WiFi气象站系统(ESP8266连接Blynk)
  • 目的:获取身边实时的温度、湿度、光照甚至pm2.5数据
  • 难度:中
  • 耗时:2小时
  • 制作者:ray

简介:

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

材料清单

Microduino设备

模块 数量 功能
Microduino-Core+/zh 1 核心板
Microduino-USBTTL/zh 1 下载程序
Microduino-Module WIFI,ESP/zh 1 连接网络
Microduino-Temp&Hum/zh 1 数字温湿度传感器
Microduino-Air quality/zh 1 空气质量传感器
Microduino-Light/zh 1 光照传感器
GP2Y1010AU0F/zh 1 PM2.5传感器
Microduino-OLED/zh 1 显示

其他设备

模块 数量 功能
Micro-USB线 1 下载程序、供电
GP2Y1010AU0F 1 pm2.5传感器
螺丝 7 固定模块
螺丝刀 1 固定螺丝
外壳 1

实验原理

气象站可以检测的数据包括:


Wifistationtheory.jpg

文档

代码下载:ESP8266BlynkWeatherStation

配置Blynk

下面就通过气象站的配置过程了解Microduino与Blynk是如何交互的

  • 进入Blynk官网

http://www.blynk.cc/

点击Getting Started进入:http://www.blynk.cc/getting-started/

    • 你在这里可以下载IPone和Android版本的手机客户端


  • 首先要注册一个账户


  • 打开手机Blynk app,点击上面的加号你可以创建一个项目:
    • 你需要为你创建的项目起一个名字,比如:weather station
    • 同时在下方的AUTH TOKEN处会显示为此项目生成的验证码
    • 你可以点击下方的E-mail按钮,就会把此验证码发送到你的邮箱里,也不要告诉别人

这个验证码复制出来用来替换Microduino气象站程序里的user_def.h文件里的auth[]变量

#define SSID "type your ssid"
#define PASS "type your pass"

char auth[] = "type your blynk token";

同时也顺便把路由器的SSID和密码也一块替换了吧。

接下来点击面板可以调出WIDGET BOX,上边有很多控件供你选择。

BlynkSetting3.png

选择Value Display,输入tempture表示这个空间是用来获取温度值的

INPUT选择V2,READING FREQUENCY选择PUSH表示温度是气象站主动发送的,频率由Microduino端控制

BlynkSetting4.png

在Microduino端对应的代码是:

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); 
}

湿度的设置跟温度类似,INPUT设置成V3,都是通过一个定时器函数senTempHumi()一起发送的

BlynkSetting5.png

定时器的频率是通过以下两句代码实现的

void senTempHumi() {
  SimpleTimer temHumtimer;
  temHumtimer.setInterval(2000L, senTempHumi);
}


PM2.5的的INPUT设置成V6,READING FREQUENCY设置成5秒钟,代表获取PM2.5数据的频率

BlynkSetting6.png

对应的Microduino端的代码如下:

BLYNK_READ(V6) {
  Blynk.virtualWrite(V6, sensorPM25);
}


同理,光照传感器的INPUT设置为V4,频率为3秒钟获取一次

BlynkSetting7.png

对应的Microduino端的代码如下:

BLYNK_READ(V4) {
  sensor_light = map(analogRead(A0), 0, 1023, 0, 255);
  Blynk.virtualWrite(V4, sensor_light);
}

甲烷气体的INPUT为V5,频率为5秒钟获取一次

BlynkSetting8.png

对应的Microduino端的代码如下:

BLYNK_READ(V5) {
  Sensor_etoh= map(analogRead(A2), 0, 1023, 0, 30);
  Blynk.virtualWrite(V5, Sensor_etoh);
}


接下来放一个按钮控件 OUTPUT设置为D6,MODE设置为SWITCH,表示按一下按钮可以切换Microduino端的D6引脚高低电平

BlynkSetting9.png


为了更直观的显示数据可以添加一个或几个历史图标History Graph

可以设置成显示V2和V3的数据图表,最多可现实四个数据

BlynkSetting10.png

第二个History Graph可以用来单独显示V6,PM2.5

BlynkSetting11.png

最终你的手机面板就变成了这样

BlynkSetting12.png


  • 下载程序

将Microduino-Core+与Microduino-USBTTL叠加(无上下顺序),通过USB数据线与电脑连接起来

Download1.jpg

确认你搭建了Microduino的开发环境,否则参考附录1-Arduino IDE安装指导。

打开Arduino IDE编程软件,点击 【文件】->【打开】

Dl1.jpg

浏览到项目程序地址,点击“ESP8266BlynkWeatherStation.ino”程序打开

点击“工具”,在板选项里面选择板卡(Microduino-Core+),在处理器选项里面选择处理器(Atmega644pa@16M,5V),再在端口选项里面选择正确的端口号,然后直接烧录程序

拼装气象站

  • Step1:将OLED屏和A1用螺丝固定在一起
Waetherstep1.jpg
  • Step2:把B1~B5用B6拼接在一起
Waetherstep2.jpg
  • Step3:将Core+,USBTTL,Hub连接在一起并且用螺丝螺帽固定在A2上,再将传感器连接线连接在PM2.5传感器上

PM2.5传感器使用胶水黏在底板上

Waetherstep3.jpg
  • Step4:将B7,B8,B9按照如图所示分别拼接到温湿度传感器,气体传感器和光照传感器上
Waetherstep4.jpg
  • Step5:按说明图上所示的位置将温湿度传感器、气体传感器和光照传感器连接到Hub板上

再分别将传感器固定在Step2中内部四周B1和B2组合的卡槽上,完成后将A1和A2分别接在其顶部和底部

Waetherstep5.jpg
  • Step6:完成上述步骤后用B0进行固定,之后插上USB线,气象站完成

设置完成后就可以在OLED上看到各个传感器的数据 同时在手机Blynk上也能看到气象站上传的数据

BlynkSetting13.png


注意事项

  • 确保Blynk验证码配置正确,可通过把验证码发送到邮箱,复制,粘贴确保一致性。
  • 确保家里的路由器运行正常,SSID和密码填写正确