有一次,我坐在工作场所并感到呼吸不舒服,我决定组装一个二氧化碳测量仪。
在研究了有关该主题的几篇文章之后,他制定了该设备的要求。
- 该设备必须带有屏幕,因为它必须是便携式设备。
- 出于相同的原因,该设备不应依赖Internet。
- 设备必须能够随时间记录值,以便随时查看。 这意味着他必须拥有自己的Web服务器和自己的Wi-Fi点。
最后一项含糊不清地导致了设备将在ESP上的输入。 由于我不需要高性能,因此我选择了最便宜的选项-ESP8266,07。 在家里,只有1 mb内存的副本在附近。
我为速卖通订购了缺少的备件,它们是:
- Oled显示器96x64 SSD1331。
- MH-Z19B CO2传感器。
- DS1307 RTC模块。
收到详细信息后,他开始使用KiCad开发电路。
我必须马上说-所有资源都将在本文的结尾,并且按照计划进行组装,上传固件之后,他们应该得到一个可以正常使用的设备。
该方案如下所示:

我决定使这些模块可移动,因此电路上没有模块,只有它们的连接器。
我把板子摊开了:

在制造完印刷电路板并进行焊接之后,出现了以下情况:


在组装和工作中,它看起来像这样:

现在介绍软件部分。
由于我不是程序员,所以代码是用Arduine IDE编写的,并且我不想理解Visual Studio或其他任何地方的库。
原则上,我从库示例和Internet使用了设备中模块的代码,因此不再赘述。 谁想-轻松理解草图。
但是事实证明,要实现按时查看和显示统计信息并不是那么简单。
我想要这样:从手机或笔记本电脑,通过HTML浏览器连接到设备尽可能容易,然后转到数据页面并以时间表的形式查看。
首先,在ESP上,创建一个没有密码和身份验证的访问点。
第二个-创建了一个数据数组,在其中写入CO2数据和数据采集时间(为此,实际上,我在设备中设置了时钟。
第三,我设置一个HTTP服务器和几个HTML页面,在其中一个页面上输出数据。
第四-用于在页面上绘制图形的Java脚本已写入ESP文件系统。
由于仅在Java脚本的帮助下才能输出图形,因此,经过长时间的实验,第四项的实现是这样的:将最简单的Chart.js脚本作为文件写入到SPIFFS ESP文件系统中,该脚本要求显示结果的页面。
通常,每10 -15秒打开一次设备,在显示屏上会显示新的传感器读数,每8分钟将当前传感器读数记录在数据阵列中。
一段时间后,要及时分析读数,您可以通过手机或笔记本电脑连接到Wi-Fi点“ CO2”,连接后启动Internet浏览器并在搜索栏中输入IP地址“ 10.10.10.1”。 您到达页面:

有一个按钮可以转到数据查看页面,而有一个按钮可以转到时间设置页面(因为有时会浪费时间,而在更换电池时会丢失时间)。
数据输出页面如下所示:
在此处存档源。存档中包含一个草图,Java Script,Kicad项目以及Photoshop格式的打印件,分辨率为600dpi,以防您不喜欢Kicad。
在Internet上可以轻松找到如何配置Adruino ide的ESP固件以及如何将文件上传到SPIFS。
对于ESP固件,您将需要断开CO2传感器的连接,因为它挂在固件所需的TX0和RX0上。 另外,我在数据线板上签名了相反的字样,以便将TX从闪光灯连接到板上的TX等。