ESP8266智能家居的设计(开心!!各个小组之间终于合作了!!!)
Posted 布尔青年——一只嵌入式硬件方向的皮卡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP8266智能家居的设计(开心!!各个小组之间终于合作了!!!)相关的知识,希望对你有一定的参考价值。
原文链接(点击原文链接获取更多学习干货):http://blog.bools.cn/archives/1249
ESP8266智能家居的设计
一、前情提要
这一次是嵌入式硬件、嵌入式软件、Java、C++四个小组之间第一次合作的一个智能小项目,目的在于让各个小组之间合作,体验一下产品开发的过程中各个部门的功能与接洽,对我们嵌入式硬件组而言是不可多得的一次项目经验。
二、项目功能
1、核心板
ESP8266串口wifi模块 NodeMCU Lua V3物联网开发板 CH340
2、功能
-
模仿一般家庭的生活环境——一个房子有以下的家具物品:
⏰门
⏰房间灯
⏰窗帘
⏰温度计 -
控制方法——WiFi控制、mqtt通信协议,要求用WIFI控制
2.1 材料
1、3个LED灯(外接,和嵌入式软件商量正负极的接口与LED初始化的要求)
2、温湿度传感器(数量1个,ESP8266的I/O口不够了,原定3各,现在删减至1个)
3、直流电机2个(模拟窗帘升降,需要驱动模块1个,直流电机2个,需要4个I/O口来控制)
4、使用WIFI控制(ESP8266可以连WiFi)
5、控制门锁开关(目前只有一个锁,先控制一个,需要一个I/O口)
6、摄像头监控(手机或者电脑的摄像头,软件)
7、语音模块(调用手机或者电脑的麦克风,软件这边封装个语音包)
8、产品可迭代更新(WiFi联网更新,在线升级就是把升级固件放服务器,然后通过wifi下进下位机)
三、软件部分的问题
3.1 软件部分的分组
🛃嵌入式软件组
🛃C++组
🛃Java组
3.2 每组的任务
3.3 任务解释
mqtt通信用法:MQTT协议的智能灯控
使用软件:MQTTX
🌍名词解释:
- 服务器:云端、后台、中介(连接下位机与Qt)
- 下位机:我们的ESP8266的核心板,NodeMCU,就是那一块完整的PCB
- 操作界面:Qt写的界面
考虑到软件组的学习进度还没有到服务器操作,所以将目前要求的功能先进行简化处理
🍩语音识别和人脸识别的功能后面再做,现在先放着
🍩小程序、微信公众号的后台下个月在搞,这个需要Java把服务器搞了
🍩先实现最简单的功能:控制LED、电机、温湿度模块、门锁
3.4 模拟调试
因为现在我们四个组的人员都在家,无法联合调试,并且Java那边还没有把服务器搞好,所以数据上传不了云端,所以使用MQTTX软件进行模拟调试,MQTTX调通信代码,以此来模拟云端发送数据给下位机
3.5 这个项目整体的实现逻辑
✴️硬件把房子和PCB做出来,有了产品的实物
✴️软件要实现下位机、服务器、操作界面(MCU板子、云端/后台、Qt的界面)之间的通信
实现方法:
-
三方之间都采用mqtt通信
-
在mqtt通信时采用json的数据格式传输数据
-
操作界面控制下位机:
- Qt连接服务器(运营与IP),用mqtt通信发送数据(发布命令)给云端(数据是json格式的),服务器收到json格式的数据,对其进行解析,然后再通过mqtt把数据(发布命令)发送给下位机
- 下位机通过Mqtt通信与服务器相连,接收服务器发来的指令,解析json格式,以此接收Qt发来的指令(控制灯/电机)
-
下位机把数据传到Qt界面:
- 下位机收到温湿度数据,通过mqtt通信(json格式)发送给服务器,服务器通过mqtt通信(json格式)发送给Qt显示
- 服务器相当于中介,Qt不能直接发送json数据给下位机
3.6 软件要学习的部分
mqtt通信,json格式
3.7 最大难点
Java负责的服务器那一块
四、硬件部分的问题
4.1 需要的引脚
📘明白软件能控制的引脚—— D0~~D8 九个引脚,最高电压都为3.3V
📘明白ESP8266可以供的电压——3.3V和5V(万用表实测,其中VU可以供5V的电压)
📘明白各个模块需要的电压——
-
LED灯的电压在3.0-3.4V之间
-
温湿度传感器的电压3.3-5V;考虑到ESP8266引脚承受电压的能力,给此模块供电电压为3.3V
-
连接电机——驱动模块供电5V(其实应该有一个+12V的电压,但是没办法,这里没有那么高的电压,但是也可以让电机转起来,我试过了)
驱动模块调试:https://www.bilibili.com/video/BV1y64y1a7o4?p=1
-
门锁——5V供电,取消反馈线(不需要反馈线的功能)
门锁的调试:https://www.bilibili.com/video/BV1y64y1a7o4?p=2
4.2 引脚的分配
-
D0-D8 九个引脚
🌸D0——门锁
🌸D1~D4——驱动模块逻辑输入端(这里逻辑电压是3.3V,实测可以让电机转动)
🌸D5~D7——三个LED灯
🌸D8——温湿度模块的输出端 -
为了以防万一——以后还要接其他的模块
🌸用排针引出多个GND
🌸用排针引出多个3.3V
🌸用排针引出多个5V
🌸将串口引出来
4.3 原理图
4.4 PCB设计
4.4.1封装的绘画
因为没有找到ESP8266这个产品的封装,所以我需要自行绘画
- 视频如下:关于我为什么没有按照实物选取15P的排母——少见+运费贵
原理图和元器件封装的绘画与关联
4.4.2 绘画时出现的问题
1.没有在丝印层上面画凹槽,直接画了一个矩形——导致分不清焊盘的顺序
2.封装的焊盘直接复制粘贴,没有改焊盘的序号
3.焊盘序号顺逆时针反掉了,不符合一般的标号规则
4.4.3 其他问题
🆒模块化布局——一个模块在板子上应该放在一起
- 比如
- 比如
🆒多打GND孔
🆒别忘记DRC,我查到有4条线没有连接😕😕😕😕
🆒各个模块的名字标清楚,要让其他人看得懂那一部分是干什么的,接线,引脚引用都要清楚
🆒不要忘记补泪滴
4.5 选材问题
为了方便插线的美观和插的紧,我选择了XH2.54接插件的弯针款
五、和软件交流
因为ESP8266一上电,D0~D8全是3.3V电压,如果LED正极接D口,负极接地,一上电,LED直接就是会亮的,所以如果真的要这样子接的话,需要先初始化D口为0;或者LED的正极接3.3V的口,负极接D口,这样子当D口为0的时候,LED就亮了
六、关于数据手册
数据手册一律去官网找,不管是什么品牌的数据手册,官网肯定是会有的,STC、STM、ESP的对应产品的数据手册,官网都有
七、关于项目更进
要随时了解各组之间的开发任务和开发难度,看看每个人对他们的开发任务是否都可以做出来,做不出来及时联系师兄们,让他们提供对应问题与难点的技术支持(指导)
八、关于会议总结
项目小组每一次会议后,负责人都要做总结!!!!
欢迎关注技术公众号,获取更多硬件学习干货!
我们能为你提供什么?
技术辅导:C++、Java、嵌入式软件/硬件
项目辅导:软件/硬件项目、大厂实训项目
就业辅导:就业全流程辅导、技术创业支持
对接企业HR:培养输送优质性人才
以上是关于ESP8266智能家居的设计(开心!!各个小组之间终于合作了!!!)的主要内容,如果未能解决你的问题,请参考以下文章
基于STM32设计的智能家居系统(采用ESP8266+OneNet云平台)
基于华为云设计的智能家居控制系统(STM32+ESP8266)
基于华为云设计的智能家居控制系统(STM32+ESP8266)