
物联网(Internet of Things,IoT)是指通过各种物联设备(包括传感器、智能设备、嵌入式设备等)与互联网进行连接和通信,形成互联互通的网络,实现设备之间的信息交换、数据共享和智能化控制,以实现更高效、更智能、更便捷的生产、生活、管理等应用。
物联网的基本概念包括以下几个方面:
物联设备:指通过各种传感器、智能设备、嵌入式设备等实现连接和通信的物品。这些设备可以获取、处理和传输各种数据,实现物与物、人与物的交互。
互联网:指用于连接各种物联设备的底层网络基础设施,包括传输介质、网络协议、路由器、交换机等。
云计算:指利用云端的计算和存储资源,为物联网提供数据分析、处理、存储和应用服务的技术。
数据分析:指对从物联设备中收集到的大量数据进行处理、分析和挖掘,从中获取有用信息,为决策提供支持。
应用服务:指基于物联网提供的各种数据和功能,实现各种智能化应用服务,包括智能交通、智能家居、智能制造、智能医疗等。
安全和隐私保护:指对物联网中的数据和信息进行安全和隐私保护,防止黑客攻击和数据泄露等安全问题。
3 Kittenblock中快速上手IOT31 加载IOT插件
插件已经成功加载:
32 建立IOT本地服务器
我们重新复习下MQTT物理模型:
1首先物联网肯定有一台服务器。不然那些要联网的设备把接收到的数据发给谁呢?服务器的作用就是接收数据,处理数据,分发数据
2多个联网的设备。它们的作用就是给服务器发送数据,或者接受服务器的数据。
本节实验,我们用我们的Kittenblock将本机电脑设置为IOT本机服务器,并且本机也作为一个联网的客户端,对服务器进行消息发送
为了方便学校上课场景(连接外网服务器不方便),我们可以直接通过Kittenblock后台建立起IOT本地服务器。
刚建立器IOT本机服务器,设备列表是空的,当然因为没有设备连接到本地服务器上
33 连接服务器
拖拽积木,设备的ID名称可以自由填写,这个名称是显示在服务器上的
更改完信息后,记得点击下积木块,才会执行这条指令
回到本地服务器的列表查看,可以看到设备CCFIVE已经连上上服务器了
34 订阅话题
设备已经与服务器成功连接后,我们需要进行话题订阅,话题的形式一般是“/”+英文,当然不用“/”也是OK的
回到本地服务器的列表查看,可以看到设备CCFIVE已经订阅了"/hello"的话题
35 话题广播与接收
因为我们现在只有一台设别,所以话题我们自己发送自己接收,我们写一个接收程序,让舞台的小喵说出来
话题发送与接收
现象结果:
36 多台电脑MQTT相互通讯
如果你的实验环境下有多台设备,不妨将多台设备都连接到同一个服务器上,例如下图电脑A、B、C都连接到1921680117上,然后对应向共同的话题推送消息,这时候其它设备如果也订阅了这个话题,它也会收到消息更新。
BC35-G 是一款高性能、低功耗的多频段 NB-IoT 无线通信模块,支持 B1/B3/B8/B5/B20/B28 频段,在设计和AT指令上与BC95兼容。
小熊派开发板右上角的开关拨到AT-PC一端,则模组直接与PC相连,方便调试。
指令:AT
功能:测试AT指令功能是否正常
示例:
指令:AT+CSQ
功能:返回从 UE 接收到的信号强度指示 <rssi> 和信道误码率 <ber> ,其中第一个值rssi应当在0-31之间,如果为99则表示信号无法检测,第二个参数ber因为模组当前不支持,所以始终为99。
示例:
指令:AT+CEREG
功能:查询当前 EPS 网络注册状态,该指令返回的第一个参数为0则表示禁止网络注册URC,第二个参数表示网络注册状态,1表示已注册本地网,5表示已注册漫游网络,其余值则表示注册失败。
示例:
指令:AT+CGATT
功能:该命令用于查询当前是否将 UE 附着于 PS 域,返回值为1则表示已附着,即网络激活成功。
示例:
指令:AT+CGPADDR
功能:该命令用于查询模组当前的ip地址。
示例:
由于NB-IoT模组可以直接对接IoT平台,所以在单独测试使用UDP连接时,需要 在激活网络成功之后,在获取ip地址之前,关闭IoT平台注册功能 。
使用如下命令禁止该功能:
首先我们需要搭建一个UDP服务器,有两种方式:
因为 NB-IoT 模组直接注册的是公网ip地址,所以这里我们使用第一种方式,在Linux服务器上运行一个Python编写的UDP测试服务器:
这里的Python程序如下:
运行:
效果如下:
使用AT命令连接UDP服务器,首先需要创建一个 UDP 类型的 Socket,创建socket的指令如下:
其中第一个参数是socket类型,DGRAM表示UDP,STREAM表示UDP;第二个参数表示协议类型,UDP 为 17, UDP 为 6,最后一个参数指定socket使用的本地端口,如果为0则表示随机分配。
所以创建UDP socket的示例如下:
指令:
其中第一个参数是由 AT+NSOCR 返回的 Socket 编号,第二个参数是UDP服务器ip地址,也可以使用域名,第三个参数是UDP服务器开启监听的端口,第四个是发送数据的长度,最后一个是要发送的十六进制数据。
示例:
发送之后,在服务器端也可以看到:
模组发送数据到服务器后,服务器会自动发送消息,模组会打印出收到信息的提示:
该信息表示编号为1的socket收到了18字节的数据。
可以使用如下命令查看收到的数据,第一个参数是socket编号,第二个参数是查询的数据长度:
查看刚刚收到的数据:
其中收到的数据为倒数第二个参数,是十六进制格式:
使用 在线工具 将数据转化为字符串即可:
通信完毕之后,可以使用下面的命令关闭最开始创建的socket:
示例:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)