大家好,这里是超易用的物联网硬件方案M5Stack。 今天为大家带来的是关于这款可编程物联网控制器IoT-BASE-NB的介绍。它是一款专门针对物联网NB-IoT数据传输场景设计的一款功能底座。 套件中主要包含IoT-BASE-NB底座、核心主控BASIC、胶棒天线、NB-IoT流量卡、导轨固定底板和12V DC电源适配器。 首先来看一下这个底座,在他正面的电路板丝印层上标注了接口信息,右侧这个排插是用来连接主控模块BASIC或CORE2以配合使用。在这里标注了这个模块NBIoT、RS485和PortC的引脚接口,我们需要留意一下NBIoT的收发和使能接口分别是35、0和12,一会编写UIFlow程序时需要使用到。 在底座的上面这里是一个SMA天线接口,用于连接胶棒天线,此外,电源输入口也在这边,这个接口支持9-24V交流电输入。我们可以使用配件中的适配器为模块供电。 左侧这里有三个4 Pin的Grove拓展接口,分别是Port A B和C,从正面的电路板丝印层或者左侧的贴纸上可以看到这些接口的相关信息。使用这些接口连接拓展模块时,不要忘记设置模块连接到对应的引脚。 下面这里有一个RS485接线座子,用于连接485拓展设备,还有一个2 Pin的锂电池拓展接口,同样的我们可以从正面电路板和底部的贴纸上查看他们的具体信息。 右边这一侧有一个SIM卡插槽,套件中的流量卡就放在这个地方,电路丝印层这里标注了流量卡插入的方法,大家不要插反了。 最后,背面这里是一些机械固定部分,配合套件中的拓展底板后,还可以进行更多的结构拓展。 现在我们连接上套件中的主控模块BASIC就可以开始对这个模块开发了。 【配置连接】 首先,我们使用Type C数据线将主控模块连接至电脑串口,通过固件烧录软件M5Burner将BASIC配置为Internet Mode。配置成功后,BASIC的LCD屏幕上会出现模块的密钥,在左上角会显示绿色的网络连接标识。 配置好后,这个模块就可以不再连接电脑,在外置电源供电下工作。 在浏览器打开这个网址(https://flow.m5stack.com/)进入在线开发平台UIFlow,在这个平台编程开发前,我们还需要使平台连接到设备。 点击页面左下角的API Key,在弹出的Setting页面填入设备的密钥,并在第三行选择设备的类型为Core BASIC也就是第一个。 点击OK确认设置后,左下角API Key的旁边出现绿色的【connected】标识,说明UIFlow平台与设备连接成功。 这样,我们就能在这个平台使用这些程序块对设备进行编程开发了。 【编程开发】 1. Block简介 我们可以在Modules下的COM.X分类下的NB-IoT中找到对于这个底座IoT-BASE-NB的相关程序块。 这里有主要有对模块设置、使用CoAP协议通信和MQTT协议通信三大类程序块。而在最上面点击这个CoAP test可以查看使用CoAP协议通信的示例。 2. MQTT简介 今天我使用MQTT协议来与服务器通信,在之前介绍ATOM DTU NB时就提到过,MQTT就是Message Queuing Telemetry Transport,消息队列遥测传输协议。是基于发布(publish)和订阅(subscribe)模式的通讯协议。我们可以通过订阅一个主题来接收这个主题里发布的内容,同样,也可以向一个主题发布内容。这样就能实现连接到同一个服务器的不同设备通过订阅主题或发布主题和内容实现通信交互。 3. 模块设置 在进行MQTT设置之前,我们需要先设置模块。 还记得在底座电路丝印层上标注的NBIoT使能和通信引脚吗?依次是12、35和0,我们先从Hardware下的Easy I/O中拉取digital write pin value 的程序块,将NBIoT使能引脚12设置为1。 然后,依次拉取Modules/COM.X/NB-IoT中的Init NB-IoT Tx Rx和Reset module这两个程序块,将初始化NB-IoT程序块的收发引脚Tx和Rx分别设置为0和35。 再从同样的分类下,依次拉取这三个程序块,配合循环和逻辑程序块,保证模块在网络连接稳定后再进行通信。 好了,以上的程序块能够就能使设备初始化,并能检测设备网络状况是否稳定。 4. MQTT设置 接下来就可以开始使用MQTT相关的程序块进行MQTT的设置了。 第一步需要连接到服务器。使用程序块MQTT connect server,前两行依次填入服务器和通信端口,下面的三行可以自己定义。 此外还需要使用到程序块MQTT poll downlink message放在无限循环里面,用于保证上下行链路信息的传输。 现在,MQTT也设置好了,我们可以使用MQTT subscribe topic和MQTT subscribe callback这两个程序块订阅主题和接收主题发布的信息。也可以通过程序块MQTT publish topic发布主题和信息。 5. 拓展开发 为了方便演示,我将使用到拓展模块FAN,实现服务器端通过发布指令控制风扇的开和关,BASE IoT模块执行对应操作后,向主题做出回应。连接上FAN模块后,在UIFlow点击“+”添加FAN模块,然后将引脚更改为贴纸上标注的引脚号。 我将使用第三方MQTT调试工具,在这里新建一个连接,填入同样的服务器地址之后,连接至服务器,然后发布一个主题。 回到UIFlow这边,使用订阅主题的程序块,订阅调试工具上发布的主题,然后监听这个主题。在接收到主题发布的内容后,将内容与开关风扇的指令ON和OFF进行对比,如果相同,那么我们将控制风扇运行或停止,并且再通过发布主题和信息的程序块向同一个主题发布回应。 好了,程序像这样之后检查一下,没有问题就点击右上角的三角运行图标,将程序推送至设备运行。 现在我们在调试软件这里在主题内发布ON和OFF以控制风扇的开与关了,并且在模块执行对应操作后,调试软件这边主题里还会收到对应的回应。 好了,关于IoT-BASE-NB的介绍就先到这里,大家快一起动手尝试一下吧。
【相关链接】 抖音: Bilibili:
|