“开源WiFi气象站系统(ESP连接Blynk)/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
材料清单
添加配置控件
 
(未显示2个用户的55个中间版本)
第6行: 第6行:
 
*目的:获取身边实时的温度、湿度、光照甚至pm2.5数据
 
*目的:获取身边实时的温度、湿度、光照甚至pm2.5数据
 
*难度:中
 
*难度:中
*耗时:5小时
+
*耗时:2小时
 
*制作者:ray
 
*制作者:ray
  
 
简介:
 
简介:
它能够获取你身边实时的温度、湿度、光照甚至pm2.5数据,并且在屏幕上显示出来,并把这些数据上传到Blynk上,你可以通过手机(android或者Apple)来获取气象信息和发送信息到气象站。而这套系统完全由Microduino来实现,非常简单。
+
*它能够获取你身边实时的温度、湿度、光照甚至pm2.5数据,并且在屏幕上显示出来
 +
*并把这些数据上传到Blynk上
 +
*你可以通过手机(android或者Apple)来获取气象信息和用手机发送信息到气象站
 +
*这套系统完全由Microduino来实现,非常简单。
  
 
==材料清单==
 
==材料清单==
*Microduino设备
+
===Microduino设备===
 
{|class="wikitable"
 
{|class="wikitable"
 
|-
 
|-
第23行: 第26行:
 
|-
 
|-
 
|[[Microduino-Module WIFI,ESP/zh]] ||1||连接网络
 
|[[Microduino-Module WIFI,ESP/zh]] ||1||连接网络
 +
|-
 +
|[[Microduino-Module Sensor Hub/zh]] ||1||连接传感器
 +
|-
 +
|[[Microduino-Shield Duo-H/zh]] ||1||扩展板
 +
|-
 +
|[[Microduino-OLED/zh]] ||1||显示
 +
|}
 +
 +
{|class="wikitable"
 +
|-
 +
|传感器||数量||功能
 
|-
 
|-
 
|[[Microduino-Temp&Hum/zh]] ||1||数字温湿度传感器
 
|[[Microduino-Temp&Hum/zh]] ||1||数字温湿度传感器
第31行: 第45行:
 
|-
 
|-
 
|[[GP2Y1010AU0F/zh]] ||1||PM2.5传感器
 
|[[GP2Y1010AU0F/zh]] ||1||PM2.5传感器
|-
 
|[[Microduino-OLED/zh]] ||1||显示
 
 
|}
 
|}
*其他设备
+
 
 +
===其他设备===
 
{|class="wikitable"
 
{|class="wikitable"
 
|-
 
|-
|模块||数量||功能
+
|设备||数量||功能
 
|-
 
|-
 
|Micro-USB线||1||下载程序、供电
 
|Micro-USB线||1||下载程序、供电
第52行: 第65行:
  
 
==实验原理==
 
==实验原理==
气象站专用板上安装了多参数传感器,包括数字温湿度传感器(Microduino-Tem&Hum)、光照强度传感器(Microduino-Light)、空气质量传感器(Microduino-Air)和pm2.5传感器(GP2Y1010AU0F)。每个传感器均与Microduino-Sensorhub连接,由Microduino核心(Microduino Core+)对传感器数据分析处理,以直观的文字提示方式在OLED中显示。同时通过Microduino-WiFi(ESP)使气象站与Blynk相连。
+
气象站可以检测的数据包括:
[[File:Wifistationtheory.jpg||600px|center]]
+
*温湿度,通过数字温湿度传感器[[Microduino-Temp&Hum/zh]]
 +
*光照,通过光照强度传感器[[Microduino-Light/zh]]
 +
*空气质量,通过空气质量传感器[[Microduino-Air quality/zh]]
 +
*pm2.5,通过pm2.5传感器GP2Y1010AU0F
  
  
下图展示了本系统的处理流程。数据采集系统:主要负责对环境温度、湿度、光照强度等数据的采集。传感器采集的数据上传到Microduino核心,具有扩展方便等优点。
+
*由Microduino核心[[Microduino-Core+/zh]]对传感器数据分析处理
无线传输系统:该系统主要将设备采集到的数据,通过无线网络传送到服务器上,使用WiFi传输数据。
+
*在OLED [[Microduino-OLED/zh]]中显示
数据处理系统:该系统负责对采集的数据进行上传存储、直观显示,用户可随时随地通过电脑和手机等终端进行查询。
+
*同时通过[[Microduino-Module WIFI,ESP/zh]]使气象站与Blynk相连
 
+
*每个传感器均与[[Microduino-Module Sensor Hub/zh]]连接
[[File:Wifistationtheory3.jpg||600px|center]]
+
[[File:Wifistationtheory.jpg||600px|center]]
 
 
==文档==
 
 
 
代码下载:[https://github.com/Microduino/ESP8266BlynkWeatherStation ESP8266BlynkWeatherStation]
 
 
 
==配置Blynk==
 
你在Blynk的配置信息要跟气象站的信息要对应上,下面就通过气象站的配置过程了解Microduino与Blynk交互方法
 
 
 
*进入Blynk官网
 
http://www.blynk.cc/
 
 
 
点击Getting Started进入:http://www.blynk.cc/getting-started/
 
 
 
[[File:BlynkSetting0.png||600px|center]]
 
 
 
你在这里可以下载IPone和Android版本的手机客户端
 
 
 
 
 
*首先要注册一个账户
 
 
 
 
 
*打开手机Blynk app,点击上面的加号你可以创建一个项目:
 
 
 
[[File:BlynkSetting1.png||600px|center]]
 
 
 
你需要为你创建的项目起一个名字,比如:weather station
 
 
 
同时在下方的AUTH TOKEN处会显示为此项目生成的验证码
 
  
你可以点击下方的E-mail按钮,就会把此验证码发送到你的邮箱里,也不要告诉别人
+
==获取,配置Blynk==
 +
下面就通过气象站的配置过程了解Microduino与Blynk是如何交互的
  
[[File:BlynkSetting2.png||600px|center]]
+
===获取Blynk手机客户端===
 +
*请参考教程:[[https://www.microduino.cn/wiki/index.php/Microduino-Blynk_Getting_start/zh#.E5.88.9B.E5.BB.BA.E9.A1.B9.E7.9B.AE 获取,配置Blynk]]
  
这个验证码复制出来用来替换Microduino气象站程序里的user_def.h文件里的auth[]变量
+
===添加配置控件===
<source lang="cpp">
+
*你可以扫描下方二维码来获取气象站APP
#define SSID "type your ssid"
+
[[File:BlynkWeatherStationLink.png||300px|center]]
#define PASS "type your pass"
+
*当然你也可以自己动手做一个
 
+
*选择自己做的话就点击面板可以调出'''WIDGET BOX''',上边有很多控件供你选择。
char auth[] = "type your blynk token";
+
[[File:BlynkSetting3.png||200px|center]]
</source>
+
*添加'''Value Display'''控件,给其命名为“tempture”用以显示获取到的'''温度值'''
 
+
*'''INPUT'''选择V2,'''READING FREQUENCY'''选择PUSH表示温度是气象站主动发送的,频率由Microduino端控制
同时也顺便把路由器的SSID和密码也一块替换了吧。
+
[[File:BlynkSetting4.png||200px|center]]
 
 
接下来点击面板可以调出WIDGET BOX,上边有很多控件供你选择。
 
 
 
[[File:BlynkSetting3.png||600px|center]]
 
 
 
选择Value Display,输入tempture表示这个空间是用来获取温度值的
 
 
 
INPUT选择V2,READING FREQUENCY选择PUSH表示温度是气象站主动发送的,频率由Microduino端控制
 
 
 
[[File:BlynkSetting4.png||600px|center]]
 
 
在Microduino端对应的代码是:
 
在Microduino端对应的代码是:
 
<source lang="cpp">
 
<source lang="cpp">
第125行: 第105行:
 
}
 
}
 
</source>
 
</source>
 
+
*湿度的设置跟温度类似,'''INPUT'''设置成V3,都是通过一个定时器函数senTempHumi()一起发送的
湿度的设置跟温度类似,INPUT设置成V3,都是通过一个定时器函数senTempHumi()一起发送的
+
[[File:BlynkSetting5.png||200px|center]]
[[File:BlynkSetting5.png||600px|center]]
 
 
定时器的频率是通过以下两句代码实现的
 
定时器的频率是通过以下两句代码实现的
 
<source lang="cpp">
 
<source lang="cpp">
第135行: 第114行:
 
}
 
}
 
</source>
 
</source>
 
+
*PM2.5的'''INPUT'''设置成V6,'''READING FREQUENCY'''设置成5秒钟,代表获取PM2.5数据的频率
 
+
[[File:BlynkSetting6.png||200px|center]]
PM2.5的的INPUT设置成V6,READING FREQUENCY设置成5秒钟,代表获取PM2.5数据的频率
 
[[File:BlynkSetting6.png||600px|center]]
 
 
对应的Microduino端的代码如下:
 
对应的Microduino端的代码如下:
 
<source lang="cpp">
 
<source lang="cpp">
第145行: 第122行:
 
}
 
}
 
</source>
 
</source>
 
+
*同理,光照传感器的'''INPUT'''设置为V4,频率为3秒钟获取一次
 
+
[[File:BlynkSetting7.png||200px|center]]
同理,光照传感器的INPUT设置为V4,频率为3秒钟获取一次
 
[[File:BlynkSetting7.png||600px|center]]
 
 
对应的Microduino端的代码如下:
 
对应的Microduino端的代码如下:
 
<source lang="cpp">
 
<source lang="cpp">
第156行: 第131行:
 
}
 
}
 
</source>
 
</source>
 
+
*甲烷气体的'''INPUT'''为V5,频率为5秒钟获取一次
甲烷气体的INPUT为V5,频率为5秒钟获取一次
+
[[File:BlynkSetting8.png||200px|center]]
[[File:BlynkSetting8.png||600px|center]]
 
 
对应的Microduino端的代码如下:
 
对应的Microduino端的代码如下:
 
<source lang="cpp">
 
<source lang="cpp">
第166行: 第140行:
 
}
 
}
 
</source>
 
</source>
 +
*接下来放一个按钮控件
 +
*'''OUTPUT'''设置为D6,'''MODE'''设置为SWITCH,表示按一下按钮可以切换Microduino端的D6引脚高低电平
 +
[[File:BlynkSetting9.png||200px|center]]
 +
*为了更直观的显示数据可以添加一个或几个历史图标'''History Graph'''
 +
*可以设置成显示V2和V3的数据图表,最多可现实四个数据
 +
[[File:BlynkSetting10.png||200px|center]]
 +
*第二个'''History Graph'''可以用来单独显示V6,PM2.5
 +
[[File:BlynkSetting11.png||200px|center]]
 +
*最终你的手机面板就变成了这样
 +
[[File:BlynkSetting12.png||200px|center]]
  
 +
==下载程序==
  
接下来放一个按钮控件
+
气象站代码:[https://github.com/Microduino/ESP8266BlynkWeatherStation ESP8266BlynkWeatherStation]
OUTPUT设置为D6,MODE设置为SWITCH,表示按一下按钮可以切换Microduino端的D6引脚高低电平
 
[[File:BlynkSetting9.png||600px|center]]
 
  
 
+
==程序烧写==
为了更直观的显示数据可以添加一个或几个历史图标History Graph
+
*将[[Microduino-Core+/zh]][[Microduino-USBTTL/zh]]堆叠在一起。用数据线连接其中的[[Microduino-USBTTL/zh]]上传程序。
 
+
**注意:最好不要将所有模块堆叠在一起之后再上传程序
可以设置成显示V2和V3的数据图表,最多可现实四个数据
+
*打开Arduino IDE for Microduino,环境,(搭建参考:[[AVR核心:Getting started/zh]]
[[File:BlynkSetting10.png||600px|center]]
+
*确认板卡(Microduino-Core+)处理器(Atmega644Pa)选择无误,并选中对应端口号(COMX)
第二个History Graph可以用来单独显示V6,PM2.5
+
*打开你所下载的项目中“ESP8266BlynkWeatherStation.ino”程序
[[File:BlynkSetting11.png||600px|center]]
+
*几项都无误后,点击"→"按钮下载程序到开发板上
最终你的手机面板就变成了这样
 
[[File:BlynkSetting12.png||600px|center]]
 
 
 
 
 
*下载程序
 
将Microduino-Core+与Microduino-USBTTL叠加(无上下顺序),通过USB数据线与电脑连接起来
 
[[File:download1.jpg||400px|center]]
 
确认你搭建了Microduino的开发环境,否则参考附录1-Arduino IDE安装指导。
 
[[File:Gettingstarted.jpg||400px|center]]
 
打开Arduino IDE编程软件,点击 【文件】->【打开】
 
[[File:Dl1.jpg||600px|center]]
 
浏览到项目程序地址,点击“ESP8266BlynkWeatherStation.ino”程序打开
 
[[File:BlynkSettingcode.png||600px|center]]
 
 
 
点击“工具”,在板选项里面选择板卡(Microduino-Core+),在处理器选项里面选择处理器(Atmega644pa@16M,5V),再在端口选项里面选择正确的端口号,然后直接烧录程序
 
  
 
==拼装气象站==
 
==拼装气象站==
*'''Step1''':将OLED屏和A1用螺丝固定在一起
+
===Step1===
 +
*将[[Microduino-OLED/zh]]和'''结构-A1'''用螺丝固定在一起
 
[[File:Waetherstep1.jpg||600px|center]]
 
[[File:Waetherstep1.jpg||600px|center]]
*'''Step2''':把B1~B5用B6拼接在一起
+
===Step2===
 +
*把'''结构-B1~B5''''''结构-B6'''拼接在一起
 
[[File:Waetherstep2.jpg||600px|center]]
 
[[File:Waetherstep2.jpg||600px|center]]
*'''Step3''':将Core+,USBTTL,Hub连接在一起并且用螺丝螺帽固定在A2上,再将传感器连接线连接在PM2.5传感器上
+
 
PM2.5传感器使用胶水黏在底板上
+
===Step3===
 +
**使用'''螺丝螺帽'''把[[Microduino-Shield Duo-H/zh]]固定在'''结构-A2'''
 +
**将以下模块堆叠在[[Microduino-Shield Duo-H/zh]]上
 +
***[[Microduino-Core+/zh]]
 +
***[[Microduino-USBTTL/zh]]
 +
***[[Microduino-Module Sensor Hub/zh]]
 +
**并将准备好的'''PM2.5传感器'''[[GP2Y1010AU0F/zh]]用胶水黏在底板上
 
[[File:Waetherstep3.jpg||600px|center]]
 
[[File:Waetherstep3.jpg||600px|center]]
*'''Step4''':将B7,B8,B9按照如图所示分别拼接到温湿度传感器,气体传感器和光照传感器上
+
 
 +
===Step4===
 +
*将以下传感器分别用'''结构-B7,B8,B9'''装配
 +
**温湿度传感器[[Microduino-Temp&Hum/zh]]
 +
**气体传感器[[Microduino-Air quality/zh]]
 +
**光照传感器[[Microduino-Light/zh]]
 
[[File:Waetherstep4.jpg||600px|center]]
 
[[File:Waetherstep4.jpg||600px|center]]
*'''Step5''':按说明图上所示的位置将温湿度传感器、气体传感器和光照传感器连接到Hub板上
+
===Step5===
再分别将传感器固定在Step2中内部四周B1和B2组合的卡槽上,完成后将A1和A2分别接在其顶部和底部
+
*按图示的引脚定义将以下传感器连接到[[Microduino-Module Sensor Hub/zh]]板上
 +
**温湿度传感器[[Microduino-Temp&Hum/zh]]
 +
**气体传感器[[Microduino-Air quality/zh]]
 +
**光照传感器[[Microduino-Light/zh]]
 +
*按图示,再将所有传感器固定在'''结构-B1'''和'''结构-B2'''的卡槽上
 +
*完成后将'''结构-A1'''和'''结构-A2'''分别接在其顶部和底部
 
[[File:Waetherstep5.jpg||600px|center]]
 
[[File:Waetherstep5.jpg||600px|center]]
*'''Step6''':完成上述步骤后用B0进行固定,之后插上USB线,气象站完成
 
  
设置完成后就可以在OLED上看到各个传感器的数据
+
===Step6===
同时在手机Blynk上也能看到气象站上传的数据
+
*完成上述步骤后用'''结构-B0'''进行固定,之后插上USB线,气象站完成
[[File:BlynkSetting13.png||600px|center]]
+
 
 +
===Step7===
 +
*设置完成后就可以在[[Microduino-OLED/zh]]上看到各个传感器的数据
 +
*同时在手机Blynk上也能看到气象站上传的数据
 +
[[File:BlynkSetting13.png||300px|center]]
  
 +
==注意事项==
 +
*确保Blynk验证码配置正确,可通过把验证码发送到邮箱,复制,粘贴确保一致性。
 +
*确保家里的路由器运行正常,SSID和密码填写正确
  
==视频==
 
 
|}
 
|}

2016年3月13日 (日) 12:16的最新版本

概述

  • 项目名称:开源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-Module Sensor Hub/zh 1 连接传感器
Microduino-Shield Duo-H/zh 1 扩展板
Microduino-OLED/zh 1 显示
传感器 数量 功能
Microduino-Temp&Hum/zh 1 数字温湿度传感器
Microduino-Air quality/zh 1 空气质量传感器
Microduino-Light/zh 1 光照传感器
GP2Y1010AU0F/zh 1 PM2.5传感器

其他设备

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

实验原理

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


Wifistationtheory.jpg

获取,配置Blynk

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

获取Blynk手机客户端

添加配置控件

  • 你可以扫描下方二维码来获取气象站APP
BlynkWeatherStationLink.png
  • 当然你也可以自己动手做一个
  • 选择自己做的话就点击面板可以调出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

下载程序

气象站代码:ESP8266BlynkWeatherStation

程序烧写

  • Microduino-Core+/zhMicroduino-USBTTL/zh堆叠在一起。用数据线连接其中的Microduino-USBTTL/zh上传程序。
    • 注意:最好不要将所有模块堆叠在一起之后再上传程序
  • 打开Arduino IDE for Microduino,环境,(搭建参考:AVR核心:Getting started/zh
  • 确认板卡(Microduino-Core+)处理器(Atmega644Pa)选择无误,并选中对应端口号(COMX)
  • 打开你所下载的项目中“ESP8266BlynkWeatherStation.ino”程序
  • 几项都无误后,点击"→"按钮下载程序到开发板上

拼装气象站

Step1

Waetherstep1.jpg

Step2

  • 结构-B1~B5结构-B6拼接在一起
Waetherstep2.jpg

Step3

Waetherstep3.jpg

Step4

Waetherstep4.jpg

Step5

Waetherstep5.jpg

Step6

  • 完成上述步骤后用结构-B0进行固定,之后插上USB线,气象站完成

Step7

  • 设置完成后就可以在Microduino-OLED/zh上看到各个传感器的数据
  • 同时在手机Blynk上也能看到气象站上传的数据
BlynkSetting13.png

注意事项

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