目 录

摘 要 … 1
Abstract… 2
前 言… 3
第一章 绪 论 4
1.1 课题研究的背景与意义 4
1.2 课题的国内外研究现状及发展方向 4
1.2.1 国外研究现状 5
1.2.2 国内研究现状 5
1.3 本文的主要研究工作 6
第二章 基于IntoRobot云平台的系统架构 7
2.1 基于云平台远程监测系统的设计需求 7
2.2 基于物联网监测的基本架构 7
2.3 远程监测系统的基本架构 9
第三章 数据采集系统的硬件设计 11
3.1 硬件电路原理图 11
3.2 IntoRobot Neutron控制板功能模块 12
3.2.1 Neutron控制板整体架构 12
3.2.2 Neutron控制板的总线扩展器 13
3.3 传感器与控制板的连接方式介绍 16
3.3.1 VOC传感器-WSP2110 17
3.3.2 甲醛传感器-电化学甲醛模组 ZE08-CH2O 19
3.3.3 温湿度传感器-DHT11 21
3.3.4 SSD1306 0LED显示屏 21
第四章 系统软件的设计与实现 26
4.1 系统软件方案设计 26
4.2 应用编辑与添加 26
4.3 在线编程 27
4.4 功能详解 28
4.4.1 创建工程 28
4.4.3 编辑界面 29
4.4.2 私有库 30
4.4.5 公有库 33
4.5 程序代码与成果展示 34
第五章 总结与展望 40
5.1 课题总结 40
5.2 进一步开发的展望 40
参考文献 41
致 谢 42

第一章绪 论

1.1 课题研究的背景与意义

近年来,在国家汽车行业飞速发展的同时,人们的购买力也在不断的增加,会发现汽车已经步入普通家庭,成为了我国人们生活中不可或缺的出行工具。据了解,我国汽车每年的销售量约占有全球汽车的总销售量四成左右,自2009年超越美国至今占据世界榜首已长达9年之久;2017年年底,我国的机动车保有量约有3.1亿辆,已经在全球占有三成的比例。而人们在享受汽车所带来的便利之时,许许多多的安全隐患问题也伴随而来。据了解,机动车内刺鼻的异味已经成为许多车主投诉机动车缺陷最为明显的问题之一。
据统计,机动车内含有很多的空气污染物,其中包括烃类、醛类、酮类物质等,对车内人员身体健康的危害较为严重。经过了解发现这些车内空气污染物主要来自以下五个方面:一、许多车主喜欢装饰自己的爱车,在自己的新车内部有大量的饰件,然而他们不知道他们所装饰的某些饰件生产的时候采用了大量的塑料制品和黏合剂,其都含有苯、甲醛等空气污染物,反而成为了危害车内人员身体健康的主要来源;二、车主在驾驶他们的汽车时,由于发动机的燃烧不可避免的会产生CO和氮氧化物等危害人体健康的气体;三、若车主很长一段时间都不清洗车用空调的话,将会生成某些有害物质;四、汽车坐垫由于某些原因受潮时会产生霉菌异味,也会导致车内空气环境污染。
但是,除了上述这些很多我们无法进行改变的污染源以外,车内人员自身的某些行为也会给车内空气质量带来二次污染。比如我们有的时候在乘坐一些喜欢在车内吸烟的车主的车时,我们会感觉胸闷,这正是由于吸烟使得其车内的空气变得十分混浊,生成大量的空气污染物,而且如果车主长期在车内抽烟的话,甚至会在其车顶棚上形成一层黑色的烟渍,不仅影响其汽车的美观而且非常难以去除。
因此,研发一种便携、低成本、能够实际反应出车内空气质量情况的远程监测系统具有非常现实的意义。本文的目的在于研发设计一款基于IntoRobot云平台的车内空气质量远程监测系统,且该系统所设计的框架应该具有架构简单、数据真实、可远程监测、用户使用方便的特点。本系统可以适用于监测新车、行驶或滞留状态下车辆的车内空气质量情况,当有害气体浓度或者温湿度超过预设值时,发送报警信息至用户绑定的手机上,使得车主及时的采取合理的措施来改善汽车内的环境质量问题,从而保护机动车车内人员的身体健康。

1.2课题的国内外研究现状及发展方向

1.2.1 国外研究现状

(1)德国汽车车内空气质量标准
众所周知德国是一个世界著名的生产汽车的国家,其在很早以前就已经开始重视起车内环境的污染和治理问题,而且德国环保部门和消费者协会、汽车制造协会等还为此颁布了一些相关的法规政策,如 “德国汽车车内环境标准”。
(2)美国汽车车内空气质量标准
美国早在上世纪八九十年代时期因为曾发生过几起由于车内空气污染问题而致使人死亡的事件为其敲响了警钟。所以室内和车内污染在美国被认定为人类健康的五大危害之一。据了解,美国Ann arbor环境集团在2006年发布一篇题为《任何速度都有毒》的车内空气质量检测报告,报告中说车内空气中的有害化合物的含量已经达到家具和办公室中的5到10倍,他们采集了11个国际著名汽车品牌车内的薄膜样本,以及汽车的挡风玻璃、车内的灰尘样本,经过仔细化验分析之后,得出此结论,即汽车车内普遍存在这许多对人体有害的物质。尤其的新车的车内污染更为严重,此研究表明,新车出厂后的车内有害气体至少需要6个月以上的挥发时间。美国环保局对于汽车制造厂所使用的材料要求非常严格,其使用的新材料必须要申报,而且要经过环保部门的审查之后才能够使用,以保证其对车内环境和人员的危害程度降到最低点。甚至申报者一旦违反了规定,不仅要求担负大量的罚款,强制召回其产品并进行污染清理,而且主要负责人甚至会被判刑。
(3)日本汽车车内空气质量标准
2005年,日本机动车协会(JAMA) 已经意识到了机动车车内空气污染为车内人员所带来的严重危害,因此为了使日本在此后所生产的新车的车内空气污染问题有所改善,其以自主行动计划的形式发布了《小轿车车内空气污染治理指南》,并在同一时间发布了JAMA提出的车内空气质量测试方法。

1.2.2 国内研究现状

环保部与国家质检总局在2012年3月一起发布了GB/T 27630-2011《乘用车内空气质量评价指南》,该《指南》颁发之后使得国内的机动车车内空气质量问题有了一个评价的改善的依据。但是由于该《指南》不属于强制性的国家标准,其规范的作用变得微乎其微。
此后,环保部在2016年1月22日发布了替代GB/T 27630-2011《乘用车内空气质量评价指南》的GB 27630-201X《乘用车内空气质量评价指南》征求意见稿,其仍然只应用于新生产的车辆,但是性质由推荐性国家标准变为了强制性国家标准,并对某些条款以及部分污染物限值进行了相应的修改和调整。

1.3 本文的主要研究工作

本课题基于IntoRobot云平台,致力于机动车车内空气质量的远程监测,并进行云平台与设备的状态监测。为实现本次车内空气质量远程监测系统的研发,本文的主要研究工作包含以下五个方面:
(1)查阅资料设计一种称心合意的基于IntoRobot云平台的车内空气质量远程监测系统的构架。
(2)从所运用的几种传感器与IntoRobot Neutron开发板的连接方式、节点间的通讯协议设计系统原理图,并依此设计PCB板的硬件线路布局。
(3)分析本此研发设计过程中所运用的IntoRobot云平台的技术与功能,运用C语言编写系统程序代码,实现甲醛含量、VOC含量以及温湿度的远程监测功能。
(4) 分析本此研发设计过程中所运用的IntoRobot云平台的技术与功能,运用云平台应用编辑功能,设计与实现用户手机端APP设备的显示界面。
(5)通过在线烧录并调试验证本文设计的基于IntoRobot云平台的车内空气质量远程监测系统具有一定的可实用性。
第二章基于IntoRobot云平台的系统架构

2.1基于云平台远程监测系统的设计需求

IntoRobot云平台隶属于深圳市摩仑科技有限公司,该公司以开源开放、服务大众为宗旨,致力于推出工业级硬件及极简化IoT云平台,为企业以及个人提供一站式软硬件的整体服务,大大的降低物联网应用创作开发技术的难度。本文基于IntoRobot云平台,使用了该平台的Neutron 开发板,并运用了云平台的在线编程、应用编辑、关联控制等功能,将云平台技术、物联网技术和远程监测技术相结合,根据基于IntoRobot云平台的远程监测系统的应用场景,对系统的构架进行了相应的设计,因此该系统具备了以下五点设计需求:
(1)用户使用方便。用户在使用本系统的时候能够直接通过终端系统自带的软件连接访问,并不需要安装其它的应用软件。
(2)可以进行远程监测。当本系统已经接入网络通信时,用户能够在任何地点、任意时刻对车内空气质量进行远程监测,实现了系统的远程监测功能。
(3)人机界面良好。基于IntoRobot云平台的车内空气质量远程监测系统手机端APP的人机界面应具有简单、操作方便的特点,给予用户良好的体验。
(4)保障数据通信安全。本文设计的数据采集板在采集车内节点信息的同时,能够将所采集到的数据完整的上传到IntoRobot云平台,保障不会丢失数据与通信网络的安全。
(5)低成本。与那些专业的车内空气质量远程监测产品对比,在达到相同目的的情况下,该监测系统具有更加低廉的成本。

2.2 基于物联网监测的基本架构

本文基于IntoRobot云平台的车内空气质量远程监测系统通过运用物联网的架构进行设计,因此了解物联网的架构对于本次的研发工作具有十分重要的借鉴意义。从物联网的技术架构上来进行分析的话,物联网可以分为以下三层:感知层、网络层和应用层,其具体的结构如下图2-1所示。

图2-1 物联网三层架构
感知层又称其为感知交互层,存在于物联网三层结构中的最底层。其功能为“感知”,即在系统结构中起到对外界世界的感知识别和数据的采集处理等功能,然后通过某些短距离传输技术将其采集到的数据传递到网络层,实现了感知层、网络层和应用层的物理连接。在本此研发的系统中,感知层由传感器组构成,包括VOC传感器、温湿度传感器、甲醛传感器、PM2.5传感器。感知层的作用就好比人体的皮肤和五官,它是物联网识别外界物体、采集数据信息的唯一途径。
网络层又称其为网络传输层,存在于物联网三层结构中的第二层。其主要功能为“传送”,即通过通信网络进行信息数据的传输,并且实现数据交互,保证了信息的可靠性与准确性。网络层作为纽带连接着感知层和应用层,它是由各种私有网络、互联网、有线和无线通信网、网络管理系统以及云平台等构成的。在本系统中由Neutron 开发板核心处理器之一的ESP8266微型MCU所构成,网络层的作用就好比人体的神经中枢和大脑,能够传递和处理感知层中传感器组所获取的车内空气质量数据。
应用层又称其为应用处理层,存在于物联网三层结构中的最顶层,是物联网结构的终端。其功能为“处理”,即利用感知层与网络层所提供的接口,处理感知层与网络层所感知采集和传递上来的一些数据,从而实时对外面物理世界进行控制、精确管理以及作出科学的决策。应用层为用户提供如智能医疗、环境监测、智能物流、智能城市、智能生活、智能家居等应用服务。

2.3 远程监测系统的基本架构

本文基于 IntoRobot 云平台的车内空气质量远程监测系统中的远程监测系统通过上述可知其是基于物联网而构建的,依据上述所介绍的物联网构架的三个层次,本文所研发的系统构架也是由类似的三个层次构架所构成,具体的结构如下图2-2所示。
图2-2 远程监测系统的基本架构
如上图2-2所示,本文中车内空气质量远程监测系统主要由传感器组、网络接入设备、云平台、移动设备组成。传感器组包含了几种不同类型的传感器,有温湿度传感器、VOC传感器、甲醛传感器,传感器组中每个传感器独立与IntoRobot Neutron控制板进行电性连接,所述控制板和OLED显示屏进行电性连接,可将测量得到的各种环境参数直接显示在显示屏上,同时控制板在接收并处理传感器组采集到的数据之后,通过其身上的Wi-Fi模块将传感器组所采集到的数据发送至IntoRobot云平台,用户即可在手机APP端实时查看测量得到的车内空气质量的各种参数。
车内空气质量远程监测系统的网络接入设备为Neutron核心处理器之一ESP8266微型MCU,本次系统在设计过程中使用了该模块为所研发的设备增添了联网的功能,使得所用的传感器组连入了IntoRobot云平台,即能够将设计的数据采集板所采集到的数据输送给云平台进行相应的处理、存储。用户能够通过PC、笔记本、手机等的浏览器访问车内空气质量远程监控系统WEB端的应用程序。
本文研发的基于IntoRobot云平台的车内空气质量远程监测系统是一款具有普适性的系统,只需要将传感器组通过一些协议就能自动连入基于IntoRobot云平台的车内空气质量远程监测系统中。基于IntoRobot云平台的车内空气质量远程监控系统正常运行的大致流程如下图2-3所示。

图2-3系统运行的大致流程图
首先,传感器节点通过通信设备直接连接在网络接入设备上,然后传感器节点接收网络接入设备转发的云平台控制指令,再将指令解析,根据解析得到的指令进行相应的操作,在采集到数据后,将数据发送到网络接入设备,网络接入设备再将传感器采集的数据直接发送到云平台上的数据库进行存储[4]。通过PC、笔记本、手机上的浏览器登陆WEB端指定的应用服务网页,然后通过注册登录网页访问IntoRobot云平台,用户可以在云平台网页进行编辑操作。监测系统的应用程序是采用基于WEB的编程方式在线编程,完美的兼容Arduino语法使得用户使用起来非常的方便,用户没必要安装一些特定的应用软件,只需要通过浏览器进行访问操作,实现了监测系统程序的跨平台与兼容性。如果用户想读取历史数据,那么应用程序就产生事件触发云平台的数据库,然后读取数据库里的指定数据,下载到WEB服务器上,WEB服务器对下载的数据进行解析,然后以特定的形式如图片等显示出来。基于IntoRobot云平台的车内空气质量远程监测系统通过上述流程对车内环境质量进行远程监测。
第三章数据采集系统的硬件设计

传感器节点是基于IntoRobot云平台的车内空气质量远程监测系统的最小单元,由传感器组、执行装置、Neutron控制板和通信设备组成。节点中的传感器组在系统中起着感知外界、采集车内空气质量信息的功能,好比人体的“皮肤”以及“五官”,节点内的执行装置能够实现监测系统的反馈控制功能,在监测系统中相当于人体的“手”、“脚”的作用,通信设备在本系统中起着连接传感器和网络接入设备的作用。在本章中主要分析了数据采集系统的电路设计,阐述了各类传感器与Neutron控制板电性连接的通信协议、系统中数据传输的格式及OLED屏显示所采用的库函数。

3.1 硬件电路原理图

本此设计的数据采集系统的硬件电路设计原理图如下图3-8所示,数据采集PCB板布局图如下图3-9所示,主要可以分为7个部分,包括WSP2110型VOC气体传感器、SSD1306 0LED显示屏、温湿度传感器-DHT11、甲醛传感器-电化学甲醛模组 ZE08-CH2O、Neutron控制板、电源模块及风扇模块。

图3-8 硬件电路原理图

图3-9 数据采集板整体布局

3.2 IntoRobot Neutron控制板功能模块

3.2.1 Neutron控制板整体架构

Neutron硬件主要包括STM32F411CE、ESP8266、加速度与陀螺仪传感器、磁力传感器、声音传感器、光照传感器、气压传感器、电源系统等,并且具备强大的网络连接功能。整体架构如下图3-1所示。

图3-1 Neutron控制板整体架构
Neutron开发板有两个核心处理器,其一为STM32F411CE是行业领先的ARM® Cortex®-M4超低功耗32位微型 MCU,其主频支持 100 MHz,125 DMIPS,集成 DSP及 DFU(浮点运算)。其二为ESP8266它在较小的尺寸封装中集成了行业领先的Tensilica L106超低功耗32位微型MCU,而且带有16位精简模式,主频支持80 MHz和160 MHz,支持RTOS,集成Wi-Fi MAC/ BB/RF/PA/LNA,板载天线。Wi-Fi接口支持标准的IEEE802.11 b/g/n协议,完整的TCP/IP协议栈。
整个系统的供电是由USB 5V来供应,其结构是5V通过DC-DC降压到3.3V给STM32F411和ESP8266供电。主要特性:
2.7-5.5V的输入电压
输入电流最大的有效值2A,峰值可达到3A
1MHz的开关频率
内置软启动的设置
效率达到92%

3.2.2 Neutron控制板的总线扩展器

Neutron的GPIO口非常丰富,总共有16个GPIO口。Neutron的管脚图如图3-2所示。本节主要阐述本次设计所需的A/D连接、SPI总线连接及I2C总线连接。

图3-2 Neutron管脚图
(1) A/D连接
A/D(Analog/Digital)是模数转化接口,控制器的A/D接口是在通用I/O基础上扩展出来的,与I/O的区别是控制器在内部添加了ADC(Analog Digital Converter,模拟数字芯片),控制器的A/D口在连接传感器的输出口之后,会读取传感器输出的电信号,这个可读的电信号在通过ADC转化之后,就可以得到控制器内部可以识别的数字信号。根据ADC的转化精度不同,传感器采集的数据转化为数字信号之后长度也不同,例如A/D精度是12位,那么转化之后的数字信号有效位数就是12位。A/D接口可以读取连续的模拟信号,所以模拟量传感器一般与控制器的A/D接口进行连接,控制器直接通过A/D口读取采集数据。
Neutron控制板具有(D0-D7)8路数字管脚;如下图3-2(a)所示;具有(A0-A7) 8路模拟管脚,如下图3-2(b)所示。

图3-2(a) Neutron数字管脚 图3-2(b) Neutron模拟管脚
(2)SPI总线连接
SPI是串行外设接口(Serial Peripheral Interface)的缩写。这是一种双全工的高速(能够达到10Mbps)通讯总线,可同时支持输入输出。SPI的通信原理很简单,如图3-3所示,它以主从方式工作,使用三条通讯总线和一条片选线,分别为 MOSI: Master Output Slave Input,顾名思义,即主设备输出/从设备输入;数据从主设备输出到从设备,主设备发送数据。 MISO:Master Input Slave Output,主设备输入/从设备输出;数据由从设备输出到主设备,主设备接受数据。SCK:即时钟通讯线,用于通讯同步,该信号由主设备产生。SS:片选信号线;是控制芯片是否被选中的从设备使能信号,由主设备控制。本次研发的系统使用Neutron开发板为主设备、传感器组为从设备,传感器组采集到的车内空气质量数据由SDO(数据输出)线传递到Neutron开发板。

图3-3 SPI连接的通信接口图
SPI接口有四种不同的工作模式,取决于CPOL(时钟极性)和CPHL(时钟相位)这两位的组合方式。CPOL是用来决定SCK时钟信号空闲状态的电平,CPHA是用来决定数据的采样时刻具体工作模式如下表 3-1 所示。
表3-1 SPI四种工作模式
模式 电平 工作特点
SPI0 CPOL=0,CPHA=0 时钟空闲信号为低电平,数据在第一个跳变时被采样
SPI1 CPOL=0,CPHA=1 时钟空闲信号为低电平,数据在第二个跳变时被采样
SPI2 CPOL=1,CPHA=0 时钟空闲信号为高电平,数据在第一个跳变时被采样
SPI3 CPOL=1,CPHA=1 时钟空闲信号为高电平,数据在第二个跳变时被采样
Neutron有2组SPI总线接口,如图3-4所示。

图3-4 Neutron SPI总线接口
(3) I2C总线连接
I2C(Inter-Integrated Circuit)是一种串行总线的外设接口。I2C只有两条串行总线,分别为串行数据SDA(Serial Data)线与串行时钟SCL(Serial Clock)线,所有设备都连接在这两条总线上,因为每个设备都只有唯一的7位或10位地址,所以I2C 总线可以通过从地址的设置来进行数据的双向传输与控制。

图3-5 I2C总线连接
如上图3-5所示,将本次所用的传感器通过SDA和SCL与Neutron控制板的两个I/O电性连接就能够实现传感器与控制板的I2C总线连接。I2C总线是当今电子设计中应用非常广泛的串行总线之一,只要掌控I/O的时序,基本上所有的控制器都可以使用I2C总线连接。I2C总线的读写操作是一位一位数据进行的,具体的读写操作如下图3-6所示。在开始读写数据的时候,首先会确认休闲位与开始位,然后读取从地址的值,接着再判断是读标志还是写标志,如果判断为写标志,则先向从地址写入n位字节的数据,然后在传输最后一位数据之时,再次进行确认,在写完所有数据之后,确认结束位与休闲位;如果判断是读标志,则在从地址读入数据,读数据的操作和写数据的操作一致,只是在读完数据之后要添加一个非确认位。

图3-6 I2C总线读写操作
Neutron控制板有一组标准的I2C总线,如图3-7所示。由于I2C总线是通过数据位进行读写操作,所以本次设计所用数字式传感器可以通过I2C总线连接的方式与Neutron控制板进行电性连接,直接将所用传感器的信号输出口和时钟口与控制板的2个I/O口相连接就可以实现传感器和控制板的通信连接。

图3-7 Neutron I2C总线接口
3.3 传感器与控制板的连接方式介绍

传感器的类型多种多样,按照传感器输出信号的形式分类,可以将传感器分成以下三类:开关量传感器、模拟量传感器和数字传感器。
开关量传感器是指输出信号为固定电平的传感器,这种类型的传感器输出的信号只有 两种状态:高电平和低电平。用这两种电平分别来表示传感器不同的工作状态,如电灯的点亮与熄灭、开关的导通与断开、继电器的闭合与打开、电磁阀的接通和断开等。
模拟量传感器是指输出信号为模拟电信号的传感器,输出的是连续信号,用可以被测得的电压、电流、电阻等来表示被测参数的大小。而且其大小是在一定的范围量程里连续变化的,如本次设计所用的温湿度传感器、甲醛传感器、VOC传感器都是模拟量传感器,其测量值温湿度、甲醛含量、VOC含量都可以用模拟量来表示,然后经过 A/D 转化,将测得的模拟信号转化为CPU可以识别出的数字信号。
数字传感器是指将传统的模拟量传感器经过添加、改装或A/D转换模块,使传感器输出的信号变成数字量(或数字编码)的传感器。
在本文的监测系统中,通过将传感器组采集到的车内空气质量数据进行转化解析并且发送云平台。本节主要阐述本次设计所运用的VOC传感器模块、甲醛传感器模块、温湿度传感器模块以及OLED显示屏与Neutron控制板的电性连接原理图。

3.3.1 VOC传感器-WSP2110

WSP2110型VOC气体传感器的具体参数如下表3-2所示。
表3-2 WSP2110型VOC气体传感器具体参数
产品名称: WSP2110型VOC气体传感器
检测气体: 甲苯、甲醛、苯、酒精、丙酮等
工作电压: DC 5V 工作电流: <60mA
加热电阻: 90Ω±5Ω(温室) 负载电阻: 可调电阻
检测浓度: 1-50ppm 回复时间: ≤30s
元件功耗: ≤0.5W 使用寿命: 2-3年
工作温度: -10~50℃(标称温度20℃) 预热时间: 30~50分钟
工作湿度: 5~95%RH(标称湿度60%RH)无凝结
当测量车内空气质量时,当车内空气中VOC气体浓度增加,该传感器的电导率就会增高,因此设计了如下图3-4所示的电路就可以将这种电导率的变化转换为与气体浓度相对应的输出信号,传感器实物图如图3-5所示。

图3-4 基本电路

图3-5 WSP2110型VOC气体传感器实物图
本次设计WSP2110型VOC气体传感器可以检测出车内环境的VOC气体浓度并将数据实时传输至WEB端和手机端APP,从而实现车内VOC气体浓度的实时监测。该系统主要通过WSP2110型VOC气体传感器进行相关数据的采集,然后通过Neutron系统板将其接入IntoRobot云平台,可以通过WEB和手机端APP定制的控件进行实时数据的传输,并且当VOC气体浓度超过限定值时,该系统可以向所绑定的手机发送短信警告。WSP2110型VOC气体传感器与Neutron核心板硬件电路接线设计如下图3-6所示。

图3-6 WSP2110型VOC气体传感器接线方式

3.3.2 甲醛传感器-电化学甲醛模组 ZE08-CH2O

本系统中使用了ZE08-CH2O型电化学甲醛模组对车内空气中存在的CH2O进行探测,其具有良好的选择性和稳定性。该电化学甲醛模组具体技术参数如表3-3所示。
表3-3 ZE08-CH2O型电化学甲醛模组具体参数
产品型号: ZE08-CH2O
检测气体: 甲醛
干扰气体: 酒精、一氧化碳等气体
输出数据: DAC(0.4V~2V电压信号对应浓度:0~满量程)
UART 输出(3V电平)
工作电压: 3.7V~5.5V(带电压反接保护)
预热时间: ≤3分钟
响应时间: ≤60 秒
恢复时间: ≤60 秒
量程: 0ppm~5 ppm
分辨率: ≤0.01ppm
工作温度: 0℃~50℃
工作湿度: 15%RH-90%RH(无凝结)
储存温度: 0℃~50℃
使用寿命: 2年(空气中)
该电化学甲醛模组具有高分辨率、高灵敏度、低功耗、使用寿命长的特点,提供UART、模拟电压信号、PWM波形等多种输出方式以及高稳定性、优秀的抗干扰能力、温度补偿、卓越的线性输出。实物图如下图3-7所示。

图3-7 ZE08-CH2O型电化学甲醛模组实物图

引脚图如下图3-8所示。

图3-8 ZE08-CH2O型电化学甲醛模组引脚图
管脚定义如下表3-4所示。
表3-4 ZE08-CH2O型电化学甲醛模组管脚定义
管脚名称 管脚说明
Pin1 预留
Pin2 DAC (0.4V~2V,对应 0~满量程)
Pin3 GND
Pin4 Vin(电压输入 3.7V~5.5V)
Pin5 UART(RXD) 0V~3.3V数据输入
Pin6 UART(TXD) 0V~3.3V数据输出
Pin7 预留
本次设计ZE08-CH2O型电化学甲醛模组可以检测出所处环境的甲醛气体浓度并将数据实时传输至手机端和WEB端,从而实现甲醛气体浓度的实时监控。本次研发设计的系统主要通过ZE08-CH2O型电化学甲醛模组采集机动车车内的甲醛含量,然后通过Neutron系统板将其传输至IntoRobot云平台,用户即可通过WEB和手机端APP定制的控件进行实时数据的监测,并且当车内甲醛浓度超过限定值时,该系统可以向所绑定的手机发送短信警告。ZE08-CH2O型电化学甲醛模组与Neutron核心板硬件线路接线设计如下图3-9所示。

图3-9 ZE08-CH2O型电化学甲醛模组接线方式
3.3.3 温湿度传感器-DHT11

本次系统研发设计所采用的DHT11温湿度传感器是一款含有已校准数字信号输出的温湿度复合型传感器。它和一个拥有较高性能的8位单片机相连接并且包括一个电阻式感湿元件和一个NTC测温元件。实物图如下图3-10所示。

图3-10 温湿度传感器-DHT11实物图
DHT11温湿度传感器的供电电压要求为3.5-5.5V。数据输出是串行数据,单总线;湿度测量范围:20%~95% (0°50°范围),湿度测量误差:±5%;温度检测范围:0°50°,温度测量误差:±2°。
本次设计DHT11可以检测出车内环境的温湿度并将数据实时传输至WEB端和手机端APP,从而实现对车内温湿度的实时监测。该设备主要通过DHT11温湿度传感器来对车内温湿度数据进行采集,然后通过Neutron系统板将采集到的数据传输至IntoRobot云平台,用户即可通过WEB和手机端APP定制的控件进行实时数据的传输,并且当车内温湿度超过限定值时,该系统可以向所绑定的手机发送短信警告。DHT11与Neutron核心板硬件线路接线设计如下图3-11所示。

图3-11 DHT11接线方式

3.3.4 SSD1306 0LED显示屏

本次研发的系统所采用的这款OLED屏幕模块尺寸约为0.96英寸,主要由裸屏和底板PCB组成,其裸屏由一种运用较为广泛的led驱动芯片SSD1306驱动。其基本参数如表3-5所示。
表3-5 SSD1306 0LED显示屏基本参数
基本信息 参数
驱动电压 3.3~5V
分辨率 128×64
驱动接口 I2C
I2C地址 0x3c(默认)\0x3d可选
SSD1306本身支持多种总线驱动方式包括SPI以及并口等,通过芯片相应的IO口拉低拉高来切换到底选择哪一种接口,本此设计中此模块通过电阻将相应IO口配置固化使用了I2C总线连接的方式。实物图如下图3-12所示。

图3-12 SSD1306 0LED显示屏实物图
在本次研发设计过程中发现此OLED屏在使用I2C总线连接的时后,由于SSD1306最多允许有两个7位的I2C地址,其通过相应的IO口拉低拉高来进行切换,一般默认是0x3c,但在屏幕模块的背面是可以看到一个I2C地址切换的提示的,如下图3-13所示。当需要变换模块I2C的地址时,只需要把提示位置的电阻取下,然后焊接到另一端即可。要注意的是模块上的I2C地址为经过左移一位的数值,也就是说0x78 = 0x3c<<1, 0x7A = 0x3d << 1。

图3-13 I2C地址切换
SSD1306屏幕驱动库中最为出名的为u8g2,但由于本课题为基于IntoRobot云平台的车内空气质量远程监测系统的研发,发现可以在IntoRobot云平台的公有库中找到并运用Adafruit_GFX库函数和Adafruit_SSD1306库函数,所以本次设计中并不采用u8g2。Adafruit_SSD1306相关源码如下图3-14所示;Adafruit_GFX相关源码如图3-15所示。

图3-14 Adafruit_SSD1306源码

图3-15 Adafruit_GFX源码
从上述源码中可以看出,Adafruit_GFX 库函数定义了一系列的绘画方法(线,矩形,圆…),属于基础类,并且最重要的一点,其drawPixel方法是通过子类来实现。
    Adafruit_SSD1306 库函数定义了一系列跟SSD1306有关的方法,并且重写了drawPixel方法,属于扩展类。
本次系统研发设计中SSD1306 0LED显示屏通过与Neutron系统板进行电性连接,可以实时显示传感器组所采集并处理过的车内温度、湿度、VOC浓度、甲醛浓度等数据。SSD1306 0LED显示屏与Neutron核心板硬件线路接线设计如下图3-16所示。

图3-16 SSD1306 0LED显示屏接线方式
第四章系统软件的设计与实现

4.1 系统软件方案设计

在本次基于IntoRobot云平台的车内空气质量远程监测系统的研发中其软件设计由两部分组成,分别为下位机软件设计和手机APP界面显示设计。
由于本次设计基于IntoRobot云平台,所以本次程序设计和调试为在线编程的模式。手机APP界面显示通过云平台的应用编辑进行设计。

4.2 应用编辑与添加

“应用”是在WEB端和手机APP端所能看到的界面,我们可以在界面上进行一些操作,如点击查看历史数据等;但“应用”只能在WEB端进行编辑、添加。以下是在WEB端进行应用创建的界面,根据需要创建应用,此处创建应用“Air-quality-detector”,如图4-1所示:

图4-1 创建应用
创建应用之后单击该应用,即可进入应用的编辑界面,如图4-2所示:

图4-2应用编辑界面
添加表盘控件和接收数据控件以及温度、湿度控件,其中两个表盘控件和接收数据控件可以实时显示甲醛及VOC的含量,温度、湿度控件能够实时显示当前空气的温湿度。将编辑好的应用保存好之后,即可在“设备展示”中选择设备,进入该界面后点击“应用配置”将应用添加到设备中,这样就可以在WEB端或手机APP端查看对应的应用界面了。如下图4-3是已经添加好的应用。

图4-3 已添加好的应用

4.3 在线编程

IntoRobot云平台给用户提供了在线编程、编译、烧录环境的在线编程功能。用户只要登录WEB端的云平台页面,在全球任何地点、任意时刻都可以进行在线编程操作,它完全兼容Arduino的语法而且使用起来非常便捷。在线编程主界面如图4-4所示。

图4-4 在线编程主界面

4.4 功能详解

在线编程如图4-5所示,分为以下5个模块:
我的工程:用户个人所创建的工程。
私有库:用户个人新创建的库,可以从“公有库”中直接复制而来,也可以自己编写。
公有库:云平台提供的公用的库,其中的工程用户可以直接进行调用,也可以把它复制到“私有库”中进行编辑和使用。
示例:平台提供的示例代码。
共享工程:用户共享的代码。

图4-5 在线编程功能模块

4.4.1创建工程

输入本次系统的工程名称、工程描述、选择对应绑定设备。如图4-6所示。

图4-6 新建工程
新建工程成功之后,在在线编程界面可以看到我的工程中的列表,移动鼠标可以发现用户所新建的工程支持修改、复制、删除等功能。如图4-7所示。

图4-7 工程列表
修改:修改此工程的名称以及工程描述、工程所绑定的设备。
复制:可以将此工程复制一份,供备份或者用来修改编辑。
删除:删除工程,删除后此工程不能恢复,删除前应做好备份。

4.4.3 编辑界面

编辑界面如图4-8所示。

图4-8 编辑界面
返回:返回工程列表;
保存:保存所编写的程序代码;
编译:编译所编写完成的代码,如果所编写的代码的有错误的话,在状态栏中会进行相应的提示;
烧录:将编译成功后的程序文件通过在线烧录或者串口烧录到所绑定的设备中,当然我们此时应该保持系统设备已经连入云平台;
导出:点击导出可以将编译成功后的程序文件下载到指定的本地文件夹中;
添加项目文件:为工程增加.cpp与.h文件;
文件删除:当用户将鼠标光标移至左侧对应文件名称的列表处,将会出现文件删除标识,除了ino主文件外,其他所有的程序文件都可以点击此处进行删除操作;
公有库:列表所显示载入的公有库,移动鼠标点击“公有库”的标签页,用户可以在此查找所到需要的公有库,然后点击“载入应用”就可以实现公有库的载入;
私有库:列表所显示载入的私有库,移动鼠标点击“私有库”的标签页,用户可以在此查找到所需要的私有库,然后点击“载入应用”就可以实现私有库的载入;
绑定设备:新建工程时与该工程所绑定的设备;
将鼠标移至右上角的“选项”,我们可以发现,在线编程同时也提供修改代码字体的大小,编辑器显示的主题,代码对齐,以及快捷键的相关设置,在为编写代码提供了更多的方便之余也大大地增强了在线编程的可操作性。

4.4.2私有库

本次设计共载入三个私有库,如图4-9所示。

图4-9 私有库
其中包括获取2.5um及1.0um粉尘数据的PM25SENSOR私有库,该私有库代码如图4-10所示。

图4-10 PM25SENSOR.h代码
包括OLED显示屏驱动函数的VOC_Monitor_OledDisplay私有库,该私有库代码如图4-11所示。

图4-11 VOC_Monitor_OledDisplay.h代码
包括获取温湿度、甲醛含量、VOC含量数据的VOC_Monitor_Sensor私有库,该私有库代码如图4-12所示。

图4-12 VOC_Monitor_Sensor.h代码

4.4.5 公有库

本次设计共载入两个公有库,分别为SSD1306屏幕驱动库的Adafruit_SSD1306公有库以及DHT11温湿度传感器库的DHT11。SSD1306屏幕驱动库已在上章详细叙述,dht11.h代码如图4-13所示。

图4-13 dht11.h代码

4.5程序代码与成果展示

由于本次系统研发设计的程序云平台上并没有给出,所以需要编写代码进行移植,代码的移植在了解了相关的应用接口之后是很简单的,如图4-14所示。

图4-14 应用接口
除了应用接口之外,还需要掌握Topic这个概念。在本次项目中,可以将topic理解为应用界面上的“可显示控件(表盘和接收数据控件以及温湿度控件)”,从功能应用接口中可以找到,功能Topic:channel/TJ_0/data/VOC;功能Topic:channel/TJ_0 /data /temperature;功能Topic:channel/TJ_0/data/humidity ;功能Topic:channel/TJ_0 /data /CH20;功能Topic:channel/TJ_0/data/ch20;功能Topic:channel/ TJ_0 /data/voc;如图4-15所示。

图4-15 Topic定义
首先是给系统板上电,Micro USB线连接5V 2A供电即可,用户可以直接连入笔记本供电,等待大概5s左右,会发现系统板闪烁红灯,此时表明Neutron系统板在正常运行并且处于配置模式,如果上电之后发现不是红灯闪烁则长按Neutron系统板侧边的MODE键,当发现状态灯变成红色之时立刻释放该按键,发现此时Neutron系统板将出现红灯闪烁,表明已进入配置模式。在WEB端选择串口连接绑定设备比较方便,如图4-16所示。添加设备后通过串口进行绑定,输入当前可连入的WI-FI密码,以及所选的串口,设备成功配置后,灯会进入亮白色的状态。我们此时可以在WEB端或者手机端APP进行观察,可以看到“IntoRobot-Neutron_1”就是成功将Neutron系统板连入WI-FI后的显示。

图4-16 设备WI-FI连接成功
给出全部代码如下图4-17(a)~(b)所示。

图4-17(a) Topic定义

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐