快捷搜索:  汽车  科技

自制arduino空气检测器(大神手工DIY了一个空气检测仪)

自制arduino空气检测器(大神手工DIY了一个空气检测仪)NodeMcu洞洞板新手、入门、高手快速自检:一、准备材料1、硬件材料

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(1)

右边的鸣人是后P上去的,平时可以放个便签、照片什么的。

想做这个东西,其实已经有段时间了,零件早就买了,然后,因为各种原因,一直吃灰中。这次做出来,实在是因为最近时间比较充裕,闲的无聊。这个空气检测仪可以说是堆料,有什么用什么,最后就成这个样子了,当然,你也可以根据自己的想法更改零件的摆放位置、删减功能。

这个检测仪是基于 EspEasy固件的,主要功能是检测 CO2和 PM2.5,同时还可以检测温度,湿度,气压,光照,但是由于甲醛传感器的结果受各种条件影响较大,没有加入。

EspEasy是一款免费的开源物联网 MCU固件,最初由 letscontroit. com社区(原名 esp8266. nu社区)开发。它运行在基于 ESP8266的硬件平台上 “EspEasy”是指固件 而不是硬件。它提供了一个非常简单的操作系统,用户只需连接传感器,便可以通过 Web页面读取和控制,而无需编写任何代码,并且可以通过 ota更新固件。 刷入 EspEasy固件的设备可以轻松接入智能家庭系统,通过 Web页面配置完成以后,基于 ESP8266的硬件便可以成为无线传感器,或者控制设备。

本着零基础,少折腾的原则,选件以简单粗暴、方便实用为主,尽量少留选择的余地,防止给新手挖坑。如果是新手,最好按推荐的型号买,可以无脑接线。入门级别的,可以按 EspEasy官方支持传感器型号来选件,更多的可以参考官方的插件列表。高手请直接关闭,全文无技术含量。


新手、入门、高手快速自检:

  • 新手:一看到上面的图就蒙了;
  • 入门:用过 EspEasy,了解它的插件;
  • 高手:对 EspEasy十分了解(由于是基于 EspEasy完成的,所以这里的高手就这样定义了);

一、准备材料

1、硬件材料

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(2)

洞洞板

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(3)

NodeMcu

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(4)

WeMos D1 mini

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(5)

SD1306主控,I2C接口 OLED

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(6)

SenseAir S8 CO2传感器

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(7)

Plantower PMS 7003 粉尘传感器

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(8)

BH1750 3.3V光线传感器

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(9)

BME280 3.3V温湿度压力传感器

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(10)

WS2812 RGB LED

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(11)

有啥用啥的原则

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(12)

杜邦线

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(13)

按钮开关,有啥样的用啥样的

  • 洞洞板(尽量厚点,防止变形,选配。)
  • NodeMcu(或者 WeMos D1 mini也行,这里是 EspEasy的官方硬件支持列表,有基础的可以随意,没基础的,最好跟着脚印走。)
  • OLED显示屏(驱动芯片 SD1306或者 SH1106,分辨率最好128X64,I2C接口,颜色根据个人喜好,选配。)
  • SenseAir S8 CO2传感器(根据个人需要选配)
  • Plantower PMS X003(“X”代表数字,我这用的是7003,根据个人需要选配。)
  • BH1750 3.3V光线传感器(选配)
  • BME280 3.3V温湿度压力传感器(选配)
  • WS2812 RGB LED(我用的是1颗灯珠的,选配)
  • LED三个(根据个人喜好,最好不要用透明高亮的,选配)
  • 母头杜邦线(如果用烙铁可以选配,否则必备)
  • 按钮开关(可以从旧鼠标上拆)
  • 电阻四个(可有可无)
  • 漆包线(可有可无)

2、工具

  • 偏口钳
  • 电烙铁(可选,但是,最好有)
  • 焊锡丝(如果用烙铁,必备)
  • 热熔胶及胶枪(根据个人需要,可能会用到,不必须)

3、软件

  • 串口驱动 (CP2102或CH340,如果其他型号,可以向买家要或自己搜)
  • EspEasy(可以去官网下载,也可以用我编译的版本,应该是基于11月底的版本,去掉了一些这里没用的插件。文章末尾有下载连接。)
  • 图片取模软件(用于自己编译固件,修改 OLED的启动画面。)

二、软件设置

所用到的软件会在文章最下方提供下载

1、刷写 EspEasy固件

刷写 EspEasy固件非常方便,首先先确定串口芯片型号,安装对应驱动,一般常见的就是 CP2102和 CH340,如果不是,可以向商家索取或者百度搜索,我的下载包里提供了 CP2102和 CH340的驱动。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(14)

↑最简单的区分方法就是看芯片形状,最准确的就是看芯片上的字

安装完驱动以后,重新插拔下设备,就可以在设备管理器里看到新的串口设备了,记住串口号。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(15)

查看方法:桌面→我的电脑→右键属性→设备管理器→端口

在下载的文件夹中打开 EspEasy文件夹,找到里面的 FlashESP8266.exe双击打开。打开软件后,选择对应的串口,Firmware选择 GeekAir4096.bin,然后点击 Flash,会弹出一个 CMD窗口,显示刷写进度,刷完以后,重新插拔一下,重启 Esp。

文件夹里面的三个 blank文件是用来清空 flash的,尤其是当 EspEasy设置登录密码,而又忘记的时候,用于初始化还原(建议刷固件之前先用 blank清空一下)。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(16)

还是习惯老版的工具

2、设置 EspEasy

刷完重启以后,就可以搜索 SSID了,手机或电脑都行,搜索 WIFI,找到 Geek_Air_0,链接,密码 configesp,如果链接后没有自动弹出设置页面,就手动访问 192.168.4.1,设备的 IP地址需要是自动获取的,如果不是,先更改自动获取,再链接 Esp。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(17)

链接成功后,会看到 Esp的登录地址

保证访问设备和 ESP在同一个路由下,并且可以访问,使用前面得到的 IP地址,登录 Esp,我编译的固件已经打开了 Rules,NTP,时区也设置好了,并且关闭了串口,如果是官方版本,可以手动修改。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(18)

参考配置

如果网络中存在 MQTT Broker,可以在 Controllers中添加 Broker信息。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(19)

参考配置,我用的是 HomeAssistant平台

打开 EspEasy文件夹下的 rules1.txt和 rules2.txt,分别复制、粘贴到 EspEasy的 rules Set1、Set2里面,别忘提交保存。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(20)

文章末尾会有相关设置说明

3、添加设备

为了可以少动脑子,坑越少越好,建议无脑添加,名字不能改,如果哪个传感器没有,可以空过去,前面的编号一定不要变,比如1、2、3、6、7、8,如果有基础,可以自己更改名字和顺序,但是同时需要对应的修改 Rules。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(21)

IO口用全了

下面是插件的设置界面

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(22)

SenseAir S8 二氧化碳传感器

如果没有 Controller,可以不用勾选“Sent to Controller”选项,“Interval”可以自己设定,下同。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(23)

BME280 温度、湿度、压力传感器,offset可以根据自己的实际情况调整。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(24)

BH1750 光线传感器

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(25)

SD1306 OLED屏幕,主要设置说明,见文章结尾

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(26)

PLANTOWER PMS7003 粉尘传感器

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(27)

按键

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(28)

虚拟设备,用来记录设备状态

三、硬件连接

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(29)

接口对应表

  • OLED显示屏----[VCC→3.3V,GND→GND,SCL→GPIO5,SDA→GPIO4]

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(30)

CO2传感器背面为进气口,不可阻挡

  • SenseAir S8 CO2传感器----[G →Vin,G0→GND,UART_RxD→GPIO12,UART_TxD→GPIO13]

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(31)

PMS 7003转接板

  • Plantower PMS 7003----[VCC→Vin,GND→GND,RX→GPIO12,TX→GPIO13]
  • BH1750 3.3V光线传感器----[VCC→3.3V,GND→GND,SCL→GPIO5,SDA→GPIO4]
  • BME280 3.3V温湿度压力传感器----[VCC→3.3V,GND→GND,SCL→GPIO5,SDA→GPIO4]

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(32)

接3.3V,千万别直接接5V

  • WS2812 RGB LED----[DI→GPIO14,5V→3.3V,GND→GND]
  • LED三个----[红长脚→GPIO1,黄长脚→GPIO16,绿长脚→GPIO15,三短脚→GND]
  • 按钮开关----[按下接通的两脚,一脚GND,一脚GPIO3]

粗体字为 NodeMcu接口,电阻可以串入 led,或者直接做装饰用,不接入电路,可以直接在老旧电器上找,如果想接入电路,直接串入 led看亮度合适就行,不用去管阻值。漆包线是用来代替导线,主要也是装饰用,也可以用来制作检测仪的支架。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(33)

如果用焊接的方式,接线会比较方便,焊完之后,用偏口钳把长出来的引脚简短。但是如果想用杜邦线直接插,可能会麻烦点,需要剥线,最好是相同功能针脚用相同颜色,这样接线的时候不容易接错。如果使用洞洞板,还用杜邦线直插的话,由于洞洞板的厚度,可能会插得不实,需要用偏口钳子把前面的塑料剪掉一点。

四、外观设计

上面有了软件的设置方法,也有了硬件的接线方法,这个空气检测仪就可以工作了,这一步要做的就是您想要它是什么样子了。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(34)

可以类似于这样,随便放个地方就行

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(35)

也可以像积木一样,放在洞洞板上

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(36)

或者用积木拼个底座

S8的进气口在背面,一定要留出空间,由于它的外壳是透明的,我就把 RGBLed放在它旁边,根据空气质量不同,显示不同颜色。

粉尘传感器的进气出气口也不能阻挡,尽量通风顺畅,有助于结果的准确性。

外观自己喜欢什么风格,可以随意发挥,像这样裸奔,或者淘个漂亮点的 CPU粘上做装饰,一个极客风的检测仪;或者用亚克力板和细漆包线 DIY一个透明的“洞洞板”,板上再雕刻个名字啥的,侧面加个 LED,做个科幻风格的;或者 3D打印个外壳;或者把任务交给孩子,用积木拼个外壳,总之一共就这些东西,您想怎么放置都行,但是注意通风。也可以把这个检测仪做成分体的,屏幕分离出来,通过 MQTT接收数据,传感器放到需要用的地方,随意发挥。

五、功能设计

1、基本功能

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(37)

开机

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(38)

手动点亮屏幕

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(39)

手动关灯,板载 LED不包括在内

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(40)

手动开灯

OLED用来显示基本的信息,可以自动息屏。红色 LED是 WiFi指示灯,当 WiFi断开的时候,红灯闪烁。黄色 LED是 MQTT指示灯,断开的时候,黄灯闪烁,绿色是模式切换指示灯,长按按钮,绿灯连续闪烁3次,长按事件触发。按钮短按时,点亮熄灭的 OLED屏幕,长按时,用于开关 LED灯。由于没有多余的可用端口,板载 LED在系统运行时会亮,就当个电源灯用吧,如果实在觉得碍眼,用烙铁卸了它,或者,偏口钳剪碎,再清理干净。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(41)

根据空气质量不同,显示不同的颜色

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(42)

OLED的启动画面

如果会自己编译的话,可以修改 OLED的启动画面,文件路径为 libesp8266-oled-ssd1306OLED_SSD1306_SH1106_images.h

2、代码修改

这里主要是对 Rules文件做些说明,方便自己修改配置参数。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(43)

Rules1里面的部分代码

说明:

  1. 红色有下划线标记的数值可以根据自己需求修改。
  2. 屏幕显示时间只能在这里修改,不可以在插件里修改 Timeout,插件的自动息屏不会更改虚拟设备里的 OLED状态。
  3. 如果没有 MQTT需求,可按图中修改代码,删除黄色高亮代码,添加红色高亮代码。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(44)

Rules2里面的代码

说明:

  1. 红色下划线为空气质量阈值,可根据自己感受更改区间。
  2. 黄色高亮代码为不同空气质量区间 RGBLed的颜色值,可根据个人喜好更改。
  3. 绿色下划线为光照阈值
  4. 红色高亮代码为不同亮度区间,RGBLed的亮度,可按需要更改。
  5. 蓝色下划线为定时重启时间,如果不需要重启,可将蓝色高亮代码删除。

自制arduino空气检测器(大神手工DIY了一个空气检测仪)(45)

OLED设置界面

说明:

可根据自己需求修改,这里是官方的数值调用说明及特殊字符,这里是可调用的系统变量。

六、结语

做这个空气检测仪还是很容易的,建议没有排错能力的新手,完全按照脚印走,防止掉坑;稍微有点基础的,就可以按这个思路随意发挥了;如果是高手,应该看不到这里,前面第一段看完就已经关闭了,最后,欢迎交流,不喜勿喷。

猜您喜欢: