【2024 DigiKey 创意大赛】室内空气质量监测新风系统
<p>765a0661cd170e16b595b997e6d90051<br /> </p>
<p> </p>
<p >首先,很荣幸入选参加这次活动,有机会能展示自己的想法和成果。感谢EE论坛与得捷电子合作举办的这次活动,感谢上海得捷电子的慷慨赞助!</p>
<p >这次我带来的是一款带室内环境空气质量监测的新风系统方案解决产品</p>
<p > </p>
<p ><b>一.需求分析:</b></p>
<p > </p>
<p >我们通常所说的,室内环境一般泛指家庭、办公室、工厂、影院、餐厅、商场等密闭或半密闭环境。由于室内或室外存在连续或间歇性排放的空气污染源,在通风不良的条件下,污染物会在密闭空间累积,达到一定的程度会造成对人体的危害,甚至致人死亡的可能性。</p>
<p >随着社会环境的越来越都市化的改变,越来越多的人们告别乡村,选择进城务工和生活。据不完全统计,每人每天约 90%的时间处于室内的环境中,室内空气质量之良莠,直接影响生活质量及工作效率,因而室内空气污染物正逐渐受到人们的重视。</p>
<p >有效监测室内空气质量,进行危害风险评估,积极采取相关措施,势在必行。</p>
<p > </p>
<p ><b>二.室内环境空气污染的主要来源与危害</b></p>
<p >主要来源可以分为:化学污染、物理污染、生物污染三个方面。</p>
<p > </p>
<p >1.化学污染</p>
<p >人造板材、各种油漆、涂料、粘合剂及家具等其主要污染物是甲醛、苯、二甲苯等有机物和氨、一氧化碳、二氧化碳等无机物</p>
<p > </p>
<p >2. 物理污染</p>
<p >主要来源于建筑物本身、花岗岩石材、部分洁具及家用电器等,其主要污染物是放射性物质和电磁辐射,噪声等。</p>
<p > </p>
<p >3. 生物污染</p>
<p > </p>
<p >室内来源人们在室内的生活和活动;人体排出的微生物:现代家居中空调的使用;</p>
<p > </p>
<p >室外来源由于大气环境的日益恶化,生活污水、乱扔的垃圾以及工厂排放的废弃物也能产生出大量的微生物,并伴随通风与空调送风进入室内;室外微生物还可以通过人员的流动而进入室内。</p>
<p > </p>
<p ><b>三. 室内空气污染治理的措施</b></p>
<p > </p>
<p >1消除和控制室内污染源</p>
<p >2增加新风量、发挥新风效应</p>
<p >3优化设计对微生物污染的控制,强调对室内相对湿度控制及采取相应的技术措施。设备选择和管道的设计、安装的重点在于尽量减少尘埃污染和微生物污染,如减少污染源、防止尘埃和湿气的积累建筑设计要遵循生态环境的设计原理</p>
<p > </p>
<p >根据上面的简报,这里我们可以得到一个最简单的结论就是,改善普通的办公和居住室内环境一个最简单有效的方法就是,保持通风换气,其最简单的办法就是开窗通风。</p>
<p >然而在实际的工作和生活环境中,空气质量没到非常恶劣令人难以忍受的程度,都不会想着去加以主动改善,或者因为缺乏必要的检测和警示设备,往往被人们忽略。</p>
<p >那么设计一款带室内环境监测系统的新风系统,可广泛用于大厅、会议室、商场等人员较密集的场所以及办公室、酒店等人员停留时间较长的场所,进行主动检测,自动控制新风系统设备运行,对人员环境的空气质量予以改善。</p>
<p >可以实时监测甲醛、粉尘、温度等信息,所获数据真实、准确,再根据检测的数据,在达到预置的警告数据时自动控制风机进行通风排气,或者控制其他改善室内环境空气净化设备运行,即可为改善室内工作生活环境的空气质量而保驾护航和提供科学依据。</p>
<p > </p>
<p ><b>四.室内空气监测新风系统方案物料简介</b></p>
<p > </p>
<p >本次设计中,最开始我是打算采用F411或者L476作为主控芯片的,后来经过比较采用了SC20100S FEZ-ARM® Cortex®-M7 MPU评估板来实现这个方案。因为该评估板采用了ST的M7芯片,更快的性能和速度及大容量的FLASH空间为后续的功能扩展和升级提供了更多的可能。</p>
<p >其板载的WIFI模块,更是如虎添翼,为后续通过软件更迭,升级,整个系统通过互联网设置参数,远程控制等提供了硬件保障。</p>
<p >本次设计方案的主角清单:</p>
<p > </p>
<p ><b>1.SC20100S FEZ-ARM® Cortex®-M7 MPU</b><b>评估板 </b></p>
<p > </p>
<p >厂商:GHI Electronics 得捷料号:SCC-FTHR-B</p>
<p > </p>
<p ><b>2.BME680</b><b>气体,湿度,压力,温度传感器Qwiic,STEMMA QT平台评估扩展板</b></p>
<p > </p>
<p >厂商: Adafruit 得捷料号:3660</p>
<p > </p>
<p ><b>3.SGP30-</b><b>气体,湿度,室内空气质量(IAQ)评估板</b></p>
<p > </p>
<p >厂商: Adafruit 得捷料号:3709</p>
<p > </p>
<p >可以看到,本次选用的物料,已经包含了主要的MCU控制器和基础的传感器套件,只需附加上显示和简单的外围控制电路即可组成一个带室内环境监测系统的新风系统解决方案,下面对所选的物料做一个详细的了解:</p>
<p > </p>
<p ><b>BME680</b><b>气体,湿度,压力,温度传感器Qwiic,STEMMA QT平台评估扩展板</b></p>
<p > </p>
<p > </p>
<p >BME680是一个集成的环境传感器,专为移动应用和可穿戴设备而开发,其大小和低功耗是关键需求。扩大博世Sensortec现有的环境传感器系列。</p>
<p >BME680集成了独立的高线性和高精度传感器,用于气体、压力、湿度和温度。</p>
<p > </p>
<p >它由一个8针的金属盖子3.0x3.0x0.95 mm3 LGA包组成,根据具体的操作模式、长期稳定性和高EMC鲁棒性设计为优化消费。</p>
<p > </p>
<p ><b>BME680</b><b>内的气体传感器可以探测到广泛的气体,以测量个人油井的室内空气质量,BME680可以检测到的气体包括:挥发性有机化合物(挥发性有机化合物),从油漆(如甲醛)、喷漆、油漆剥离器、清洁用品、家具、办公设备、胶水、粘合剂和酒精。</b></p>
<p > </p>
<p >湿度传感器具有最佳的响应时间,支持对新兴应用程序的性能需求,例如上下文感知,以及在广泛的温度范围内的高精度压力传感器是一种absolute气压传感器,在很低的噪音下具有极高的精度和分辨率。</p>
<p > </p>
<p >该集成式温度传感器已经过优化,噪音低,分辨率高。它主要用于气体、压力和湿度传感器的温度补偿,也可用于估计环境温度。BME680支持一套完整的操作模式,这为优化设备的功耗、分辨率和过滤性能提供了大的灵活性。</p>
<p > </p>
<p >新兴应用如家庭自动化、室内导航、个性化气象站和创新运动和健身工具,需要一个具有快速响应时间的气体传感器,具有较高相对精度和低TCO的压力传感器,结合快速响应、高准确度、相对湿度和环境温度测量。BME680是适合这种气压计应用的设备特性优良的相对精度±0.12 hPa(相当于±1米高度差)和一个偏移量温度系数(TCO)只有1.5 Pa/K(相当于12.6厘米/K)</p>
<p > </p>
<p ><b>BME680 </b><b>环境传感器 集成气体传感器 空气质量传感器应用:</b></p>
<p >室内空气质量测量</p>
<p >个性化的气象站</p>
<p >语境意识,如皮肤水分检测、空间变化检测</p>
<p >健康监测/幸福</p>
<p >警告有关干燥或高温</p>
<p >体积和气流的测量</p>
<p >家庭自动化控制(如空调)</p>
<p >GPS增强(如time-to-first-fix改进,航迹推算,斜率检测)</p>
<p >室内导航(地板的变化检测、电梯检测)</p>
<p >高度跟踪和体育活动消耗的热量</p>
<p > </p>
<p >BME680 环境传感器 集成气体传感器 空气质量传感器传感器操作:BME680支持I2C和SPI(3线/4线)数字、串行接口。</p>
<p > </p>
<p >该传感器可在三种功率模式下运行:睡眠模式、正常模式和强制模式。在正常模式下,传感器会自动在测量和待机时间之间循环。当使用BME680内置的IR过滤器时,建议使用这种模式,当短期干扰(例如吹入传感器)需要过滤。</p>
<p >在强制模式下,传感器在请求上执行单个测量,然后返回睡眠模式。这种模式适用于需要低采样率或基于主机的同步的应用程序。</p>
<p >为适应用户需求,对数据率、噪声、响应时间和电流消耗进行调整;可以选择多种采样模式、滤波模式和数据速率。通过应用几个短期干扰滤波器设置,传感器可以以一种很灵活的方式进行编程,以适应应用程序和电源管理的要求。</p>
<p >BME680 环境传感器 集成气体传感器 空气质量传感器软件:BME680完全校准了所有传感器组件。对于压力计算,BoschSensortec的高度内容。提供商ACP2.0软件作为BME680的软件包。它以好的精度计算高度。ACP2.0软件采用海平面气压来计算海拔高度,通过地质校正来补偿地球的非球性,并将其高度与GPS模块提供的当前海拔高度进行比较。</p>
<p >BME680 环境传感器 集成气体传感器 空气质量传感器系统的兼容性:BME680的设计初衷是为了适应现代移动消费电子设备。除了小排量和低功耗外,BME680还为VDD和VDDIO供应电压提供了很广泛的范围。</p>
<p >博世Sensortec的BME680将广泛的经验和可性结合在了消费者应用上。</p>
<p > </p>
<p ><b>SGP30-</b><b>气体,湿度,室内空气质量(IAQ)评估板</b></p>
<p > </p>
<p > </p>
<p >SGP30是一款环境传感器,由瑞士的Sensirion公司开发。它是一种多功能气体传感器,可以测量室内空气中的二氧化碳(CO2)和挥发性有机化合物(VOCs)浓度。SGP30使用了先进的传感器技术,能够提供准确的空气质量监测数据。它可以应用于室内空气质量监测、智能家居、室内空气净化等领域。</p>
<p > </p>
<p >SGP30传感器的工作原理基于电化学气体传感技术和光学测量技术。对于二氧化碳(CO2)浓度的测量,SGP30传感器采用了电化学气体传感技术。它包含一个电化学传感器元件,该元件具有一个氧化物电极和一个参比电极。当空气中的CO2分子进入传感器,并与氧化物电极上的电解质发生反应时,会产生电流变化。通过测量这种电流变化,可以确定CO2浓度的值。</p>
<p > </p>
<p >对于挥发性有机化合物(VOCs)浓度的测量,SGP30传感器利用了光学测量技术。它包含一个光敏元件,该元件能够感知特定波长的光线。当空气中的VOCS分子进入传感器,并与传感器内部的氧化剂发生反应时,会产生氧化反应产物。这些产物会吸收特定波长的光线,导致光敏元件接收到的光信号发生变化。通过测量这种光信号的变化,可以确定VOCs浓度的值。</p>
<p >SGP30传感器通过对CO2和VOCs浓度的测量,结合内部的算法和校准数据,可以提供准确的空气质量监测数据。它还具有低功耗、快速响应和长寿命等特点,适用于各种应用场景。</p>
<p > </p>
<p ><b>数据范围:</b></p>
<p > </p>
<p >TVOC: 0~60000 ppb</p>
<p >氧化碳:400~60000ppm</p>
<p > </p>
<p ><b>主要特点:</b></p>
<p > </p>
<p >1.多功能传感器:SGP30可以同时测量室内空气中的二氧化碳(CO2)和挥发性有机化合物(VOCs)浓度。这使得它在空气质量监测和室内环境控制方面非常有用。</p>
<p >2.高精度测量:SGP30传感器采用先进的传感器技术,能够提供准确的测量结果。它具有较低的测量误差和良好的重现性,可以满足对精度要求较高的应用。</p>
<p >3.快速响应时间:SGP30传感器具有快速的响应时间,能够迅速检测到空气中的CO2和VOCs浓度变化。这使得它在实时监测和控制环境中非常有效。</p>
<p >4.低功耗设计:SGP30传感器采用低功耗设计,能够在节能模式下工作,减少能源消耗。这对于需要长时间运行的应用非常重要。</p>
<p >5.长寿命:SGP30传感器具有长寿命,能够在持续使用的情况下保持稳定的性能。这使得它在长期监测和控制应用中非常可靠。</p>
<p >6.简单集成:SGP30传感器具有简单的接口和通信协议,易于与其他设备和系统集成。它支持标准的I2C接口,可以方便地与微控制器和其他电子设备连接。</p>
<p > </p>
<p ><b>典型应用:</b></p>
<p > </p>
<p >1.室内空气质量监测:SGP30可以监测室内空气中的VOC和CO2浓度,帮助人们了解室内空气的质量,并采取相应的措施来改善室内环境。</p>
<p >2.智能家居系统:SGP30可以集成到智能家居系统中,通过监测室内空气质量,自动调节通风系统、空气净化器等设备,以提供更舒适和健康的居住环境。</p>
<p >3.室内空气净化器:SGP30可以与空气净化器结合使用,根据监测到的VOC和CO2浓度,自动调节净化器的工作模式和风速,以提高净化效果。</p>
<p >4.呼吸器健康监测:SGP30可以用于监测呼吸器设备中的CO2浓度,帮助人们了解呼吸器的工作状态和效果并及时采取措施进行调整。</p>
<p >5.室内空气质量报警系统:SGP30可以与报警系统结合使用,当监测到室内空气中的VOC或CO2浓度超过安全范围时,系统会发出警报,提醒人们采取相应的措施。</p>
<p > </p>
<p ><b>SC20100S FEZ-ARM® Cortex®-M7 MPU</b><b>评估板 </b></p>
<p >这款开发板采用了STM32H743VIT6作为主芯片,该系列产品集成了工作频率高达480 MHz的Arm<sup>®</sup> Cortex<sup>®</sup>-M7内核(具有双精度浮点单元)。与 STM32F7 产品线相比,其动态功耗效率提升了两倍(运行模式下)。在 400 MHz 的 CPU主频 下,从 Flash 执行程序时,STM32H750 超值系列能够实现 2020 CoreMark/856 DMIPS 的性能,利用其 L1 缓存实现了零等待执行。DSP 指令集和双精度 FPU 扩大了其应用范围。得益于 L1 缓存(16 KB + 16 KB 的指令缓存和数据缓存),即使使用外部存储器也不会带来性能损失。</p>
<p >可以看到,该开发板性能足够强大,1M的RAM,2M的FLASH空间,且GPIO引出也足够使用,此外还附带了一个WIFI模块,非常适合后期扩展功能。STM32H743/753 系列产品线拥有 Cortex-M7 内核(带双精度浮点单元)性能,运行频率高达 480 MHz。与 STM32F7 产品线相比,其动态功耗</p>
<p > </p>
<p ><b>BH1750</b><b>光照传感器模块</b></p>
<p > </p>
<p ><b>1</b><b>、简介</b></p>
<p ><b> BH1750</b><b>是一种用于两线式串行总线接口的数字型光强度传感器集成电路。这种集成电路可以根据收集的光线强度数据来调整液晶或者键盘背景灯的亮度。利用它的高分辨率可以探测较大范围的光强度变化。BH1750的内部由光敏二极管、运算放大器、ADC采集、晶振等组成。对应广泛的输入光范围(相当于1-65535lx),最小误差变动在土20%,而且受红外线影响很小。</b></p>
<p > </p>
<p ><b>2.</b><b>工作原理</b></p>
<p > </p>
<p ><b>BH1750</b><b>的内部由光敏二极管、运算放大器、ADC采集、晶振等组成。PD二极管通过光生伏特效应将输入光信号转换成电信号,经运算放大电路放大后,由ADC采集电压,然后通过逻辑电路转换成16位二进制数存储在内部的寄存器中(光照越强,光电流越大,电压就越大)。</b></p>
<p > </p>
<p ><b>3.</b><b>产品特点</b></p>
<p > </p>
<p ><b>></b><b>支持I2CBUS接口</b></p>
<p ><b>></b><b>接近视觉灵敏度的光谱灵敏度特性</b></p>
<p ><b>></b><b>输出对应亮度的数字值</b></p>
<p ><b>></b><b>对应广泛的输入光范围。(相当于1-65535lx)</b></p>
<p ><b>></b><b>通过降低功率功能,实现低电流化。</b></p>
<p ><b>></b><b>通过50Hz/60Hz除光噪音功能实现稳定的测定。</b></p>
<p ><b>></b><b>支持1.8v逻辑输入接口。</b></p>
<p ><b>></b><b>无需其他外部件。</b></p>
<p ><b>></b><b>光源依赖性弱。</b></p>
<p ><b>></b><b>有两种可选的I2Cslave地址。</b></p>
<p ><b>></b><b>可调的测量结果影响较大的因素为光入口大小。</b></p>
<p ><b>></b><b>使用这种功能计算1.1lx到100000lx马克斯/分钟的范围。</b></p>
<p ><b>></b><b>最小误差变动在±20%。</b></p>
<p ><b>></b><b>受红外线影响很小。</b></p>
<p > </p>
<p > </p>
<p ><b>DS3231</b><b>实时时钟模块</b></p>
<p > </p>
<p ><b>DS3231</b><b>是低成本、高精度I2C实时时钟(RTC),具有集成的温补晶振(TCXO)和晶体。该器件包含电池输入端,断开主电源时仍可保持的计时。集成晶振提高了器件的长期度,并减少了生产线的元件数量。DS3231提供商用级和工业级温度范围,采用16引脚300mil的SO封装。RTC保存秒、分、时、星期、日期、月和年信息。少于31天的月份,将自动调整月末的日期,包括闰年的修正。时钟的工作格式可以是24小时或带/AM/PM指示的12小时格式。提供两个可设置的日历闹钟和一个可设置的方波输出。地址与数据通过I2C双向总线串行传输。精密的、经过温度补偿的电压基准和比较器电路用来监视VCC状态,检测电源故障,提供复位输出,并在必要时自动切换到备份电源。另外,/RST监视引脚可以作为产生μP复位的手动输入。</b></p>
<p > </p>
<p > </p>
<p ><b>五.硬件实物连接图</b></p>
<p ><b> </b>由于在选型时没做好功课,光奔着M7去了,结果到手后发现该板子和我好像有点水土不服,在去官方页面一番了解后。发现这个评估板,又自己一套独特的玩法,查看原理图后,发现其JTAG引脚啥的都没有引出来。本身自己作为硬件出身的,我也懒得研究他们的一套打法了,干脆一不做二不休,就着芯片自己画个板子得了。</p>
<p > </p>
<p >如图所示,当然我不是说这个TinyCLROS不好,因为要去啃一大堆文档啥的,然后还要去费心劳神的琢磨,还是用STM32CubeMX香,回头慢慢研究他们的系统也是可以的</p>
<p > </p>
<p >于是乎花了一天时间,自己画了个板子,这样用起来更舒服,顺道感谢下嘉立创,一个月2款免费的板子,可以打样,连快递费都包了。</p>
<p > </p>
<p > </p>
<p > </p>
<p >花了两天时间,板子就打回来,就下来就是移花接木,焊接原件了。</p>
<p > </p>
<p > </p>
<p > </p>
<p > </p>
<p > </p>
<p >连接好STLINK,打开STVP,来个全片擦除试一试,连接板子成功,一切正常,接下来就可以愉快的码代码了。为了方便调试和读数,我连接了一个SPI接口的128x64x显示屏。</p>
<p > </p>
<p>然而经过采用连接模块测试后,我发现了一个非常悲催的问题就是,BME680的IAQ库好像对Keil很不友好,通过网络查询,好像是说博世的IAQ不支持Keil环境下开发使用,如果不能使用IAQ算法库,这个BME680就算是浪费材料了。然后博世的SDK包我下载后发现其ESP8266可以直很好的使用,官方的例程包中就直接是支持ESP8266的。</p>
<p> </p>
<p>正好手头有ESP8266 NODEMCU的板子,经过考虑,干脆采用ESP8266做传感器集合进行数据采集,通过Blynk手机端APP做远端控制和手机显示各项数据,然后串口发送数据到H743做更进一步处理也不是未尝不可。经过一番忙碌,又找了BH1750和DS321 RTC模块,来了一个大杂烩,下图是搭建起来的效果,I2C复用,经过测试完全OK。</p>
<p> </p>
<p> </p>
<p> </p>
<p>硬件搭建完毕,那么说一下接下来就是进行代码编写和硬件调试。</p>
<p>采用ESP8266(Node MCU ),搭配BME680传感器并使用Bosch BSEC空气质量算法库来获取温湿度、气压以及空气质量信息IAQ,通过SGP30传感器获取TVOC CO2数据,使用BH1750获得室内光照度信息,ESP8266通过WIFI连接后,发送数据到服务器端,然后通过手机端的APP Blynk显示传感器数据。</p>
<p>简单来说,Blynk 就是一个与硬件无关的IOT物联网平台,使用起来简单便捷,仅需通过简单的拖拽组件即可创建漂亮的 APP 界面,再加上少量代码就能够完成一个物联网项目的开发,可谓是最简单的物联网平台之一。</p>
<p>因为篇幅原因,这里不对Blynk其做过多概述,需要详细了解的可以自行网络查询。</p>
<p>需要着重说明的是,这里我没有采用官网的网址,由于某些原因,官网经常出现连接不了和打不开网页的现象,所以我的手机端APP,和ESP8266上传的数据端采用网友免费提供的Blynk服务器,感谢这个无私的网友。</p>
<p> </p>
<p ><b>六.部分DEMO代码测试 演示效果</b></p>
<p >在Arduino开发环境下,ESP8266开发非常友好和方便,各种传感器的库也是非常齐全,添加之后就可以直接使用,非常方便。全部模块经过测试,均可以正常工作,各项数据都能正常输出,见下图,顺便手机端的APP也一起</p>
<p >制作完成。经过测试,达到预期的效果,即使不通过H743进行更一步处理,也依旧可以组成一个完整的采集,显示,控制系统。</p>
<p >初始化各传感器模块</p>
<p align="left" >/***************************************************************************</p>
<p align="left" > Initialize RTC DS3231 </p>
<p align="left" > */</p>
<p align="left" > //Initialize RTC DS3231</p>
<p align="left" > rtc.begin();</p>
<p align="left" > delay(1000);</p>
<p align="left" > /****************************************************************************</p>
<p align="left" > Initialize BH1750 sensor </p>
<p align="left" > */</p>
<p align="left" > Wire.begin();</p>
<p align="left" > lightMeter.begin();</p>
<p align="left" > delay(1000);</p>
<p align="left" > /****************************************************************************</p>
<p align="left" > Initialize SGP30 sensor </p>
<p align="left" > */</p>
<p align="left" > Serial.print("BEGIN:\t");</p>
<p align="left" > Serial.println(SGP.begin());</p>
<p align="left" > Serial.print("TEST:\t");</p>
<p align="left" > Serial.println(SGP.measureTest());</p>
<p align="left" > Serial.print("FSET:\t");</p>
<p align="left" > Serial.println(SGP.getFeatureSet(), HEX);</p>
<p align="left" > SGP.GenericReset();</p>
<p align="left" > </p>
<p align="left" > Serial.print("DEVID:\t");</p>
<p align="left" > SGP.getID();</p>
<p align="left" > for (int i = 0; i < 6; i++) {</p>
<p align="left" > // ÏD looks like: 00.00.01.9B.57.23</p>
<p align="left" > if (SGP._id < 0x10) Serial.print(0);</p>
<p align="left" > Serial.print(SGP._id, HEX);</p>
<p align="left" > }</p>
<p align="left" > Serial.println();</p>
<p align="left" > /***************************************************************************</p>
<p align="left" > 初始化bme680 </p>
<p align="left" > */</p>
<p align="left" > iaqSensor.begin(0x77, Wire);</p>
<p align="left" > output = "\nBSEC library version " + String(iaqSensor.version.major) + "." + String(iaqSensor.version.minor) + "." + String(iaqSensor.version.major_bugfix) + "." + String(iaqSensor.version.minor_bugfix);</p>
<p align="left" > Serial.println(output);</p>
<p align="left" > checkIaqSensorStatus();</p>
<p align="left" > </p>
<p align="left" > bsec_virtual_sensor_t sensorList = {</p>
<p align="left" > BSEC_OUTPUT_IAQ,</p>
<p align="left" > BSEC_OUTPUT_STATIC_IAQ,</p>
<p align="left" > BSEC_OUTPUT_CO2_EQUIVALENT,</p>
<p align="left" > BSEC_OUTPUT_BREATH_VOC_EQUIVALENT,</p>
<p align="left" > BSEC_OUTPUT_RAW_TEMPERATURE,</p>
<p align="left" > BSEC_OUTPUT_RAW_PRESSURE,</p>
<p align="left" > BSEC_OUTPUT_RAW_HUMIDITY,</p>
<p align="left" > BSEC_OUTPUT_RAW_GAS,</p>
<p align="left" > BSEC_OUTPUT_STABILIZATION_STATUS,</p>
<p align="left" > BSEC_OUTPUT_RUN_IN_STATUS,</p>
<p align="left" > BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE,</p>
<p align="left" > BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY,</p>
<p align="left" > BSEC_OUTPUT_GAS_PERCENTAGE</p>
<p align="left" > };</p>
<p align="left" > </p>
<p align="left" > iaqSensor.updateSubscription(sensorList, 13, BSEC_SAMPLE_RATE_LP);</p>
<p align="left" > checkIaqSensorStatus();</p>
<p align="left" > </p>
<p align="left" > // Print the header</p>
<p align="left" > //output = "Timestamp , IAQ, IAQ accuracy, Static IAQ, CO2 equivalent, breath VOC equivalent, raw temp[°C], pressure , raw relative humidity [%], gas , Stab Status, run in status, comp temp[°C], comp humidity [%], gas percentage";</p>
<p align="left" > Serial.println(output);</p>
<p ><b>程序编译上传后,通过串口进行打印,各项输出数据正常</b></p>
<p > </p>
<p > </p>
<p >下面,加入继电器模块,通过APP控制ESP8266对应的GPIO引脚输出高低电平,来控制相应的继电器吸合和释放,达到控制外部设备的目的。这里我设置了四路输出,分别实现四路功能的开关功能。</p>
<p align="left" > /***********************************************************************</p>
<p align="left" >设置SPI引脚为普通GPIO模式,给继电器提供驱动信号输出。</p>
<p align="left" >*/</p>
<p align="left" > pinMode(D5, OUTPUT); //设置GPIO14为 风扇控制继电器</p>
<p align="left" > pinMode(D6, OUTPUT); //设置GPIO12为 负离子控制继电器</p>
<p align="left" > pinMode(D7, OUTPUT); //设置GPIO13为 灯光控制继电器</p>
<p align="left" > pinMode(D8, OUTPUT); //设置GPIO15为 音乐控制继电器</p>
<p > </p>
<p >手机APP的显示控制,达到预期效果</p>
<p > </p>
<p ><b>八.整体测试视频</b></p>
<p >见附件</p>
<p > </p>
<p ><b>九.文档.源码.原理图.PCB文件</b></p>
<p ></p>
<p > H743开发板文件</p>
<p >ESP8266 Arduino 源代码</p>
<p ></p>
<p > </p>
<p > </p>
<p > </p>
<p>你这模块用的是最多的,怎么没有选择个带屏的开发板啊,还可以显示多好啊</p>
秦天qintian0303 发表于 2024-10-22 09:12
你这模块用的是最多的,怎么没有选择个带屏的开发板啊,还可以显示多好啊
<p>没有仔细了解模块的PDF,计划不如变化,现在看来当初选择ESPP32带屏的主控板是最合适的,没有想到博世的IAQ库不能用Keil</p>
页:
[1]