基于UDP上传数据到阿里云

简介: 本文主要实现利用NB-IoT技术实现基于UDP协议的数据传输。

硬件平台:

BC95-B5 ,在淘宝上购买即可,可以直接购买模块,然后自己利用USB转串口接到PC上。也可以购买有MCU地板的,本人购买的是基于MSP430地板的开发板,不需要自己接USB转串口工具,当然价格会贵一些。

软件平台:

由于本文只是实现简单的数据收发,不需要跑MCU程序,所以主要用的工具是 NB-IoT QNavigator 工具,读者可去网上自行下载。之前我使用串口直接发AT指令,比较麻烦,因为在正式使用nb模块发数据之前,需要一些指令进行配置。使用 NB-IoT QNavigator ,该软件内置了很多指令,比如创建套接字这些指令,都是自动配置好的,相当方便。

云平台:

阿里云。去阿里云官网购买一个最便宜的ECS,预装ubuntu14,当然也可以选择其他系统。使用云服务器的一个好处就是只要购买看ECS,以后可以随便更换系统,几分钟就可以搞定。主要在购买的时候,选择专有网络,不要选择经典网络,这是方便后面安全组的设置。

NB专用卡:

可以通过电信运营商购买,移动也有。 在上面的条件都满足下来后,可以进行下面的操作:

步骤一:

在阿里云上运行一个UDP服务器程序(参见博客后面),主要实现接受数据并将数据返回的功能,需要设置服务端的UDP端口号,我这里设置为3001,然后使用gcc指令编译程序。在运行程序之前,需要先在阿里云的ECS的安全组中将3001端口放行(参见图1),如何添加安全组规则可以参考阿里云的安全组相关文档。设置好安全组之后,运行UDP服务器程序。这里可以先使用tcp/udp socket调试工具,建立一个UDP客户端(参见图2),选择ECS的IP地址和你所设置的端口号,进行数据测试,如果通信成功,说明服务器运行正常,可进行下一步操作。

image.png
图1 安全组设置

image.png
图2 udp调试

步骤二:

将开发板通过USB线插入PC,打开 NB-IoT QNavigator ,点击Connect to module.就会自动连接。这一步会出现很多问题,这些问题多数与你的模块所在地有没有信号覆盖有关,如果你所在地没有基站,你的模块就无法附着,也就无法通信。初始化完成之后,可以看到模块的相关信息和卡的相关信息。如图3。如果一直无法注册到网络,试一试换一个位置,或者将开发板举高一点,因为这一步需要有NB信覆盖。

image.png

步骤三:

点击 NB-IoT QNavigator左侧的UDP,将阿里云服务器的IP地址和dup服务器的端口号填入,点击连接。如图4.
image.png

连接成功后,发送数据123456789,在接收端会收到313233343536373839.数据通过NB模块将发送到阿里云服务器,然后服务器将数据发回来。 至此,利用NBIoT技术完成了数据传输。

文章来源:芯片开放社区
原文链接:https://occ.t-head.cn/community/post/detail?spm=a2cl5.14300636.0.0.1b87180fT4mSjg&id=3805698204625408000

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
存储 Python
Python网络编程基础(Socket编程) UDP 发送和接收数据
【4月更文挑战第10天】对于UDP客户端而言,发送数据是一个相对简单的过程。首先,你需要构建一个要发送的数据报,这通常是一个字节串(bytes)。然后,你可以调用socket对象的`sendto`方法,将数据报发送到指定的服务器地址和端口。
|
Python
143 python网络编程 - UDP发送、接收数据
143 python网络编程 - UDP发送、接收数据
75 0
|
开发者 Windows Python
Udp 发送数据 | 学习笔记
快速学习 Udp 发送数据
Udp 发送数据 | 学习笔记
|
6月前
|
网络协议
网络编程-UDP协议(发送数据和接收数据)
网络编程-UDP协议(发送数据和接收数据)
|
5月前
|
Java 程序员 Linux
网络编程套接字(3)——Java数据报套接字(UDP协议)
网络编程套接字(3)——Java数据报套接字(UDP协议)
49 0
|
6月前
|
网络协议 数据格式
|
Python
【从零学习python 】73. UDP网络程序-发送数据
【从零学习python 】73. UDP网络程序-发送数据
65 0
|
6月前
|
网络协议 Java
Java——UDP数据报
Java——UDP数据报
54 0
|
Ubuntu Python Windows
142 python网络编程 - UDP发送数据
142 python网络编程 - UDP发送数据
62 0
|
缓存 网络协议 Shell
网络协议格式 | 以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报
网络协议格式 | 以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报
147 0