基于arduino 平台设计一个多传感器的硬件系统,并利用WiFi 芯片与机智云平台连接,通过云平台与 Android 手机移动端进行交互,从而实现在手机上查看当前数据并控制系统的功能。
系统总体方案设计
室内植物墙智能控制系统的设计目的是为想要在室内养护较多花草植物却又没有充足的时间与精力的人群提供一个符合需求的解决方案。为此室内植物墙智能控制系统功能实现有:① 实时获取当前温湿度、甲醛浓度、光照强度、二氧化碳浓度等数据,以便清楚得知室内空气环境变化,更加科学的养护植物;② 将实时获取到的数据展现在移动端,提高养护植物的乐趣,调动人群的积极性;③ 能够由移动端远程控制水泵浇水等动作,将养护植物的难度进一步降低,提高植物存活能力。系统总体结构可以分为植物墙设计、硬件电路设计、软件服务设计三个部分,具体设计如图所示:智能控制系统硬件及电路设计
1、室内植物墙设计结合市面植物墙产品设计的优缺点,确定本系统所使用的植物墙方案,墙架主体包括循环灌水式水箱、可移动式铁架、自由摆放植物木架三个部分,其组合实物图如下所示。2、硬件选择及电路设计◆ 中央处理器:整个硬件部分以 Arduino Uno R3板为核心,搭配各种传感器及相应配套电路。◆ 温湿度传感器:本系统采用DHT11传感器,其供电电压与 Arduino板的输出电压相对应。◆ 甲醛浓度检测传感器:选择检测方法为电化学法的DS-HCHO数字式传感器。DS-HCHO 引脚说明:◆ 光照强度传感器:选用TSL2561 传感器,实现自行编程设置光照阈值,当实际光强超过阈值时能够产生中断信号。◆ 二氧化碳浓度传感器:采用MG811的检测传感器,可探测的浓度范围为 0 到 10000ppm,具有温度补偿功能,能够实现全温度范围下检测二氧化碳浓度。◆ 水泵开关电路设计:选用电磁式的继电器,输入电流只需要 5V 直流电流,可以对 220V、10A 交流的电路进行控制,与 Arduino 板搭配使用很合适,其接线示意图如图所示。◆ WiFi电路设计:本系统采用乐鑫的 esp8266 芯片作为 WiFi 通信芯片。ESP8266 引脚说明:
系统软件程序设计
//引用 DHT11 的库文件#include <DHT11.h> //创建实例化对象DHT11 DHT;//定义 2 号引脚为温湿度测量的引脚#define DHTPIN 2//设置波特率为 9600void setup(){Serial.begin(9600);}//循环函数void loop(){//将读取到的值赋给 ckint ck = DHT.read(DHTPIN);//若无问题就打印 OK if (ck == DHTLIB_OK){Serial.println(“OK”);}//出现校验和错误else if(ck == DHTLIB_ERROR_CHECKSUM){Serial.println(“CHECKSUM ERROR”);}//出现超时错误else if(ck == DHTLIB_ERROR_TIMEOUT){Serial.println(“TIMEOUT ERROR”);}//出现未知错误 else{ Serial.println(“UKNOWN ERROR”)}//打印温度及湿度值Serial.println(“Temperature: ” + DHT.temperature);Serial.println(“Humidity(%):” + DHT.humidity);//延时 1000 毫秒开始下一次循环delay(1000);}
分析清楚传感器通信格式后,可编写代码如下:
参考原文:https://mp.weixin.qq.com/s/A3GgcayTV23xf_dVWB1AVw
参考原文:https://mp.weixin.qq.com/s/A3GgcayTV23xf_dVWB1AVw
参考原文:https://mp.weixin.qq.com/s/A3GgcayTV23xf_dVWB1AVw
6、WiFi连接程序
Wi-Fi 模块作为连接客户端与 Arduino 平台的中间模块,在程序上选择刷入机智云的固件,这样的好处在于能使用机智云的云平台服务,具体内容会在后续介绍。
系统服务端及移动端设计
本系统的软件部分可为服务端与移动端,系统服务端采用机智云物联网云平台,移 动端基于机智云的 Android SDK 进行深度二次开发设计。1、服务端设计◆ 机智云物联网云平台介绍机智云提供一站式的物联网服务平台,包含硬件开发及云服务,并且面向个人及企业开发者,开发者通过物联网云平台,可以实现从硬件开发到应用开发及云端开发的功能,其云平台的架构如下所示。◆ 设备接入设计机智云提供多种硬件设备接入方案,例如购买官方开源套件就可自动实现接入云端,也可通过将 GAgent 固件烧录进 WiFi模组中,从而实现与机智云平台的连接。GAgent 固件可以看作是一款运行在通信模块中的软件,提供模块与上层应用(包括移动客户端及云端等)的双向通信,无需关注通信的具体协议及细节,也不需要进行专门的 TCP传输设计。考虑到本系统以 Arduino 板为核心,以 ESP8266 为通信模块,完美契合机智云给出的解决方案中烧录固件的形式,因此,本系统采用烧录固件的方案、具体接入步骤如下:►在机智云官方网站上找到所需的固件资源,选择与通讯模块相匹配的 GAgent 固件及烧录软件进行下载,选即择第二个GAgent for ESP8266 进行下载,如图 所示。►下载烧写软件工具:https://www.espressif.com/zh-hans/support/download/other-tools►将 WiFi 模块与 USB 转 TTL 模块相连接,进入烧录模式,需要注意的是,在进入烧录模式后,USB 转 TTL 模块提供的电压已无法满足 WiFi 模块的供电需求,此时需要有外部电源对 WiFi 模块提供 3.3V 的电压,两个模块具体的接线如图所示。►具体而言就是两个模块的 TX 与 RX 交叉连接,外部电源正极与 Wi-Fi 模块的 VCC 及 EN相连,外部电源的负极与 Wi-Fi 模块的 IO0、IO2、GND 及转串模块的 GND 相连,在RST 于 GND 之间连接一个开关。►在硬件电路连接好,需要用到的软件及固件都下载好后,打开烧录软件,依据说明选择相应的选项,点击 START 键后按下复位开关即可开始进行烧录,最后烧录成功后如图所示。►创建产品:接下来在机智云平台创建一个产品,命名为“智能植物墙”,技术方案选择 WiFi方案,数据传输方式为定长,完成创建后如图所示。►下一步是设置数据点,所谓数据点即是希望系统采集或者控制的数据,读写类型分为只读与可写两类,数据类型分为数值与布尔值等,本系统设置了六个数据点,如表所示。►在机智云平台上创建数据,完成后如图所示。►设置好数据点后进入 MCU 开发环节,选择独立 MCU 方案,硬件平台选择Arduino UNO R3,如图所示。►填写产品密钥,产品密钥在产品基本信息一栏,是作为 APP 开发和服务器对接时需要使用的参数,如图所示。►输入密码后即可显示完整密钥,然后复制粘贴即可。完成后点击生成代码包,稍等片刻即完成,如图所示。2、移动端设计关于移动APP的设计,可以采用基于机智云开源框架二次开发设计智能控制系统APP。从实际需求出发,移动端应该具有以下几个功能:① 用户注册及登录:智能植物墙系统作为一个物联网项目,对每个用户而言,基于信息保密原则需要有自己的账号,账号与设备一一对应,因此用户注册及登录功能必不可少;② 设备绑定与解除绑定:用户在登录移动端后首先需要做的就是与自己的设备进行绑定,以便进行下一步的操作,在绑定了设备后还需要能够解绑;③ 数据采集及设置:与设备绑定后需要能够实现实时显示采集到的数据,并且能够控制硬件设备。移动端完整的工作流程如下:点击移动端,展示欢迎界面,调用登录接口让用户通过注册或者直接登录的方法登录移动端,设备提前接入网络,调用设备绑定接口在移动端配置设备并与之绑定,绑定设备完成后,展示设备列表,点击具体绑定的设备,实时查看当前数据,并能与设备进行交互。移动APP端的登录及注册界面效果:最终完整配置流程界面:在完成设备的绑定后该设备就会出现在移动端中,需要对云端返回的设备采集到的数据进行可视化处理,设计展示界面及开关控制功能。最终的参数查询及控制界面:其部分程序代码如下:参考原文:https://mp.weixin.qq.com/s/A3GgcayTV23xf_dVWB1AVw
系统设计总结