51单片机 ESP8266模块 APP控制继电器,物联网DIY入门新手指南
题目
大家好,超子能力有限,技术不高,有什么错误的地方,欢迎批评指正。超子之前写过一篇STM32单片机配合ESP8266的WiFi模块接入阿里云生活物联网平台的DIY实验,有小伙伴问我51单片机能不能实现,答案是能。那么今天超子就给大家介绍下51单片机的实现方法。
程序设计中,我们使用的软件是Keil集成开发环境,C语言编写。如果大家想要程序源码的话,可以私信我,超子不是专业的程序员,水平不高,大家不嫌弃就行。
一说到51单片机的型号那就太多了,因为我们要使用MQTT协议对接阿里云生活物联网平台,所以对RAM空间要求比较多,一些常见的型号比如89C51,89C52,因为RAM空间太少不能用,所以我们本次DIY程序设计使用的单片机型号是STC12LE5A60S2。
ESP8266模块是通过串口AT指令控制的那种,网上有很多,价格也比较便宜,非常适合我们做DIY。
虽然我们前面使用STM32单片机做了第一个DIY设计,但是考虑到有些小伙伴,没有看过,所以超子还是说的详细一点,把每一个步骤再重新走一遍。
图1
首先进入我们自己的阿里云生活物联网平台,然后创建项目,我们就创建一个51单片机DIY项目吧,以后所有51单片机相关的DIY设计,我们都加入到这个项目内。
图2
项目建立完毕后,可以在项目列表中,看到51单片机DIY项目,旁边的第一个DIY设计项目,是上次STM32单片机DIY设计时建立的。然后我们点击51单片机DIY项目,进入项目管理界面。
图3
接下来,我们需要创建新产品。
图4
产品名称就叫51单片机插座,大家也可以起自己喜欢的名字。然后所属品类选择电工照明下的插座。节点类型选择设备,不接入网关,因为ESP8266可以连接WiFi路由器,直接具备接云的能力,所以是直连设备,不需要网关。连网方式一定要注意,虽然ESP8266是WiFi模块,但是不能选择WiFi连网,因为我们使用的是通用的,AT指令控制的ESP8266,没有在阿里云生活物联网平台认证,不兼容阿里云生活物联网平台APP的配网协议,如果我们选择WiFi方式的话,配网过不去,程序设计就无法进行了。所以我们取个巧,使用蜂窝连接方式,跳过阿里云生活物联网平台APP的配网,我们可以用ESP8266模块自己的APP配网或是直接把WiFi的SSID以及密码写在程序里。然后数据格式选择JSON,不适用ID2认证,最后点击完成就行了。
图5
产品建立完成后,我们要先进行第1步的功能定义的设置,我们选择的是电工照明分类下的插座,所以阿里云生活物联网平台自动帮我们添加了电源开关的功能属性。所以这一步我们不需要做什么额外的设置,直接点击下一步:设备调试。
图6
我们新建设备的时候,为了跳过配网协议,所以故意选择了蜂窝的连接方式,所以我们随便选一个通过认证的模组就行,选哪个型号都不会影响我们的DIY设计。
图7
选好模组后,我们点击新增测试设备,每个产品下可以添加最多50个免费的测试设备,我们做DIY程序设计,50个足够我们用了。
图8
新增测试设备时,我们要输入设备名称,就叫D001吧,超子喜欢用这种编号命名设备,大家可以根据喜好自己设置设备名称,然后点击确定就行。
图9
然后会弹出激活凭证,也就是三元组信息,这个是登录阿里云生活物联网平台的认证信息,稍后我们修改51单片机C语言程序时要用到这些重要信息。然后我们点击下一步:人机交互。
图10
和使用STM32单片机做DIY设计时一样,我们使用阿里云生活物联网平台的公版APP,也就是云智能APP。我们打开上图中红圈所示的开关。
图11
然后我们点击未设置,选择一个界面。
图12
自己喜欢哪个,选一个就行,然后点击确认。
图13
然后页面下方,我们要配置APP功能,同STM32单片机DIY时一样,我们主要设置多语言管理,填写品牌名称,设备名称,产品编号等等,大家根据喜好自己填一个就。最下方我们看到了天猫精灵,插座是天猫精灵支持的品类,所以可以直接绑定天猫精灵的账号,用天猫精灵控制开关,非常方便。然后我们点击下一步:批量投产。
图14
我们勾选上充分了解的对勾,然后点击开发完成,到此我们整个项目的配置就算完成了,就下来我们要修改51单片机的程序了。
图15
首先看esp8266.c源文件,wifi_mode变量用于设置使用哪种方式进行配网,大家根据注释自行选择就行,如果选择0的话,SSID和密码要在esp8266.h头文件中设置。
图16
然后我们需要修改mqtt.h头文件中的6个字符串,最麻烦的就是第3个,也就是MQTT协议中CONNECT报文中的包含的密码信息。我们一个一个来,讲一下怎么修改。
我们先看第6个需要修改的字符串,服务器的域名,格式如下所示:
*.iot-as-mqtt.cn-shanghai.aliyuncs.com
我们把*号替换成我们自己设备的ProductKey,这个ProductKey就是我们新建设备时弹出的3元组信息,图9所示,以我新建的设备作为例子,我们修改一下,最终结果如下:
a1jWDQfzbVB.iot-as-mqtt.cn-shanghai.aliyuncs.com
然后看第4和第5个字符串, 都是Topic主题,第4个set是用来接收控制开关命令推送的Topic,我们需要订阅它,第5个post是用来往服务器上传数据的,这次的实验post不是关键点。那么这两个Topic再那找呢?看下图。
图17
测试设备点击红圈圈中的查看。
图18
然后在Topic列表下,可以看到post和set,根据自己设备的实际内容,修改程序中第4和第5个字符串即可。
接下来看第1个字符串,也就是MQTT协议中CONNECT报文中包含的客户端ID信息,格式如下:
*|securemode=3,signmethod=hmacsha1|
其中*号是设备名称,以我的设备为例,修改一下,结果如下:
D001|securemode=3,signmethod=hmacsha1|
然后再看第2个字符串,也就是MQTT协议中CONNECT报文中包含的用户名信息,格式如下:
*
其中*号是设备名称 ,#号是ProductKey,都是图9中的三元组信息,就以我的设备为例,修改一下,结果如下:
D001&a1jWDQfzbVB
最后再看最麻烦的第3个字符串,也就是MQTT协议中CONNECT报文中包含的密码信息,需要经过一步加密,我们先要构建待加密的明文字符串,格式如下:
clientId*deviceName*productKey#
其中*号是设备名称 ,#号是ProductKey,以我的设备为例,修改一下,结果如下:
clientIdD001deviceNameD001productKey a1jWDQfzbVB
加密用的秘钥是图9中,三元组信息里的DeviceSecret,我们网上找一个加密算法的网站。
图19
我们复制待加密的字符串和密钥的时候,一定要多检查,不要多空格,不要多回车,错一点加密后的结果都不会正确的,所以大家一定要小心。加密后的结果就是第3个字符串的内容,到此6个需要修改的字符串我们都修改完毕了,重新编译程序,下载到开发板就行了。然后我们再回到阿里云生活物联网平台。
图20
我们进入第3步,人机交互设置页面,我们点击红圈所示的内容,然后弹出页面,需要我们填写设备名称,以我的为例,填上D001,然后就可以生成我们需要的,添加设备的二维码,因为文章中不能出现二维码,所以超子就不展示了。到此我们本次51单片机的DIY程序设计,基本就完成了。
大家如果有什么想做的,或者有什么想法,都可以评论区留言告诉超子哦~~~想要程序的小伙伴,可以举手哦~~~
上次买路由器大意了?这里有篇选购指南
为了促进互联网的发展,从五年前国家开始了提速降费的号召。
之后每隔一段时间,三大运营商都会搞一波宽带免费提速福利。
就拿托尼家的宽带来说吧,原本办的是个 100 Mbps 的宽带,五年没变过套餐,可是现在的网速已经能达到 600 多 Mbps 了。足足提了六倍。
然而在有些小伙伴那,事情可能恰恰相反:明明主动办了千兆的套餐,但是一测速,连 100 Mbps 都不到 。
托尼有时候去朋友家串门就会遇到这样的问题,一顿排查下来,发现是小伙伴家里的路由器有问题 。
说起来也挺有意思,可能当年发明这个技术的人也没想如今家里连个台灯都要连 Wi-Fi,入户的网络会从电话线变成光纤。
所以几年前我们办宽带送的那些个百兆网口、两根天线的路由器已经不够用了。
可是市面上的路由器品牌多如牛毛,参数花样繁多,100 块钱的也有,上千的也有。。。
他们都有什么区别,哪款又更适合我呢?
正所谓,差友们关心的,就是托尼要做的。
所以这次我们就来好好聊聊,家里的路由器该怎么选。
天线越多越长,信号就越稳定?
众所周知,路由器是靠天线发射无线信号的。所以通常来说,天线越多的路由器,信号就越好。
比方说那些售价快赶上 iPhone 的顶级游戏路由器,他们的天线一般都设计的充满战斗气息,而且密密麻麻布满了全身。
活像戏台上浑身插满了旗子的老将军。( 褒义 )
这个思路其实是没错的,天线越多的路由器的确能实现更大的吞吐量。但是天线更长的路由器可就不一定了 。
有一段时间,淘宝上盛行过一种 " 路由器天线改装服务 " 。
具体点来说,就是把路由器上自带的 5 dBi 增益的天线拔掉,然后换成 8 dBi 、 11 dBi 、甚至 19 dBi 增益强度的天线。
他们的理由很简单:天线是路由器传输信号的喇叭,之前的天线相当于只有 50% 的音量,我给你换成 80% 音量的,信号自然就好了。
这段话的前半部分没说错,换更高增益的天线的确能提升路由器的信号强度,但换完之后信号可不一定会变好 。
甚至手机收到的信号反而会更差。
具体的原理咱们就不讲了,说多了容易让人睡觉。一句话的版本就是:5 dBi 天线的覆盖范围是个标准的球, 11 dBi 天线的覆盖范围变成了一片饼 。
信号强度是高了,但高的不均匀了 。
托尼给大家做了一个三维演示,大家可以看一下。
而且路由器原装的天线一般使用的都是高品质的无氧铜天线,在外面改天线不遇到奸商还好,要是遇上了,指不定用个杂质多少的破铜。
所以说,有时候太多太长都不好,适合自己的长才是最好的。
价格越贵的路由器就越稳定?
假如两台路由器的年份差不多,那么这话说的没什么错。
毕竟除了少数割韭菜收智商税的一票子买卖,东西卖的越贵成本也就越高。
比方说,这是当年某台售价 99 元路由器的参数:
内存 32 MB ,使用单片机水平的 MIPS 处理器,只有两根天线。
而这张图里的,是某款当年售价 1999 元路由器的参数:
内存 512 MB ,双核高性能 ARM 处理器,四根天线。
并且每根天线都有独立的数字信号放大电路,过滤信号底噪 。
这两个路由器你让我买哪个?我咬牙分期肯定也得选那个 1999 元的。。。
理由很简单,就是为了跟小姐姐单排的时候能多收获几个 "wow,awesome " 。
我可不能让渣网拖累了我的技术。
但要是两款路由器的年份不一样,比如一年前卖 1000 元的路由器,对上现在 200 元的路由器,可能它还真占不到优势。
原因很简单, Wi-Fi 6
Wi-Fi 6 这个词估计大家耳朵都听出茧子来了,相比以前的 Wi-Fi 5 省电不说, Wi-Fi 6 技术最重要的是提高了路由器的承载力。
其中的原因估计很多小伙伴也已经知道了 —— 没错,就是因为这一次的 Wi-Fi 6 协议借鉴了手机 4G 网络中的 OFDMA ( 正交频分多址 )技术。
这个技术的引入,大幅度提高了 Wi-Fi 无线传输信道的利用率。
就好比说,以前每个数据包坐的都是专车,一包一车。包多了,道自然就堵了。
但引入了 OFDMA 技术之后,假如两个数据包挨得比较近,路由器会优先让他们拼车坐,这样就把有限的道路资源空出来了。
而且 Wi-Fi 6 还强化了原本 Wi-Fi 5 的 MU-MIMO 技术,能让路由器更有效利用更多的天线。
对于 Wi-Fi 6,托尼特别直观的一个感受就是,编辑部里之前一直用着一套 Wi-Fi 5 的旗舰设备,当时花了 6000 多。
但是一到中午( 追剧摸鱼 )大家就嚷嚷网卡。
后来花 500 多买了一台 Wi-Fi 6 的路由器,连上它的小伙伴再也没抱怨过 。
这么多 Wi-Fi 6 的路由器,我该怎么选?
既然 Wi-Fi 6 路由器的技术优势明显的离谱,外加上近期新产品的价格屡创新低。。。
托尼建议想买路由器的小伙伴们别再考虑 Wi-Fi 5 的老路由器,盯着 Wi-Fi 6 的路由器买就完事了 。
但即使都用的 Wi-Fi 6 技术,也有 200 元的红米、 不到 600 元的小米,以及 1899 元的领势 Velop 。
在这些路由器里又该怎么选?
实际上,除了上面托尼提到的这些路由器,其他还有比如包括 360、网件( NETGEAR )以及其它品牌出品的很多 Wi-Fi 6 路由器。。。他们都有一个共同点。
那就是他们使用的都是高通提供的 Networking Pro 系列 Wi-Fi 6 解决方案 。
高通其实就是那个做手机芯片,OV米等一众国内手机品牌的好伙计高通,我们都知道它做手机上的芯片很厉害。
但其实,高通也是路由器领域的老手 。
当年的高通 Atheros 路由器芯片稳定耐操,可玩性高,想必不少老师傅都听说过。。。
直到现在,它都是路由器刷机爱好者们的座上宾 。
更何况这次的 Wi-Fi 6 还借鉴了 4G 网络的技术,对于高通来说,这一步无非是把自己老本行里的技术拿出来,放到另外一个老本行里 。
所以不论是 200 元的红米 AX5 路由器,还是 2000 元的 领势 Velop MX5300 路由器,只要使用了高通的 Networking Pro 系列平台,他们都能为你提供基础稳定的 Wi-Fi 体验 。
不过当然, 1800 元的差价带来的深层体验还是有所不同的。
就和手机上有高通骁龙 865 、 765 、 690 一样,高通的 Networking Pro 系列平台给厂商提供了 400 、 600、800 和 1200 四个不同层级的 Wi-Fi 6 解决方案 。
像托尼前面提到售价 200 元的红米 AX5 路由器使用了高通 Networking Pro 400 平台,内置一颗五核心处理器,有 2( 2.4 GHz )+ 2( 5 GHz )总共四根天线。
售价不到 600 元的小米 AX3600 路由器则使用了高通 Networking Pro 600 平台。
内置一颗六核心处理器,有 2( 2.4 GHz )+ 4( 5 GHz )+1 总共七根天线。
而售价 2000 元的领势 Velop MX5300 使用的则是最顶级的高通 Networking Pro 1200 平台。
除了使用六核心处理器之外,更内置了 4 + 4 + 4 + 1 总共 13 根天线 。
13 根。。。这么多根天线一部分是给我们连手机、平板什么用的,另一部分天线的用途其实是专门用来连接另一台 MX5300 路由器的 。
可能有小伙伴没太搞懂这个操作,托尼来跟大家捋一捋。
你想啊,什么家庭条件会花 2000 块钱买个路由器啊,那住的不是自带电梯的独栋别墅,也得是上下多层的复式跃层。
面积大了之后,再好的 Wi-Fi 6 路由器肯定也解决不了覆盖的问题。
那么当一个 Wi-Fi 6 路由器覆盖不上的时候,两个或者三个 Wi-Fi 6 路由器一定能解决问题 。
领势 Velop MX5300 打的就是这手牌,独立的 " 路由器组网专用频段 " 能避免路由器和手机之间抢带宽,把多台路由器无线组网这件事整出了商业楼宇预埋线的效果。
不过这个咱们看看就好了 —— 打工人打工魂,还是几百块钱的路由器适合我。
还好,高通的 Networking Pro 方案全系都支持多路由器无线组网 。也就是说,即使是 200 元的红米也可以多台路由器组网。。。只不过峰值网速可能不如领势Velop。
这一点要我说,高通做的还挺良心的。
所以接下来我用几个例子来给大家敲黑板总结一下吧,虽然大家的需要可能会有所不同,不过托尼尽量做到贴合所有人的需求:
假如你是一个人在外面租房,面积不大于 30 平,那么一个 200 块钱的红米 AX5 路由器就能保证你吃鸡王者了 。( Networking Pro 400 级别 )
假如你租的是个 50 平左右的两居室,家里有几个智能家电,那么你可能需要考虑一下更高一档的红米 AX6 ,或者是小米 AX3600 。( Networking Pro 600 级别 )
假如你的房子在 70 - 80 平左右,那么你可能需要买两个红米 AX5 ,或者买一套同级别的 360 天穹组网套装。
然后在你最需要用到 Wi-Fi 的两个房间里各放一个,组个 MESH 网络。
假如你的房子面积在 120 平以上,那么首先我要柠檬你一下。
然后我会建议你买两个红米 AX6 路由器 ( Networking Pro 600 级别 ),或者买三个红米 AX5 路由器 ( Networking Pro 400 级别 ),进行一个全屋组网 。
当然了,要是有闲钱、还想追求更好的效果的话,也可以买两到三个网件的 Orbi RBK 752( Networking Pro 800 级别 )。
不贵,也就 3199,真的不贵 。。。
如果你的房子再大点,比如 240 平的话,也可以继续选择使用红米 AX6 或者 360 天穹,然后找几个重点房间进行重点布局。
但是既然房子都这么大了,买几个贵 亿点点 的领势 Velop 或者同规格的华硕旗舰 Wi-Fi 6 路由器想必会让网速变更好吧 。( Networking Pro 1200 级别 )
总之,你需要覆盖 Wi-Fi 的面积越大,家里需要联网的智能设备越多,要想 Wi-Fi 稳定不掉,就得考虑使用更高一档的路由器产品。
至于你的房子超过了 480 平、 960 平。。。那我猜估计不等到托尼这篇文章,就已经有专门的施工队去你家铺网布线了。
不过说实话,这题实在是超纲了。欢迎有经验的老哥在评论区让托尼涨涨知识。。。
以上就是托尼给大家的路由器推荐,不知道你会怎么选呢。
相关问答
wifi模块与 单片机 连接用哪个总线?属于串口通信,WiFi的输出输入串口与单片机的输入出口相连,如WiFi的TXD发,单片机的RXD收;单片机的TXD发,WiFi的RXD收,可通过模块对单片机写入代码。WiFi把...
手机是怎样通过wifi模块和 单片机 通信的呢?手机通过Wifi模块和单片机通信的方式有直接连接通信、组成局域网、通过云服务器中转三种单片机一般是通过UART接口与Wifi模块连接,单片机可以给Wifi模块发送AT...
斐讯K2和极路由4和极路由3哪个更好-ZOL问答为了尽量节约制造成本,普通单片机WiFi路由器自身硬件设计缺陷和制造中材料简配严重,无法高效处理来自100M带宽网络应用和吞吐量,所以一款性能优异的WiFi路由器对...
单片机 怎么跟电脑实现无线传输数据-ZOL问答如果买不到,也可以自己做,但这就需要较高的电路水平才可以做到,涉及到调制解调,无线电的发射和接收电路,发射频率的选择,再加上单片机和电脑的通信程序编写,一个...
tp6500和tp7400哪个更实用?由于普通单片机WiFi路由器自身硬件设计缺陷和制造中材料简配严重,无法高效处理来自100M带宽网络应用和吞吐量,所以一款性能优异的WiFi路由器对整个无线网速、...
自学 单片机 reg51.h定时程序是里头的TH1、TL1、TR1、TMOD是什...TH1计数器1,TL1是定时器1,TR1是启动定时器1,TMOD(工作方式控制寄存器).具体想了解是什么意思可以去下载个资料看一下《基于C语言的MCS-51系列单片机软件开发系统...
我就在 路由器 旁边坐着呢为何还是那么卡-ZOL问答(2)电脑直接连猫或者主网线上网正常,比较快速的办法是将WiFi路由器重置为出厂设置,仅做最小化配置,即仅配置宽带账号、宽带密码、WiFi名称、WiFi密码等基本参数...
百兆光纤选用什么 路由器 ? - 然然_29 的回答 - 懂得普通家庭用的路由器基本端口速率都达到100M,但属于低端产品,价格较低,处理能力不高,有时不能满足大流量高带宽使用的性能要求。因此为了体现100M带...
为什么一些人说小米 路由器 3延时高?一方面登录WiFi路由器检查下是否有人蹭网,另外大部分常见WiFi路由器为了尽量节约制造成本,普通单片机WiFi路由器自身硬件设计缺陷和制造中材料简配严重,无法高...
STM32是什么啊,是32位的 单片机 吗 - 135****2256 的回答 - 懂得stm32是一种32位的单片机。单片机是嵌入式系统中最常用的核心部件,stm32本质上也是一种单片机。从事嵌入式方面工作,如果有一定的基础,可以从STM32...