ESP8266智能家居的设计(开心!!各个小组之间终于合作了!!!)

Posted 布尔青年——一只嵌入式硬件方向的皮卡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP8266智能家居的设计(开心!!各个小组之间终于合作了!!!)相关的知识,希望对你有一定的参考价值。

原文链接(点击原文链接获取更多学习干货):http://blog.bools.cn/archives/1249

一、前情提要

这一次是嵌入式硬件、嵌入式软件、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数据给下位机
mqtt/json
mqtt/json
mqtt/json
mqtt/json
Qt
服务器进行解析
下位机

3.6 软件要学习的部分

mqtt通信,json格式

3.7 最大难点

Java负责的服务器那一块

四、硬件部分的问题

4.1 需要的引脚

📘明白软件能控制的引脚—— D0~~D8 九个引脚,最高电压都为3.3V

📘明白ESP8266可以供的电压——3.3V和5V(万用表实测,其中VU可以供5V的电压)

📘明白各个模块需要的电压——

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这个产品的封装,所以我需要自行绘画

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云平台)

ESP32,ESP8266之间WiFi互联实验

基于华为云设计的智能家居控制系统(STM32+ESP8266)

基于华为云设计的智能家居控制系统(STM32+ESP8266)

#yyds干货盘点# 基于STM32+ESP8266+华为云IoT设计的智能门锁

基于STM32+ESP8266设计智能锁(支持微信小程序一键配网连接腾讯云平台)