python - 我有个问题。使用 RPI 和 CAT.M1(BG96) 在 aws iot MQTT 上使用 AT COMMAND 进行通信
问题描述
谢谢你看我的问题。
我使用 RPI 和 CAT.M1(BG96)。两个设备连接UART(ttyS0)。
所以我使用这个来源。(https://github.com/codezoo-ltd/CAT.M1_RaspberryPi)
from CZCATM1.CATM1 import CATM1
import time
import RPi.GPIO as GPIO
node = CATM1()
print( "RPI3 Modem Power PIN: " + str(node.getPwrPinNum()) )
print( "RPI3 Modem Status PIN: " + str(node.getStatusPinNum()) )
print("AT: " + node.sendATCmd("AT", "OK\r\n"))
print("ATE0: " + node.sendATCmd("ATE0", "OK\r\n"))
print("IMEI: " + node.getIMEI())
print("FW Ver: " + node.getFirmwareInfo())
print("HW model: " + node.getHardwareInfo())
print("Phone Number: " + node.getPhoneNumberInfo())
time.sleep(2)
#program End
GPIO.cleanup()
并且我更改了 aws iot MQTT 的用途。
from CZCATM1.CATM1 import CATM1
import time
import RPi.GPIO as GPIO
node = CATM1()
print("AT: " + node.sendATCmd("AT", "OK\r\n"))
print("AT+QMTCFG: " + node.sendATCmd("AT+QMTCFG=\"SSL\",1,1,1", "OK\r\n"))
# cacert is upload finished.
#print("AT+QFUPL: " + node.sendATCmd("AT+QFUPL=\"root_ca.pem\",1206,100","OK\r\n"))
#print("AT+QFUPL: " + node.sendATCmd("AT+QFUPL=\"rpi_test1.pem\",1224,100","OK\r\n"))
#print("AT+QFUPL: " + node.sendATCmd("AT+QFUPL=\"rpi_test1-private.pem\",1679,100","OK\r\n"))
print("AT+QSSLCFG: " +node.sendATCmd("AT+QSSLCFG=\"cacert\",1,\"cacert.pem\"", "OK\r\n"))
print("AT+QSSLCFG: " +node.sendATCmd("AT+QSSLCFG=\"clientcert\",1,\"client.pem\"", "OK\r\n"))
print("AT+QSSLCFG: " +node.sendATCmd("AT+QSSLCFG=\"clientkey\",1,\"user_key.pem\"", "OK\r\n"))
print("AT+QSSLCFG: " +node.sendATCmd("AT+QSSLCFG=\"seclevel\",1,2", "OK\r\n"))
print("AT+QSSLCFG: " +node.sendATCmd("AT+QSSLCFG=\"sslversion\",1,4", "OK\r\n"))
print("AT+QSSLCFG: " +node.sendATCmd("AT+QSSLCFG=\"ciphersuite\",1,0xFFFF", "OK\r\n"))
print("AT+QSSLCFG: " +node.sendATCmd("AT+QSSLCFG=\"ignorelocaltime\",1", "OK\r\n"))
print("AT+QMTOPEN: " +node.sendATCmd("AT+QMTOPEN=1,\"backendpoint-ats.iot.us-east-2.amazonaws.com\",8883", "OK\r\n"))
print("AT+QMTCONN: " +node.sendATCmd("AT+QMTCONN=1,\"rpi_test1\"", "OK\r\n"))
print("AT+QMTSUB: " +node.sendATCmd("AT+QMTSUB=1,1,\"pi2\",1", "OK\r\n"))
print("AT+QMTPUBEX: " +node.sendATCmd("AT+QMTPUBEX=1,1,1,0,\"pi1\",\"{\n\"action\":test\n}\"", "OK\r\n"))
print("AT+QMTCLOSE: " +node.sendATCmd("AT+QMTCLOSE=1", "OK\r\n"))
print("AT+QMTDISC: " +node.sendATCmd("AT+QMTDISC=1", "OK\r\n"))
time.sleep(2)
#program End
GPIO.cleanup()
所以我运行这个源。
但它不工作。
AT+QMTCONN 线什么时候出错。
ERROR 是发送失败/错误。
所以我没有找到解决方案。
请帮助我.....谢谢。
解决方案
推荐阅读
- java - 拒绝对先前失败的类 java.lang.Class 重新初始化
: java.lang.NoClassDefFoundError - mysql - 检查mysql中重复行上是否存在值
- wordpress - 为什么我在 Wordpress Contact Form 7 上收到文件上传错误?
- c# - 使用作为参数传递给内部匿名函数C#中的函数的对象
- javascript - 使用javascript从数组中提取数据
- javascript - 我如何插入相同的(其中包含我的菜单)到所有其他 html 页面?
- python - RNN 模型只预测一个类别?
- security - 授权导入范围后是否可以浏览电子表格?
- html - 如何在 HTML 中设置两个内联图像?
- android - 在彼此之上实现多个视图的正确方法是什么?