设想一下,仅仅是轻点几下,您就能实现灯光控制,同时实时监测室温,行空板单板计算机结合 Nodemcu 的项目能帮您实现这个目标。
作为智慧中枢,行空板将成为项目的核心,通过高效的MQTT通信协议,连接三个按钮用以控制三个LED灯,搭配Nodemcu实现精准操控。此外,该项目还将整合DHT11传感器,以全方位监测室内温度变化。该项目被设计为初学者友好的家庭自动化门户,通过简单步骤和最少的组件,您将不可思议地发现您所创造的空间魔法将如此轻松融入生活中。让我们一起深入探索,打造一个更加智能的家。
项目所需硬件材料
一、行空板单板计算机
二、NodeMcu开发板
三、DHT11温湿度传感器
四、三个LED灯
五、一块面包板
六、3V电池
七、跳线
首步:设置行空板与VScode
必备条件:
在计算机上安装Visual Studio Code。在计算机和行空板上都安装OpenSSH。
步骤:
安装远程SSH扩展:
打开Visual Studio Code,点击左侧边栏的方形图标进入扩展视图(或按Ctrl+Shift+X快捷键)。
搜索“Remote - SSH”扩展并安装。
打开远程 SSH 扩展:
在VScode中按下F1或Ctrl+Shift+P打开命令面板。
输入并选择“Remote-SSH: Connect to Host…”命令。
输入行空板的SSH连接字符串:root@10.1.2.3。
按提示配置文件,并指定操作系统类型为Linux,默认密码为dfrobot。
连接成功后,VScode将打开一个新的窗口,通过SSH方式直接访问Unihiker的文件系统和终端。
开始编程:
现在你可以在Visual Studio Code中像直接在设备上操作一样编辑文件、运行命令并进行行空板项目的开发工作。
第二步:两端使用的库
NodeMcu端:
使用PubSubClient.h库实现MQTT协议功能。
使用DHT.h库处理DHT11传感器数据。
通过库管理器搜索DFRobot提供的DHT传感器库和PubSubClient库并安装。
行空板端(Python):
使用PyQT5库创建图形用户界面(GUI)。
使用paho.mqtt.client库实现MQTT通信。
其他必需库如pinpong库,用于访问GPIO引脚和板载传感器。例如,本例中用到了板载光线传感器采集环境光强并根据预设指令更新文本显示(这部分仅为测试目的,与主要代码无关,但你可以为其分配特殊任务)。
安装Python库:
在终端输入以下命令安装所需的库:
pip install PyQt5
pip install paho-mqtt
第三步:MQTT配置说明
Python端MQTT配置:
设置MQTT服务器地址(MQTT_ADDRESS)为MQTT服务器的IP地址或主机名。
提供MQTT用户名和密码,在MQTT_USER和MQTT_PASSWORD变量中分别填入,并确保这些凭据能安全地访问你的MQTT服务器。
配置订阅主题和发布主题,确保它们与ESP设备对应的主题匹配。
NodeMcu端MQTT配置:
设置MQTT服务器地址(mqtt_server)为要连接的MQTT服务器的IP地址或主机名。
配置发布和订阅的主题(one_topic和two_topic),确保它们与Python端对应的主题一致。
填写MQTT的用户名和密码(mqtt_username和mqtt_password),以及客户端ID(clientID),确保它们与MQTT服务器中的设置相符。
第四步:Python代码概览
Python代码结合了MQTT功能和PyQt5,构建了一个智能家居控制界面,包括:
一、建立MQTT连接,使用凭据连接到MQTT服务器并订阅特定主题接收消息。
二、利用PyQt5创建带有标签按钮的窗口,用于控制灯光和风扇,并加载不同状态(ON/OFF)的图片。
三、使用LCD小部件显示温度读数。
四、按钮交互:点击按钮时切换状态,并发送对应的MQTT消息以控制连接到ESP8266的设备(如灯泡、风扇)。
五、光照感应:读取环境光照强度,并更新标签显示“白天”或“夜晚”。
六、一体化:将 MQTT 客户端功能与 PyQt5 的事件处理集成,以实现 MQTT 消息和图形界面之间的无缝交互。
第五步:NodeMcu代码概览
NodeMcu基于ESP8266的代码配置使其能通过MQTT服务器控制智能家居设备,关键部分包括:
一、Wi-Fi设置:使用指定SSID和密码连接NodeMcu至Wi-Fi网络。
二、MQTT配置:设置MQTT服务器详情、发布和订阅的主题以及MQTT凭据。
三、传感器和输出处理:集成DHT11温湿度传感器获取读数,并定义GPIO引脚以控制输出(如灯光和风扇)。
四、建立与MQTT服务器的连接并订阅特定主题接收消息;周期性发布温度读数到指定主题;响应收到的MQTT消息,根据接收到的具体命令控制输出设备(如灯光和风扇)。
第六步:硬件连接
DHT11传感器接线:
将DHT11传感器的VCC引脚连接到NodeMcu的5V引脚,GND引脚连接GND,DATA引脚连接数字引脚D2。
输出设备(本例为LED灯):
定义输出引脚,例如int Out1 = D4; int Out2 = D5; int Out3 = D1;。 将LED灯正极(阳极)连接到上述输出引脚(D4、D5、D1),负极(阴极)或风扇连接到NodeMcu的GND引脚。 如果使用3V电池,则将其正极连接到Vin或5V线,负极连接到GND端子。
第七步:运行项目
从GitHub链接下载所有所需文件。
编程NodeMcu:打开Arduino代码文件,更改凭证信息,然后上传代码。
对于Unihiker端,将文件复制到根目录,可以通过访问Unihiker本地网页完成这一操作。
打开Python主文件,修改凭证信息。
修改完成后,可以直接在VScode终端内或通过Unihiker GUI运行Python代码,启动项目。
关于《利用行空板单板计算机打造智能家居系统》活动的详情,您可以访问“DF创客社区”了解更多。
(推广)
来源:东方网 | 撰稿:DF创客社区 | 责编:谷晟 审核:张渊
新闻投稿:184042016@qq.com 新闻热线:135 8189 2583
4617作文网免费算生辰八字算命邱氏女人起名大全起小名有哪些专业提供易经起名起名 田字旁孕11周还容易胎停吗姓李的起名字大全哪个起名软件真的周易37卦是什么挂饲料企业起名女孩 起名 周易免费这个名字网起名周成易紫砂壶真品怎么样用生辰八字算命电气焊店起名给姓胡的男孩起人名股份有限公司起名规范太原周易大师周易起名注册测字公司起名大全纹绣店起名字带金的字有哪些国内周易起国内周易起名网周易起名 公司名算死命 有声梦见摘杏子吃周公解梦免费测试名字周易打分朱氏起什么名字好听九星照命的解法和算法周公解梦梦见龙在天上飞名字测在一起的可能性淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男子给前妻转账 现任妻子起诉要回网友建议重庆地铁不准乘客携带菜筐月嫂回应掌掴婴儿是在赶虫子重庆警方辟谣“男子杀人焚尸”国产伟哥去年销售近13亿新的一天从800个哈欠开始男孩疑遭霸凌 家长讨说法被踢出群高中生被打伤下体休学 邯郸通报男子持台球杆殴打2名女店员被抓19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警两大学生合买彩票中奖一人不认账德国打算提及普京时仅用姓名山西省委原副书记商黎光被逮捕武汉大学樱花即将进入盛花期今日春分张家界的山上“长”满了韩国人?特朗普谈“凯特王妃P图照”王树国3次鞠躬告别西交大师生白宫:哈马斯三号人物被杀代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了房客欠租失踪 房东直发愁倪萍分享减重40斤方法“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火手机成瘾是影响睡眠质量重要因素考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼网友洛杉矶偶遇贾玲呼北高速交通事故已致14人死亡西双版纳热带植物园回应蜉蝣大爆发男孩8年未见母亲被告知被遗忘张立群任西安交通大学校长恒大被罚41.75亿到底怎么缴沈阳一轿车冲入人行道致3死2伤奥运男篮美国塞尔维亚同组周杰伦一审败诉网易国标起草人:淀粉肠是低配版火腿肠外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万杨倩无缘巴黎奥运男子被猫抓伤后确诊“猫抓病”春分“立蛋”成功率更高?记者:伊万改变了国足氛围奥巴马现身唐宁街 黑色着装引猜测