零基础打造全屋智能控制系统 篇十一:花费40元,传感器节点变身彩屏空气质量检测仪
这篇文章预告了很久,也有值友不停的催促说,我屏都买好了,就等你发教程呢。但是懒癌发作,一直没有动手,没错,不是动笔。因为自从把所有传感器都连入domoticz设置好自动化后,基本上就不需要再去观察数值啥的,所有设备都是自动运行的。根据户外空气质量打开空净,根据户外温度来判断打开空调的时候是制热还是制冷模式等等等等。更何况还有台挂在冰箱上的ipad:
不过这台ipad已经被撤下,因为ipad2有点老,跑dashticz操作时候会有些卡顿,时间久了还会闪退。毕竟家里没有40多扇窗,所有设备的运转状态走3步路就能看完。让echo开关下也就动动嘴的事。
但是,很多值友家里并没有智能家居的中枢,很多时候只是说想要个空气质量检测仪,毕竟市面上的DIY检测仪要不是太丑,就是太贵,或者是又丑又贵……每每想到这,楼主都不想给大家写文章了,直接开个淘宝店卖检测仪去了……,楼主的这个最大特色是界面可自由定制,可以向乐为或yeelink物联网平台实时传送数据,可以接入domoticz和home assitant当作传感器节点,下面给大家看看基于本文内容的几种基本界面组合(说本文,是因为如果你认真看完文章,就可以很方便的搭配出你自己想要的屏幕显示效果和显示内容):
具体屏幕上显示啥,显示在哪都可以你自己说了算。除了可以显示本机nodemcu上连接的传感器数值外,还能通过Domoticz或homeassitant甚至python脚本将其他数据传入nodemcu来显示,例如楼主的这个,其实只有一个nodemcu+显示屏。等你掌握技巧后,还能自动翻页显示更多内容。如果给nodemcu添加一个光线传感器,还能自动调节液晶屏的背光亮度。如果再加个人体传感器或按钮,可以自动在大时钟和数据之间自动或手动切换……,我觉得我这饼画的是不是有些大,但是你只要看完本文,就会发现这一切都非常的简单。首先,我推荐大家先去翻阅楼主之前的基于nodemcu接传感器的文章,这些内容在本文中将不再累述。
然后基于以上的文章,nodemcu开发板和传感器楼主就不多说了,本文主要内容是屏幕,所以这里只说屏幕,关于液晶屏,楼主有且只有用过一家的产品,全网独家,质优价廉,童叟无欺,当然和nextion比起来还是逊色不少,特别是在配套软件上,不过看看只有nextion 1/3价格的份上,就忍了吧。
本文使用的是2.6寸,分辨率为400X240的非触摸屏。也是楼主觉得最实惠的一块屏,比这大的价格太贵,比这小的配置太低,你看完本文之后觉得没有难度的话,完全可以根据自己需求选购具有更高分辨率和尺寸的彩屏。
然后配置屏幕时,我们还额外需要USB-TTL模块,基本上你如果一路跟着楼主的教程走下来的话,这东西应该都有:
几块钱的东西,大家随便买买就成,CH340G还是PL2303芯片都一样用。
然后接线也非常简单,屏幕上一共有4个端口,+5v,RX,TX,GND,分别接模块的+5v,RX,TX,GND,注意,RX接TX,TX接RX。然后我们开始讲解屏幕操作了。这里先要下屏幕的设置软件,官方版本已经到5.5了,不过楼主用的还是V4测试版,这里放个连接,其中包含了这次教程里面用到的所有图片素材:点我下载(此版本仅适用于400X240分辨率屏幕)
然后我们打开程序:
这里我们只要选择下串口号,然后打开串口就可以了。首先我们要设置存储区大小,因为UsartGPU26B的存储空间为8M,所以我们划分4M给图片存储:
选择4194394,然后点击计算长度且存储。
然后选择图形处理页面,点击生成全部图片的数据。
会弹出一个提示,我们点OK就行,这就是我说的便宜的屏幕配置可能不够用的情况,但是对我们没有影响。
然后我们处理字体点阵,这次我们只需要设置48点阵字符和64点阵字符,生成的字符为 "1234567890abc.NA/:",48点阵字符使用的字体为"Impact",64点阵字符使用的字体为"Consolas“:
设置好字体后,点击生成所有抽取式汉字数据,然后就完成了。下面我们要做的是上传刚才的所有设置,我们回到主界面选择如下几项,然后点击选中项全部上传:
然后等上一小会,等上传完成,然后我们测试下,点界面右边的批界面序号2,认识串口屏那个,然后发送界面会出现一堆命令,点整体发送:
然后屏幕应该差不多显示这样的内容:
这张照片是初版,现在的图片有变化,所以不一定是这样的,大家只需要观察时钟字体,数据字体以及图标是否有显示就好。然后下面说说本文中用到的几句串口屏命令:
CLS(0); 清屏命令,括号内的0是颜色号,这里的0是黑色,具体颜色可以查看word说明。
PIC(210,3,10);显示图片命令,在X轴向210像素,Y轴向3像素(从左上角开始算)显示编号为10的图片。
DS64(55,20,'22:05',15);显示像素为64的字符,同理,64可以改成48、32、24、26等,位置在X轴55像素,Y轴20像素,显示22:05,注意显示内容要用单引号括起来,末尾的15同为颜色。
DR1;这个是屏幕的显示方向命令,DR1,DR3为竖向显示,DR0,DR2为横向显示。
基本上我们这次使用的命令就只有这么多条,关于批界面,亮度调整啥的大家有兴趣可以参见压缩包里的WORD文档,这里楼主就抛个砖给大家看。
然后说明下文件夹里的图片:
图片1-19是横向的传感器类型和单位,其中有些黑色的是空位,大家可以自己创作,或者推翻楼主的设计,自己重新做,使用的时候,就直接按文件名使用。例如4就是温度,5是湿度……,图片20-70是天气图标,顺序是根据和风API来排列的,因为串口屏支持255张图片且编号连续,所以使用的时候自己要做一个编码的转换,这个可以在ESPEASY里面写RULE做,也可以用其他系统做。
然后我们就是把屏幕和nodemcu连接起来了,同样的5V GND RX TX。没什么花头,就不多说了。然后烧写ESPEASY之前的文章里也都说明了,这里也不再累述,下面主要是设置部分,其实在这部分楼主走了很多弯路,开始的时候想的是做一个ESPEASY的PLUGIN,然后无奈没有编程基础,修修改改也没弄成,最后是发现ESPEASY本来就有向串口发送数据的命令……,然后豁然开朗:
我们先去tools的advanced Settings里把rules和USE NTP打开,NTP服务器可以留空,也可以设成cn.ntp.org.cn,Offset设成480,这样显示的就是北京时间。然后把Enable Serial port的勾去掉。点击submit提交。然后剩下的就是写Rules了。
其中SerialSend就是向串口发送数据的命令。具体rules的使用大家可以参见
然后上面那段rules的成果就是:
最后祝大家玩的开心吧。
手机大姐长江
校验提示文案
何事秋风Ares
校验提示文案
姓余的小伙子
校验提示文案
水水88
校验提示文案
shytian
校验提示文案
学习路上小白
校验提示文案
大咖啤
校验提示文案
靖康
校验提示文案
justalittleking
校验提示文案
last532
校验提示文案
oo00oo0
校验提示文案
6六6
校验提示文案
chuanzai
校验提示文案
爱心在线
校验提示文案
2ngx
校验提示文案
最恨加时
校验提示文案
车棚居士
校验提示文案
沉溺99
校验提示文案
linaz2046
校验提示文案
Robbie_W
校验提示文案
chuanzai
校验提示文案
平行的默默鱼
校验提示文案
Jerio
校验提示文案
值友9720623795
校验提示文案
再买剁你手信不
校验提示文案
flying_dog
校验提示文案
wanglingfeng
校验提示文案
wanglingfeng
校验提示文案
6六6
校验提示文案
oo00oo0
校验提示文案
tinywoody
校验提示文案
陈永仁的爹
校验提示文案
小伍先生
校验提示文案
love汤匙
校验提示文案
last532
校验提示文案
lalayuan
校验提示文案
Candy的大灰狼
校验提示文案
windxin
校验提示文案
几两银子
校验提示文案
_NetAkai_
校验提示文案