前面我们说到了ESP8266的AT指令集的使用,按说这一章是要说mqtt协议的,但是为了考虑物联网知识体系的完整性,这一章说一下物联网智能家居的控制过程和流程,顺带说一下关于mqtt协议中的订阅和发布是啥意思,算是下一章的前奏吧!请大家耐心看完。
我们最终是实现的目的可以简单地说,用STM32+ESP8266外加传感器和继电器来控制家中的开关,和得到家中的各个电器的运行状态对吧?原理是家里的电器先接带STM32+ESP8266+继电器的智能插座,智能插座再接家里的插座,这样只要控制ESP8266的这个插座(类似中介)就能控制家里的任何电器。下面这张图就是控制方式。通过家用的路由器将各个电器和手机联系起来了,手机可以通过路由器控制各个挂载在路由器上的器件,这是比较常用的模式。

一般来说,把手机叫做上位机,控制器叫做下位机。那么这就是我们常说的物联网吗,准确的说不对,毕竟只能围绕着这个路由器,有一定的局限性,比如你到公司才想起忘了关家里的灯,那么只能跑回家,运气好的话能在楼下就能连到家里的路由器在再通过手机app关灯。这时候你想如果能在任何地方控制家里的电器该多好,要是真有这样的功能比如你冬天回家前可以先把家里的空凋打开……
我们这个项目就是ESP8266连接家中的路由器的网,手机连接的是4/5G网,这样你就可以在你家中的设备不断电不断网的情况下,在任意地方来控制你家中的用电器设备。
一、理论知识
那么怎么样可以让你在任何地方控制家里的电器(当然提前还是要有网),看下面这张图,跟原来不一样的地方是用云服务器代替了家里的路由器,就这么简单!那么什么是云服务器,云服务器又在哪?你就把它当做天上的一朵云就好了(阿里云、腾讯云),反正就是不管你的手机还是别的设备,只要能连网就可以连接云服务器。

那么连上服务器以后是不是能直接控制了?当然可以,刚学单片机的小伙伴肯定玩过串口做串口实验,从单片机发送字母xiaoshidi,串口调试助手就收到字母xiaoshidi,觉得很有趣。但是有时候你会发现如果你的串口通信的函数写的不好或者有误的时候就会出现通信错误,比如接收的数据是乱码等,那么它的可靠性就不是很好!
那什么叫可靠性不好呢?比如这边发过去的时候是xiaoshidi,运气不好的话那边只可能收到的是shidi,这样的话就会出事。所以我们也不能直接向云服务器发送个简单指令去控制下位机,需要有一定的约定,比如事先告诉服务器我要发送9个字母过来了,云服务器收到后就知道了,如果接收xiaoshidi一般来说是正确接收了,如果只收到shidi说明丢了4个字母,这就是我们常说的丢包。那么这样的约定就是我们常说的协议!有句话叫做“没有物联网协议就没有智能安全”,其实关键就是协议,在物联网中常用的就是MQTT协议,那么为什么不用我们常见的http协议呢?只能自己百度了。这边简单的介绍下什么MQTT协议的原理,因为只要会MQTT就能玩转物联网,先看个例子。
全文阅读:https://dwz.cn/LQI4RzGe
我们最终是实现的目的可以简单地说,用STM32+ESP8266外加传感器和继电器来控制家中的开关,和得到家中的各个电器的运行状态对吧?原理是家里的电器先接带STM32+ESP8266+继电器的智能插座,智能插座再接家里的插座,这样只要控制ESP8266的这个插座(类似中介)就能控制家里的任何电器。下面这张图就是控制方式。通过家用的路由器将各个电器和手机联系起来了,手机可以通过路由器控制各个挂载在路由器上的器件,这是比较常用的模式。

一般来说,把手机叫做上位机,控制器叫做下位机。那么这就是我们常说的物联网吗,准确的说不对,毕竟只能围绕着这个路由器,有一定的局限性,比如你到公司才想起忘了关家里的灯,那么只能跑回家,运气好的话能在楼下就能连到家里的路由器在再通过手机app关灯。这时候你想如果能在任何地方控制家里的电器该多好,要是真有这样的功能比如你冬天回家前可以先把家里的空凋打开……
我们这个项目就是ESP8266连接家中的路由器的网,手机连接的是4/5G网,这样你就可以在你家中的设备不断电不断网的情况下,在任意地方来控制你家中的用电器设备。
一、理论知识
那么怎么样可以让你在任何地方控制家里的电器(当然提前还是要有网),看下面这张图,跟原来不一样的地方是用云服务器代替了家里的路由器,就这么简单!那么什么是云服务器,云服务器又在哪?你就把它当做天上的一朵云就好了(阿里云、腾讯云),反正就是不管你的手机还是别的设备,只要能连网就可以连接云服务器。

那么连上服务器以后是不是能直接控制了?当然可以,刚学单片机的小伙伴肯定玩过串口做串口实验,从单片机发送字母xiaoshidi,串口调试助手就收到字母xiaoshidi,觉得很有趣。但是有时候你会发现如果你的串口通信的函数写的不好或者有误的时候就会出现通信错误,比如接收的数据是乱码等,那么它的可靠性就不是很好!
那什么叫可靠性不好呢?比如这边发过去的时候是xiaoshidi,运气不好的话那边只可能收到的是shidi,这样的话就会出事。所以我们也不能直接向云服务器发送个简单指令去控制下位机,需要有一定的约定,比如事先告诉服务器我要发送9个字母过来了,云服务器收到后就知道了,如果接收xiaoshidi一般来说是正确接收了,如果只收到shidi说明丢了4个字母,这就是我们常说的丢包。那么这样的约定就是我们常说的协议!有句话叫做“没有物联网协议就没有智能安全”,其实关键就是协议,在物联网中常用的就是MQTT协议,那么为什么不用我们常见的http协议呢?只能自己百度了。这边简单的介绍下什么MQTT协议的原理,因为只要会MQTT就能玩转物联网,先看个例子。
全文阅读:https://dwz.cn/LQI4RzGe