实验三:基于物联网通信协议的船舶AIS数据传输

实验三:基于物联网通信协议的船舶AIS数据传输

1 . 实验 目的

模拟一个物联网数据采集与传输场景:

  1. 使用软件模拟一个或多个船舶AIS数据源。
  2. 分别编写MQTT客户端和CoAP客户端程序,将这些模拟数据发布到相应的云服务器。
  3. 编写对应的数据订阅者/观察者客户端,从云服务器接收并显示AIS数据。
  4. 对比分析两种协议在AIS数据传输中的特性。
  1. 实验 过程

1.实验资源下载

AIS数据处理库:

包名: pyais

功能: 支持AIVDM/AIVDO消息解码,支持单条消息、文件、TCP/UDP套接字接收与解码

安装: pip install pyais

AIS数据源:

机构: 挪威海岸管理局(Norwegian Coastal Administration)

协议: TCP/IP 套接字访问

特点: 免费、无需注册、实时数据流

编码标准: IEC 62320-1

地址/端口: 需查阅官方文档(示例代码中隐含)

2.test部分

第一步:获取实时AIS数据

安装pyais库

运行示例代码(来自pyais官方示例),建立TCP连接接收挪威海岸管理局的实时AIS数据流

验证数据接收与解码是否正常

3.public部分

第二步:搭建MQTT通信环境

安装paho-mqtt库

编写简单MQTT发布者与订阅者示例代码:

发布者:向指定topic推送消息

订阅者:从相同topic接收消息

使用免费公共Broker测试通信是否正常

4.联动部分

第三步:结合AIS数据与MQTT实现中继

修改AIS数据接收代码,将接收到的每条AIS消息作为MQTT payload

设置自定义topic名称(避免与其他用户冲突)

在发布者代码中添加适度延迟(如time.sleep())以避免免费Broker丢包

运行订阅者代码,验证是否能接收到中继的AIS数据

可优化订阅者为单次运行模式,避免Broker性能问题导致消息堆积

三.实验总结:

本次实验成功实现了从挪威海岸管理局获取实时AIS数据,并通过MQTT协议进行数据中继。实验者掌握了:

使用pyais库接收与解码AIS数据

使用paho-mqtt库建立MQTT发布-订阅通信

将AIS数据流与MQTT结合,实现从TCP点对点传输到发布-订阅模式的转换

了解了免费公共Broker的性能限制及优化方法

该实验为构建基于AIS的船联网数据中继系统奠定了基础,适合进一步扩展为多用户、高可靠性的船舶数据分发平台。

相关推荐
Zhao136824553915 小时前
国产替代DPE5500百兆以太网控制芯片兼容W5500
嵌入式硬件·物联网
microrain6 小时前
同一个寄存器,四种读法:SagooIoT Modbus 驱动的字节序、宽度与功能码
物联网·golang·开源·sagooiot
智圣新创018 小时前
教育数据要素流通刚需下 智圣新创高校数据中台解决方案的全域建设落地框架
大数据·人工智能·物联网
DS小龙哥9 小时前
从呼吸心率到离床报警:60G雷达睡眠仪全栈开发实录(硬件+MQTT+小程序)DIY一台全功能睡眠监护仪
stm32·单片机·嵌入式硬件·物联网·小程序·智能家居
LiuYanG10 小时前
MQTT 客户端反复重连怎么办?Spring Boot 接 EMQX 断线重连踩坑实录
spring boot·物联网
常州晟凯电子科技12 小时前
sigmaStar SSC8836Q/SSC8826Q开发笔记之环境搭建和SDK编译
笔记·嵌入式硬件·物联网·视频编解码
沐欣工作室_lvyiyi13 小时前
基于ML307A物联网通信技术在智能家居中的应用研究(论文+源码)
物联网·智能家居·ml307a 4g通信模块
华允物联-HUAIOT1 天前
LoRa通信距离一般多远?影响因素与实际测试方法
物联网
YCOSA20251 天前
雨晨 Windows 11 IoT 企业版 Edge 轻装 VCDX 29680.1000
windows·物联网
lzqrzpt1 天前
临沂LED驱动电源工程选型标准与工艺对比解析
python·单片机·嵌入式硬件·物联网