基于MQTT的智能家居程序框架

实验设备:stm32f103c8t6开发板,esp8266wifi模块
一、本实验使用手机控制开发板,就要使用到发送数据
简单地理解:手机就是源,开发板就是目的
但是我们在网络通信里面就不能这么去说,我们需要涉及到设备地址操作。
在网络通信中,源和目的我们如何去理解那,此时要用到ip。仅仅有ip还是不足够很清晰的去寻找某个设备,此时就要添加端口,才可以精准的去寻找某个设备。
源有ip地址+端口,目的有ip地址+端口
图1
图2
三、网络基础知识
1、传输数据的三要素:
源:发出数据的设备
目的:数据接受的目标
数据:数据本身(数据+数据的长度)
例如:
memcpy(endaddr, startaddr, len);//endaddr是数据的放到目的地址,startaddr是开始的数据地址
网络传输数据中:
源:ip+端口
目的:ip+端口
数据:数据本身(数据+数据的长度)
二、公网ip不足
什么是公网ip:假设有一个互联网,凡是能接入互联网的ip地址,都可以称之为公网ip。
ip不足问题:在传输数据时,每个设备都会涉及到ip,当设备过于多时,会出现ip不够使用的问题。
图3
什么是私网ip:在家、公司中,使用手机或者电脑连接网络,此时手机和电脑可以称之为私网ip。
什么是局域网:在同一个路由器下的所有设备,都是在同一个局域网里。
私网ip是可以相同的,因为我们使用路由器进行连入互联网。而路由器则是用到的是公网ip,公网ip是不可以相同的。
路由器则变成了不同局域网的私网ip到私网ip之间传输信息的中转站。
解决公网不足问题,不同局域网下私网ip发送数据到私网ip过程
例如:
①主机a的局域网ip是10.1.1.100,它使用端口1025,去访问公网211.100.7.34
②但是它没有公网ip,路由器此时就要修改这个数据包了,路由器就把数据包里的(10.1.1.100:1025)改成自己的ip和端口(162.105.176.65:16384),发出伪造的数据包。
③服务器收到后,返回数据给(162.105.176.65:16384)
④路由器收到数据后查表:
⑤这是主机a要我取的数据,于是把数据包里的目的(162.105.176.65:16384)改为(10.1.1.100:1025),
并发给主机a
⑥主机a收到数据
三、实际应用
手机如何才能与开发板通信?
硬件上理解:中间加入服务器,通过服务器中转。
协议上理解:本次实验使用mqtt
mqtt
mqtt简单理解:
当观众看电视过程中,想去选择湖南卫视。此时就需要向服务器订阅,说我想看湖南卫视,此时服务器向频道发布者说,发布者接到订阅后,然后发布到服务器。此时观众就可以在电视中看到湖南卫视。
程序设计:
软件设计分为三层:
①网络设备层:负责设备初始化、数据收发
②mqtt协议层:负责数据的解析、打包
③应用层:根据数据控制设备
下个文章,我们细谈mqtt协议,以及程序框架。


配网行波故障预警与定位装置的作用种类
工信部“新一代人工智能产业创新重点任务入围揭榜名单”揭晓
受谣言影响,阿里巴巴港股一度下挫逾2%
iPhone5将具备NFC近场通讯功能
介绍一种导弹空气舵刻线视觉检测技术
基于MQTT的智能家居程序框架
电磁干扰环境下无线传感器网络的通信性能实验研究
PCB设计中的信号完整性问题
谷歌将对智能可穿戴设备制造商Fitbit进行收购
为什么要进行电池充放电测试?电池充放电系统测试步骤
2018年有哪些真顶级旗舰手机
40款新车悬架结构解析
骨传导耳机比传统耳机更好吗,骨传导耳机发声原理科普
调光小台灯制作过程
艾迈斯欧司朗OSLON®植物照明先进技术,助力Revolution Microelectronics点亮未来农业
变频器谐波的危害及对设备的影响
解析电动势平衡方程式并分析其运行特征
PCB高速的界定
中国移动携手合作伙伴共筑视频边缘计算新生态
【科普】干货!带你从0了解移动机器人(四) ——移动机器人导航技术