这才是工业物联网需要的WiFi单片机
正如Microchip所看到的一样,随着物联网从家庭自动化领域拓展到如供暖、通风与空调(HVAC)、车库门和电风扇等家庭控制领域,以及在建筑和工业自动化领域的加速应用,市场对高度集成、可靠和安全的工业物联网(IIoT)连接性的需求前所未有地增加,这就催生了WiFi单片机的需求。
但Microchip无线解决方案部产品线经理Alex Li在日前的一场发布会中指出,以上应用目前正在使用的WiFi单片机方案功能是有限的,所以,几乎在任何场所都需要额外的主的单片机跟它一起工作。而要实现这样的设计,就需要两者之间通过SPI或者UART这样的接口协议进行连接。
然而这样的设计将诶开发者带来几方面的挑战:首先,在Wi-Fi模块和主单片机之间的进行连接,限制了Wi-Fi的速度;
其次,从商业角度来说,这样的双元件结构会增加设计和生产过程中的一些复杂性和风险。 客户可能不得不花更多的时间在驱动程序的开发上,甚至还需要学习不同的软件开发工具。再者,来自不同生产商的供应也可能会导致一些生产延迟或者一些供应链上的风险,因为你不可能保证每个生产商都可以给你及时地供货。
第三,在系统及应用的技术支持方面也是一个问题。 因为你不可能让一个生产商的一个技术支持工程师,一个售前帮你解决如何连接另一个产品,以上种种这些都会导致你的产品延迟上市,还有一些无谓的资金的投入;
第四,则是网络安全方面的挑战。 如上图右边的主单片机,有很多和互联网连接相关的安全密钥和身份认证都会储存在其闪存里面,这将带来很大的安全漏洞。
为了解决以上问题,Microchip特意推出了首款Trust&Go Wi-Fi® 32位单片机模块WFI32E01PC。从Alex的介绍我们得知,这款单片拥有一款叫做PIC32MZ-W1的高性能32位单片机,它有1兆的闪存和256KB的RAM,可以应付很多复杂的物联网应用。
此外,Microchip这款产品拥有丰富的外设,这也让其能拥有足够的能力应付IIOT各种场景的应用需求。除了传统的SPI、UARD或者是ADC之类的外设外,Microchip还给客户提供了如以太网结构、USB、CVD Touch和CAN总线之类的特殊接口。与此同时,WFI32E01PC还有出色的模拟性能,如精确的高度线性的双通道12位ADC,那就意味着即使在不同的干扰、不同的温度变化下,产品仍然有相对稳定的性能。
“这样一种ADC的特性在设计工业传感器以及其他一些工业应用上是至关重要的”,Alex Li强调。
此外,作为一款面向物联网的芯片,数据安全也是Microchip这款WiFi单片机模块需要考虑的重点问题。而他们则通过在内部集成Trust&Go平台来解决,据了解,这个平台采用安全元件技术,为云身份验证进行预先配置和设置,简化了网络身份验证的过程。
Alex Li指出,Trust&Go就是为了解决设备连到本地WiFi,再连接到云端所的安全问题。按照他所说,在这个过程中,就需要有一个具有加密密钥对的增强型TLS连接,这个连接是一个非常复杂的过程,它需要三个要素:第一个就是不可变更的公共密钥,第二个就是一个隐性私密的密钥,任何外部的软件是不可以看到这个密钥的,这个是绝对保密的,而且必须防止一些物理的攻击。第三个就是唯一可验证以及可信任的设备标识,你可以理解成它就是一个外围设备的物联网设备的指纹或者是它的一些独特的设备标识。
除了上述描述的高性能硬件以外,Microchip还借助其MPLAB Harmony开发环境,为这款WiFi单片机提供了囊括开发、安全、功能性和可靠性在内的软件功能。
首先看开发方面,据Alex Li介绍,这个开发平台能为其客户提供无代码的Wi-Fi局域网开发框架,让某些不了解WiFi代码应用和设置的客户可以在其开发环境上通过填写一些简单的参数,做一些简单的选项,就可以设置好其WiFi连接;同时,Microchip还会给客户提供丰富的系统级师范应用,这样客户就可以通过很小的改动,将其变成自己的应用;此外,这个软件的SDK上面还会给客户提供所有MCU所需要的一些驱动,帮助客户运用各种MCU的功能。得益于这样的设置,开发者就能快设计出原因 ,并将其实现无缝集成。
其次看功能方面,如上图所示,Microchip的的软件库给客户提供了无线局域网具有的先进Wi-Fi功能和各种类型的网络协议栈。同时还将提供云连接的示例软件,满足不同场景下的设计需求。
来到安全和可靠方面。除了上文谈到的Trust&Go外,Microchip通过还为这款产品的软件引入了WPA3连接支持和连接硬件加密加速器TLS,提升了身份验证的稳定以及防止了一些离线的字典攻击。
借助卓越的Wi-Fi互操作性测试,Microchip可以保证其Wi-Fi产品可以随便地连接到任何的路由器,“Microchip已经跟53个市面上很受欢迎的路由器做过测试,并且涵盖了非常广范围的Wi-Fi的access point的芯片,旨在我们会帮助克服这个问题”,Alex Li强调。“同时,我们的Wi-Fi软件已经通过Wi-Fi Alliance提供的WFA认证,那就意味着客户如果想用其Wi-Fi logo,就需要通过WFA的认证”,Alex Li补充说。
Microchip还为客户提供了如ICD3、ICD4和SNAP之类的专业调试工具,针对射频产品,他们还将提供测试工具,确保其设计的产品符合规范。
“Microchip在不久之后将提供一个开发板,客户可以基于其快速搭建原型机”,Alex Li表示。
从上文的介绍我们看到,这是一个WiFi单片机模块,而不是集成度更高的WiFi SoC,因此在发布会上就有记者问到,公司为何做这样的设计选择?针对这个问题,Alex Li给出的答案是因为他们的模块已经经过了完整的射频认证,这就让客户使用起来可以更方便。但他也强调,Microchip有计划在未来推出针对SoC的设计。
作为全面的系统解决方案供应商,Microchip提供了广泛的产品组合,将WFI32E01PC模块与其他Microchip的领先器件配对,可简化物联网和工业物联网系统。这些领先的器件包括KSZ8081以太网PHY系列,MCP2542WFD CAN收发器系列,传感器和包括蓝牙®低功耗(BLE)、远程(LoRa)和IEEE® 802.15.4在内的无线技术等。Microchip的系统解决方案方法提供即时可用的软件驱动程序和硬件参考设计,能显著降低项目风险,缩短产品上市时间。
“有了我们这个模块,客户不再需要双元件的设计结构,不需要学习多个软件的SDK,只要学习我们的SDK就行了。此外,客户也不需要跟多个供应商打交道,Microchip可以从设计到生产给客户提供一站式的服务”,Alex Li最后说。
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第2463期内容,欢迎关注。
晶圆|IP|SiC|并购|射频|台积电|Nvidia|苹果
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程序设计,基本就完成了。
大家如果有什么想做的,或者有什么想法,都可以评论区留言告诉超子哦~~~
想要程序的小伙伴,可以举手哦~~~
相关问答
单片机wifi模块 怎么连接手机?单片机通过WiFi模块连接手机主要有以下几种方式:1.直接连接通信:手机和WiFi模块需要在较近的距离内,两者应在通讯范围之内。类似于手机连接WiFi热点的操作,...
如何用 单片机 通过 wifi模块 发送大量数据给服务器?单片机通过wifi模块发送数据给服务器,单片机需要有服务器的IP地址和接收数据的服务端口号,单片机通过wifi模块与服务器连接后(连接方法可以用TCP连接...
ESP8266 WIFI模块 CP2102 ESP-12E,怎么和51 单片机 物理连接?ESP8266WIFI模块可以通过串口与单片机连接,注意模块电源为3.3V,通过编程给模块进行初始化设置,可以透传模式运行。ESP8266WIFI模块可以通过串...
单片机 加 WiFi模块 怎么做到连接校园WiFi、拨号连接、并放出WiFi热点?1.目前市面上还没见到WiFi模块可以拨号上网的这个我目前见到的都是用无线账号密码连接热点,然后上网。另外也没见到有无线路由可以不接网线进行拨号连接的...
如何用C语言实现用无线 模块 在两个 单片机 上通信?这个涉及的就比较多了。通常单片机通过串口和WIFI模块通信,难点是网络通信部分。首先要确定服务端和客户端。如果电脑做服务端就要写个程序监听一个端口(也有...
单片机 上网, 单片机 如何连接到无线网络,并且能发送和接收数据?某宝上WIFI模块很多,可以通过单片机串口发送AT指令实现网络通信,但是效率不高某宝上WIFI模块很多,可以通过单片机串口发送AT指令实现网络通信,但是效率不高
esp8266 wifi模块 连接 单片机 的哪个接口?ESP8266WiFi模块可以通过串口(UART)连接到单片机。在使用ESP8266时,通常需要交替运行AT指令和数据传输两种模式。其中,用于发送AT指令和调试信息的串口为串...
单片机 数据怎么通过 WiFi 传输到手机上?可以通过WiFi模块将单片机数据传输到手机上。因为WiFi模块可以实现无线通信,通过连接单片机和手机的WiFi模块,可以建立通信通道,将单片机采集到的数据通过WiFi...
无线串口模块有哪些,串口 wifi模块 怎么使用呢?像WiFi模块、BLE蓝牙模块都是属于无线串口模块,串口WiFi模块一般会集成射频电路、MAC地址、WIFI驱动和协议、无线安全协议等。利用串口WiFi模块,用户可以实现...
esp-01如何通过 wifi 控制?您好,ESP-01可以通过以下步骤通过WiFi控制:1.将ESP-01与电脑连接并上传固件,例如ArduinoIDE或MicroPython。2.使用WiFi模块将ESP-01连接到WiFi网络...