RaspberryPi(二) SIM7020C NB-IoT MQTT通信 树莓派4B

2023-05-16

主处理器:树莓派4B
服务器:阿里云轻量级服务器
MQTT代理服务器:
apollo 具体搭建链接:https://blog.csdn.net/ddxxii/article/details/80890293?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158757431019725211921004%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=158757431019725211921004&biz_id=0&utm_source=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-1

使用模块:微雪电子SIM7020C
这款为NB-IoT模块,但官方文档和微雪示例十分不友好,踩了很多坑
mqtt-apollo操作界面:Eclipse paho
具体AT指令

以上为微雪示例
以上为微雪示例,在我的案例中,需要更改第二条,第四条
AT+CMQCON=0,3,“myclient”,6000,0,0,“admin”,“password” 需要加入admin和password,不加的话无法连接。

AT+CMQPUB=0,“test”,0,0,0,3,“111”
这一条需要注意字符长度和前面设置的长度要一致才能发送,官方文档有说明在这里插入图片描述
在编程时,可以先判断数据长度,之后再发送,这个可以实现数据的连续发送。
具体程序如下:

import struct, os
import serial
import time
import re
import sys
longitude = "35.923212"
a = len(longitude)

print(a)
ser = serial.Serial("/dev/ttyUSB0",115200,timeout = 1)
def reboot():
        print("Waiting for module\n")
        time.sleep(1)
        comdata = ""
        ser.write(("AT\r\n").encode('utf-8'))
        while (comdata.find("OK")== -1):
                time.sleep(0.1)
                while (ser.inWaiting()>0):
                        comdata = ser.read(ser.inWaiting())
                        comdata = comdata.decode("ascii")
                        comdata = comdata.strip()
                        print(comdata)
                        if (comdata.find("ERROR")==-1):
                                continue
                       
        print("Sim7020c Start Succeed! \n")
        return

def connect_mqtt():
    print("connect new MQTT")
    time.sleep(1)
    comdata = ""
    ser.write("AT+CMQDISCON=0\r\n".encode('utf-8'))
    time.sleep(1)
    ser.write('AT+CMQNEW="182.92.56.252","61613",12000,100\r\n'.encode('utf-8'))
    while (comdata.find("OK")==-1):
                time.sleep(0.1)
                while (ser.inWaiting()>0):
                        comdata = ser.read(ser.inWaiting())
                        comdata = comdata.decode("ascii")
                        comdata = comdata.strip()
                        print(comdata)
def send_mqtt():
    comdata = ""
    ser.write('AT+CMQCON=0,3,"myclient",6000,0,0,"admin","password"\r\n'.encode('utf-8'))
    while (comdata.find("OK")==-1):
                time.sleep(0.1)
                while (ser.inWaiting()>0):
                        comdata = ser.read(ser.inWaiting())
                        comdata = comdata.decode("ascii")
                        comdata = comdata.strip()
                        print(comdata)
def send_topic():
    comdata = ""
    ser.write('AT+CMQPUB=0,"test",1,0,0,"{}","{}"\r\n'.format(a,longitude).encode('utf-8'))
    time.sleep(1)
    while (comdata.find("OK")==-1):
                time.sleep(0.1)
                while (ser.inWaiting()>0):
                        comdata = ser.read(ser.inWaiting())
                        comdata = comdata.decode("ascii")
                        comdata = comdata.strip()
                        print(comdata)                       
reboot()
connect_mqtt()
time.sleep(0.5)
send_mqtt()
time.sleep(0.5)
send_topic()

此为测试程序,仅供参考。
成功示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
阿里云服务器:

在这里插入图片描述
至此,使用树莓派4B连接NB-IoT模块(SIM7020C)与MQTT服务器通信实现数据上传云端全部完成。
波特率在变,要改波特率!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RaspberryPi(二) SIM7020C NB-IoT MQTT通信 树莓派4B 的相关文章

  • AWS IOT 连接在 IPAD OS v12.1.1 上关闭

    当我们在 ios 版本 12 1 1 上使用 wss 协议连接到 AWS IoT 时 我们能够成功连接到 IoT 但立即我们可以看到 IoT 触发 onError 事件 然后连接关闭 它尝试再次重新连接 但没有任何运气 我们从 IoT 得到
  • 输入图像中的通道数无效

    我在运行程序时收到错误 我特别考虑了 OpenCV 库中的颜色操作 我正在尝试构建一个程序 从 Raspberry Pi 摄像头获取视频并对其进行分析 我想找到视频中最亮的点 并计算该点距视频源中心的距离和角度 我正在做的项目将相机指向一个
  • MQTT:如何知道 puback 是针对哪条消息的?

    我正在尝试设置一个 MQTT 服务器 它将客户端发送的消息保存到本地数据库中 每条消息都有一个 成功接收 标志 当接收客户端为收到的每条消息 QOS 1 返回 puback 时 我想翻转该标志 问题是 当我发布消息时 服务器正确接收从接收客
  • 无需登录即可启动Raspberry Pi [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想问你是否有任何方法可以启动树莓派 使用Raspbian 而无需登录和密码并直接进入GUI 以 Windows 为例 拉斯布比喘息 以下
  • Raspbian 的软浮动版本无法启动

    我在这里下载了 Raspbian 的硬浮动图像 http www raspberrypi org downloads http www raspberrypi org downloads 我将推荐的硬浮动映像复制到 SD 卡上 并且 Ras
  • Raspberry Pi 4 上的 .Net Core 和 Raspbian?

    是否可以安装 Net Core树莓派4 with Raspbian 我发现了一些关于 Raspberry Pi 3 上的 Net Core 的说明 例如 https github com dotnet core blob master sa
  • 视频馈送至 ThingsBoard 仪表板

    我目前使用 ThingsBoard 作为 IoT 代理来捕获来自多个传感器的遥测数据并将其显示到仪表板 我想添加显示来自 iPhone 相机或网络摄像头的实时视频源的功能 我想知道这里是否有人知道 ThingsBoard 是否支持任何类型的
  • MySQL 服务器无法在 Raspberry Pi 上启动 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在使用运行 Debian Linux 的 Raspberry Pi 我正在尝试安装 MySQL 服务器并运行它 这是我所做的 sudo
  • 如何在 Amazon AWS Lambda 函数中发布到 MQTT 主题?

    我想要一个简单的命令 就像我在 bash 中使用的那样 将某些内容发布到 AWS Lambda 函数内的 MQTT 主题 沿着以下思路 mosquitto pub h my server com t 灯 设置 m 开 背景 我想用 Alex
  • 如何在 Raspberry Pi 上安装 PhantomJS 以便与 Python Selenium 一起使用?

    我想使用运行 Python 脚本Selenium WebDriver with PhantomJS作为我的无头浏览器树莓派运行 Raspbian 我最初在 OS X 中编写了该脚本 它运行良好 但在尝试让它在树莓派上工作时 我遇到了问题 当
  • 如何在 Android 的这个特定用例中实现 MQTT?

    我的用例 登录到我的应用程序的用户应该能够向在另一台 Android 设备上登录到该应用程序的自己发送消息 如果用户拥有多个设备 那么一旦他打开该消息 其他设备上的通知必然会消失 Doubts 如何跨设备向特定用户发送数据 我了解如何使用
  • 请求/响应的 MQTT 主题名称

    我正在设计一个包含许多设备的系统 使用 MQTT 连接到中央代理 有些主设备可以向某些从设备发送请求 来自一台主机的请求通常会发送给一台从机 请求的主题可以是 mysystem slaveId req 因此从站可以订阅该主题 并且主站可以发
  • OPC-UA 的替代方案 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 作为访问由各种 PLC 组成的系统的过程数据的解决方案 是否有 OPC UA 的合适替代方案 独立于平
  • 使用 libx264 为 Raspberry pi 编译 Xuggler 时的问题 #2

    我正在尝试编译Xuggler http www xuggle com xuggler 对于 Raspberry Pi 在 Debian 操作系统上运行 又名 Raspbian 我遵循了可用的 基本构建说明 here http www xug
  • 如何删除树莓派的相机预览

    我在我的 raspberryPi 上安装了 SimpleCv 并安装了用于使用相机板的驱动程序 uv4l 驱动程序 现在我想使用它 当我在 simpleCV shell Camera 0 getImage save foo jpg 上键入时
  • 加特林负载测试期间编译错误

    我正在尝试编写一个模拟 并且希望能够运行该模拟 我在尝试 mvn gatling execute 时遇到错误 我的 pom 有以下依赖项
  • 没有名为“picamera”的模块

    我关注了这个网站 https www pyimagesearch com 2015 03 30 accessing the raspberry pi camera with opencv and python https www pyima
  • 如何从 NodeJs 调用 python 脚本

    我需要在 NodeJs 中调用这个 python 脚本 Read py usr bin env python coding utf8 import RPi GPIO as GPIO import MFRC522 import signal
  • NMCLI 设备不可用

    我正在尝试在 ubuntu core 16 04 上配置带有蜂窝接口的新设备 我有 NMCLI 包在上面运行 在添加连接之前 我检查了接口 nmcli dev DEVICE TYPE STATE CONNECTION eth1 ethern
  • 使用 mosca MQTT 的请求响应模式

    有没有办法使用 mosca MQTT 实现请求响应模式 以 检查客户端的回复 如果在预期时间内未收到预期回复 则重新发布 我相信这在 Mqtt 5 中是可能的 但截至目前 我必须使用 QoS 1 的 Mosca 代理 支持直到 Mqtt 3

随机推荐

  • 4.中断与串口【七天物联网智能家居训练营】

    本文是百问网七天物联网智能家居训练营学习笔记 xff0c 官网链接 1 中断 我们先来看一下什么是中断 xff1a 其实这种就是前后台的程序设计模式 我们来看下CM3内核都有哪些中断 xff0c 如下表 xff1a 对于CM3内核的单片来说
  • APT Hash sum mismatch错误的常见解决方法总结

    APT Hash sum mismatch错误的常见解决方法总结 LINUX报这个错误的时候 xff0c 有很多的原因 xff0c 通常是出现在使用apt get update的时候 xff0c apt 的全称是Advanced Packa
  • 安装Nvidia驱动run文件

    本文系转载 xff0c 出处 xff1a https blog csdn net lhx 998 article details 76135936 下载指定NVIDIA驱动安装包 xff08 run格式 xff09 run格式文件安装有时比
  • 5.AT指令【七天物联网智能家居训练营】

    本文是百问网七天物联网智能家居训练营学习笔记 xff0c 官网链接 1 ESP8266 本文要使用的wifi模块为ESP8266 xff0c 我们直接使用官方提供的固件即可 xff0c 无须单独开发 直接通过串口和wifi模块进行通信 xf
  • 6.编写初步程序【七天物联网智能家居训练营】

    本文是百问网七天物联网智能家居训练营学习笔记 xff0c 官网链接 1 程序流程回顾 先来回顾下TCP连接的流程 xff1a 下面看下UDP连接的流程 xff1a 整个程序的框架如下 xff1a 2 代码实现 这里我们使用串口2来操作 xf
  • 7.进一步完善程序【七天物联网智能家居训练营】

    本文是百问网七天物联网智能家居训练营学习笔记 xff0c 官网链接 1 增加UDP发送函数 再来回顾下UDP发送的流程 xff1a 对于AT指令来说 xff0c 只是使用的具体指令不同而已 和TCP发送函数非常类似 xff0c 代码如下 x
  • ubuntu16 PL-SLAM编译 踩坑

    首先贴出pl slam readme的第一句话 xff1a 对pl slam的精度不要有太高要求 Notice that this repository is only an open source version of PL SLAM r
  • ROS kinetic 运行s_msckf和 vins_fusion

    s msckf xff1a 采用多状态约束的双目vio系统 注意 imuCallback xff1a 接收IMU数据 xff0c 将IMU数据存到imu msg buffer中 xff0c 这里只会利用开头200帧IMU数据进行静止初始化
  • 服务器查看配额限制: OSError: [Errno 122] Disk quota exceeded

    OSError Errno 122 Disk quota exceeded 是因为磁盘配额不够了 xff0c 即磁盘已满或超出了用户所能使用的配额上限 可以通过如下命令查看配额限制和已经使用的配额 xff1a quota uvs usern
  • colmap 已知pose 重建 kitti数据尝试

    Frequently Asked Questions COLMAP 3 7 documentation COLMAP已知相机内外参数重建稀疏 稠密模型 thronsbird 博客园 Colmap根据相机内外参数重建稀疏模型 m0 47677
  • Umap与 t-sne可视化CNN特征

    考虑到umap 比 t sne快 xff0c 而且全局结构更好 demo网站 Understanding UMAP doc xff1a https github com lmcinnes umap How to Use UMAP umap
  • nn.AdaptiveAvgPool2d() 与 nn.AvgPool2d() 模块的区别

    nn AdaptiveAvgPool2d 与 nn AvgPool2d 模块的区别 jinfeng2411的博客 CSDN博客 nn adaptiveavgpool
  • dataloader卡住

    pin memory 知乎 dataloader卡住 xff01 xff01 xff01 只会git clone的程序员的博客 CSDN博客 dataloader 卡死 PyTorch 训练时中遇到的卡住停住等问题 yyywxk的博客 CS
  • OpenCV单目视觉定位(测量)系统(新增 含代码)

    OpenCV单目视觉定位 xff08 测量 xff09 系统 The System of Vision Location with Signal Camera Abstract This passage mainly describes h
  • 异常检测——深度学习异常检测经典算法最终篇

    本文转载自 xff1a https blog csdn net smileyan9 article details 106587227 异常检测 从经典算法到深度学习 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3
  • Hbase2.1.0启动失败解决方案积累

    当前CentOS xff0c JDK和Hadoop版本 xff1a span class token punctuation span root 64 master span class token operator span span c
  • 7-2 求二叉树的叶子结点个数 (20分)

    以二叉链表作为二叉树的存储结构 xff0c 求二叉树的叶子结点个数 输入格式 输入二叉树的先序序列 提示 xff1a 一棵二叉树的先序序列是一个字符串 xff0c 若字符是 表示该二叉树是空树 xff0c 否则该字符是相应结点的数据元素 输
  • 7-5 IP地址转换 (20分)

    一个IP地址是用四个字节 xff08 每个字节8个位 xff09 的二进制码组 96 成 请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出 输入格式 xff1a 输入在一行中给出32位二进制字符串 输出格式 xff1a 在
  • Matlab读取csv文件绘制三维图

    a span class token operator 61 span span class token function xlsread span span class token punctuation span span class
  • RaspberryPi(二) SIM7020C NB-IoT MQTT通信 树莓派4B

    主处理器 xff1a 树莓派4B 服务器 xff1a 阿里云轻量级服务器 MQTT代理服务器 xff1a apollo 具体搭建链接 https blog csdn net ddxxii article details 80890293 o