在这里,他们经常谈论mh-z19传感器和esp8266,也没有忘记提及mqtt协议。
我阅读了所有这些内容,并决定将读取的内容合并到一个设备中。 实际上在图片中就是这样。
简介(跳过)
我已经在Habré注册了很长时间,并且阅读了更多的书,但是我并不特别活跃,但是我必须说,我在这里学到了很多新的有用的知识。 而且,这种想法时不时地绕着我,不仅需要使用,而且还需要给予一些东西和分享。 我无法提供任何新内容,但我完成了我的项目,对我来说,这足以使他出版。
功能/固件
整个项目基于esp8266构建,因此可以与Internet良好通信。
mqtt协议用于数据
传输 。 老实说,我并没有真正深入研究协议设备,但事实证明这很方便,我在家里使用
mosca代理进行测试,现在我使用
cloudmqtt他们有免费的选择,真是太简单了。
现在,您可以转到功能本身。
当我打开灯泡时,它会查看是否已经保存了设置;如果没有,则会打开名称为“ CO2.box”的wifi,在地址“ 192.168.4.1”处显示设置页面:
实际上,灯泡可以在两种模式下工作:
1.连接到mqtt代理,发送数据并通过LED显示二氧化碳的含量。
2.仅显示房间中CO2的LED含量。
LED可以将其颜色从绿色更改为红色,理论上是RGB,但我没有将其与蓝色连接,因此只有LED RG。 如果co2的含量为400 ppm(Webgui中的PPM Min),则该灯以绿色闪烁,并且当浓度增加时,当达到最大值时颜色变为红色(Webgui中的PPM Max),它开始闪烁红色。
重置显示在单独的按钮上,它也显示为另一个按钮,如果按住该按钮超过一秒钟,则重置设置。
按钮代码按钮初始化(GPIO0)
检查按钮已按下多少并重置
对于
mqtt ,支持通过登录/传递进行用户身份验证。 您可以确保数据通过https发送,但是为此您需要在固件中嵌入证书,这与概念不符-我希望所有设置都可以通过webgui完成。
问题
我想在esp8266上运行DNS服务器,以便它始终返回其地址,而不必输入IP地址。 不幸的是,在我的esp8266 sdk版本中,我遇到了一个错误,即它无法正确创建以太网数据包,并且校验和不在此处收敛,并且客户端响应被忽略。 我通过wireshark看到了该错误,并且在espressif论坛上也描述了类似的错误。 所以我离开了这个主意。

固件通常还不错,但是例如,我仍然没有找到/弄清楚如何正确关闭tcp连接,因此当我从浏览器发送数据时,它(浏览器)正在等待某些东西而不关闭连接。
总的来说,我认为代码的质量不是很高(或相当糟糕),这是因为这是我的第二个项目(第一个项目是一个
Clock ),以及SDK不太清楚的事实通常,文档并没有多大帮助,因此不得不寻找示例。
例如,我想将Flash记录放到一个单独的文件中,但是此后设置停止写入Flash。 我从来没有找到原因。
铁面
然后,我尝试使用最少的组件开始工作,看起来效果很好。 首先,我想使用esp8266的第一个版本,我在Internet上发现了
一种仅用一个引脚管理移位寄存器的
方法 。 一切都在蛋白质中起作用,但不能存活。 我认为我的问题是找不到合适的电容器。
我使用了ESP8266 12e,因为它具有4mb的内存和七个可以使用的管脚。 在项目开始到结束时,我想使用四个额外的七段显示器,这些显示器通过四个移位寄存器
74hc595连接在一起,但是后来,当我开始放置电路板时,对我来说似乎有点麻烦和多余。 通常,我删除了它们,但是在提交中,仍然有屏幕所在的代码。 因此,如果有人需要它,那么您可以在其中做对。
我还希望所有这些都可以通过USB,直接从计算机USB或通过电源(例如电话)来工作。 我从旧的诺基亚(n900)那里获取了电源,它发出了1A的电流,这对于眼睛来说已经足够了,但是有必要将esp8266的电压降低到3.3v。
为此,我使用了asm1117,第一个问题在等待我,由于某种原因,它只给出了3c,esp8266不能正常工作,但是它不稳定,工作时会出现非常奇怪的错误。
例如,他esp8266无法将数据写入闪存,只是重新启动,这花了我一段时间,直到我意识到错误的来源,我差点跳了铃鼓。
Asm1117本身产生了所需的3.3-3.5v,但在esp8266上仅为2.8-3.1v。 原则上,我真的没有解决问题,我怀疑问题(电压)落在电线上。 然后,我重新进行如下图所示的操作,一切开始稳定运行。
二氧化碳传感器也只需要5v,顺便说一句,我能够以3.3v获得它。 但是存在一些问题,他在一小时内某个地方将其值提高到了2000ppm,但是如果他只是关闭然后再打开,则值会立即下降。
如果突然无法正常工作,则将日志输出连接到GPIO2。 通过uart,与CO2传感器的通讯是标准的。
好吧,似乎没有什么特别复杂的事情。 从上图中的电路中,我展开了电路板。 我已经有经验,在此之前我接受过手表方面的培训,那里的一切都有些复杂。 总的来说,结果是这样的:
不幸的是,我这里有一个错误(用红色标记),直到最后我才注意到。 CO2传感器的接地端与此引脚相连,但该接地端未与其余引脚相连,并且这种形式的传感器无法正常工作,我不得不在那个地方连接一个电桥。
发光,扭曲,钻孔,锯
从上面的图片中,您可以看到一切都是通过战利品完成的。 我将这种方法与柠檬酸一起使用,我在
无线电猫上读到它。 他们写道,获得了最好的反应。
实际上,我使用的一套战利品工具都在右侧的绿色框中显示。
稀释溶液后,将容器放入温水槽中,水温不得超过40-45度。
原则上结果还不错,很遗憾,我只有第一版的照片,但是有错误。
USB出现问题,我决定使用Micro USB减小它,我有几块,但我不知道如何安装它们。 看起来像这样:
如您所见,没有任何东西可以将其固定到板上,您只能焊接两个侧面的凸起,就像我做的那样。 事实证明该安装座非常弱,即使在测试时一切都失败了。
然后我订购了已经连接了微型USB的小板。 像这样:
我把所有这些都搞砸了-这是一个很好的解决方案,它仍然有效。
最后看起来像这样
房屋
在家庭工艺品中,要整洁美观地完成所有工作通常是一个大问题。 当我开始该项目时,我仍然没有3D打印机,但是从一开始我就想打印外壳。 以为可以在某个地方订购。 在寻找在哪里打印机箱的时候,我认为最好自己购买一台3D打印机。 原则上,没有特殊要求,主要是它可以正常打印并且成本不高。 他停在Anet A8。 尽管打印了很长时间,但它的打印效果出奇地好。
然后,我创建了一个案例的3D模型,我仅将第三个选项视为成功。

这些是我为此制作的3D模型。 身体内部放有一种配重材料,作为从上方到球体的配重,因此,身体变得有些高。
在一起,看起来像这样:

照片封面。 她几乎必须被锤击入案子。 需要在顶部有两个小孔,以便您可以按按钮。 解决方案不是很成功,您需要细而长的东西,还需要通过触摸找到内部的按钮。 原则上,我发现它没有问题,但是对于未经培训的人来说将是困难的。
因此,我将RGB LED保持在顶部的球中:
结论
起初我什至都不知道该写什么书。 我想也许我可以列出一些问题,其中有很多。
实际上,该项目更多地用于培训。 去年夏天某个时候,当我刚开始做它时,在我看来,它像是一种有用的设备,并且对设计有一些自夸,总的来说它本来应该很漂亮。 但是现在,当我这样做时,结果似乎不大但不是很必要,尽管看上去什么都没有(我的妻子喜欢),但现在它正站在拐角处(关闭)。
我在12月初某个地方完成了固件,并且已经从编写的所有内容中忘了很多东西,因此在培训方面也存在争议。
现在我不会那样做了,我会附上一个小东西,例如一个海上灯塔,而不是一个球。
整个项目位于
github上 。 有一块离婚的木板和代码,以及3D模型(如果有人想全部打印)。 顺便说一下,这些管的尺寸为M10x20mm。
PS:关于我个人的几点:
这是我的第一篇文章,也许我在这里重新读了很多,但还是要同情。
2.固件写得不好,也许有人想重做。
3.我为英语单词的丰富而预先表示歉意,因为我16岁以下就没有住在俄语国家,因此常常不知道俄语中有什么用。