首页 > 解决方案 > 我有个问题。使用 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 是发送失败/错误。

所以我没有找到解决方案。

请帮助我.....谢谢。

标签: pythonamazon-web-servicesmqttraspberry-pi4

解决方案


推荐阅读