我正在研究如何在google cloud中使用MQTT。我已经提到过,我没有找到关于AT命令和Google Cloud MQTT的具体文档
我使用的是Simcom 7600模块
文档说它要求这样做:
+CSSLCFG: "sslversion",(0-9),(0-4)
+CSSLCFG: "authmode",(0-9),(0-3)
+CSSLCFG: "ignorelocaltime",(0-9),(0,1)
+CSSLCFG: "negotiatetime",(0-9),(10-300)
+CSSLCFG: "cacert",(0-9),(5-128)
+CSSLCFG: "clientcert",(0-9),(5-128)
+CSSLCFG: "clientkey",(0-9),(5-128)
ca certs generation Google cloud
所以我生成了RSA密钥:
openssl genpkey -algorithm RSA -out rsa_private.pem -pkeyopt rsa_keygen_bits:2048
openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
#X.509 certificate for iot device in Google Cloud
openssl req -x509 -nodes -newkey rsa:2048 -keyout rsa_private.pem \
-out rsa_cert.pem -subj "/CN=unused"
在那之后,我想使用以下命令上传证书,基于musquito设置和这个python示例MQTT SIMCOM 7000 example:
MQTT_URL = "mqtt.googleapis.com"
CERTS_FOLDER = 'certs'
CA_NAME = 'rsa_cert.pem' # cacert 'mosquitto-ca.crt'
CERT_NAME = 'rsa_private.pem' # clientcert "mosquitto.crt"
KEY_NAME = 'client.key' # client key "mosquitto.key"
我将示例修改为我的模块的波特率和正确的端口。我已经在用它打电话和发短信了,所以我知道它是有效的。
AT('+CFSINIT')
with open(os.path.join(CERTS_FOLDER, CA_NAME),'rb') as f:
data = f.read()
AT('+CFSWFILE=3,"{}",0,{},5000'.format(CA_NAME, len(data)), success="DOWNLOAD")
send(data)
with open(os.path.join(CERTS_FOLDER, CERT_NAME),'rb') as f:
data = f.read()
AT('+CFSWFILE=3,"{}",0,{},5000'.format(CERT_NAME, len(data)), success="DOWNLOAD")
send(data)
with open(os.path.join(CERTS_FOLDER, KEY_NAME),'rb') as f:
data = f.read()
AT('+CFSWFILE=3,"{}",0,{},5000'.format(KEY_NAME, len(data)), success="DOWNLOAD")
send(data)
AT('+CFSTERM')
我得到的回应是:不幸的是,所有证书都是ERROR
。在这方面的帮助将是巨大的:)提前感谢。
发布于 2021-06-04 22:20:30
您遵循的AT命令看起来不适用于SIM7600系列模块。请参考下面的示例,并按照顺序操作。
2019-12-02 12:40:05:201[Recv<-]
+CPIN: READY
2019-12-02 12:40:06:823[Recv<-]
SMS DONE
2019-12-02 12:40:13:397[Recv<-]
PB DONE
2019-12-02 12:40:41:207[Send->]AT+CSQ
2019-12-02 12:40:41:214[Recv<-]
+CSQ: 29,99 // Check signal strength
OK
2019-12-02 12:40:42:861[Send->]AT+COPS?
2019-12-02 12:40:42:869[Recv<-]
+COPS: 0,0,"IND airtel airtel",7 // Network operator
OK
2019-12-02 12:40:45:244[Send->]AT+CREG?
2019-12-02 12:40:45:248[Recv<-]
+CREG: 0,1 // Registration status
OK
2019-12-02 12:40:47:090[Send->]AT+CGATT?
2019-12-02 12:40:47:095[Recv<-]
+CGATT: 1
OK
2019-12-02 12:43:44:560[Send->]AT+CCERTLIST
2019-12-02 12:43:44:572[Recv<-]
+CCERTLIST: "cacert.pem"
+CCERTLIST: "clientcert.pem"
+CCERTLIST: "clientkey.pem"
OK
2019-12-02 12:43:55:518[Send->]AT+CCERTDELE="cacert.pem" // Delete stored certificates
2019-12-02 12:43:55:529[Recv<-]
OK
2019-12-02 12:44:04:807[Send->]AT+CCERTDELE="clientcert.pem"
2019-12-02 12:44:04:816[Recv<-]
OK
2019-12-02 12:44:16:405[Send->]AT+CCERTDELE="clientkey.pem"
2019-12-02 12:44:16:415[Recv<-]
OK
2019-12-02 12:44:31:519[Send->]AT+CCERTDOWN="clientcert.pem",1225 // Downloading client certificate
2019-12-02 12:44:31:527[Recv<-]
>
2019-12-02 12:44:33:600[Recv<-]-----BEGIN CERTIFICATE-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----END CERTIFICATE-----
2019-12-02 12:44:54:930[Send->]AT+CCERTLIST
2019-12-02 12:44:54:939[Recv<-]A
OK
2019-12-02 12:44:57:573[Send->]AT+CCERTLIST
2019-12-02 12:44:57:580[Recv<-]
+CCERTLIST: "clientcert.pem"
OK
2019-12-02 12:45:11:073[Send->]AT+CCERTDOWN="clientkey.pem",1679 // Downloading client private key
2019-12-02 12:45:11:080[Recv<-]
>
2019-12-02 12:45:12:801[Recv<-]-----BEGIN RSA PRIVATE KEY-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----END RSA PRIVATE KEY-----
OK
2019-12-02 12:45:23:584[Send->]AT+CCERTDOWN="cacert.pem",1188 // Downloading Root CA
2019-12-02 12:45:23:595[Recv<-]
>
2019-12-02 12:45:25:234[Recv<-]-----BEGIN CERTIFICATE-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----END CERTIFICATE-----
OK
2019-12-02 12:45:32:619[Send->]AT+CCERTLIST // View list of certifactes stored
2019-12-02 12:45:32:630[Recv<-]
+CCERTLIST: "cacert.pem"
+CCERTLIST: "clientcert.pem"
+CCERTLIST: "clientkey.pem"
OK
2019-12-02 12:45:40:685[Send->]AT+CSSLCFG="sslversion",0,4 // Set the SSL version for SSL context
2019-12-02 12:45:40:694[Recv<-]
OK
2019-12-02 12:45:41:955[Send->]AT+CSSLCFG="authmode",0,2 // Set the authentication mode(2 = verify server and client) of the SSL context
2019-12-02 12:45:41:965[Recv<-]
OK
2019-12-02 12:45:43:204[Send->]AT+CSSLCFG="cacert",0,"cacert.pem" // Set the server root CA of the SSL context
2019-12-02 12:45:43:213[Recv<-]
OK
2019-12-02 12:45:44:430[Send->]AT+CSSLCFG="clientcert",0,"clientcert.pem" //Set the client certificate of the SSL context
2019-12-02 12:45:44:439[Recv<-]
OK
2019-12-02 12:45:45:746[Send->]AT+CSSLCFG="clientkey",0,"clientkey.pem" // Set the client key of the SSL context
2019-12-02 12:45:45:755[Recv<-]
OK
2019-12-02 12:45:47:119[Send->]AT+CMQTTSTART // start MQTT service, activate PDP context
2019-12-02 12:45:47:134[Recv<-]
+CMQTTSTART: 0
OK
2019-12-02 12:45:49:313[Send->]AT+CMQTTACCQ=0,"SIMCom_client01",1 // Acquire one client which will connect to a MQTT server
2019-12-02 12:45:49:321[Recv<-]
OK
2019-12-02 12:45:51:844[Send->]AT+CMQTTSSLCFG=0,0 // Set the SSL context to be used in the SSL connection
2019-12-02 12:45:51:851[Recv<-]
OK
2019-12-02 12:45:55:612[Send->]AT+CMQTTWILLTOPIC=0,31 // Set the will topic for the CONNECT message
2019-12-02 12:45:55:620[Recv<-]
>
2019-12-02 12:45:57:974[Send->]aws/things/simcom7600_device01/
2019-12-02 12:45:57:982[Recv<-]
OK
2019-12-02 12:46:00:067[Send->]AT+CMQTTWILLMSG=0,17,1 // Set the will message for the CONNECT message
2019-12-02 12:46:00:073[Recv<-]
>
2019-12-02 12:46:01:845[Send->]SIMCom Connected!
2019-12-02 12:46:01:850[Recv<-]
OK
2019-12-02 12:46:07:832[Send->]AT+CMQTTCONNECT=0,"tcp://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.amazonaws.com:8883",60,1 // Connect to a MQTT server
2019-12-02 12:46:07:847[Recv<-]
OK
2019-12-02 12:46:09:702[Recv<-]
+CMQTTCONNECT: 0,0
2019-12-02 12:46:32:413[Send->]AT+CMQTTSUBTOPIC=0,31,1 // Set one topic for the SUBSCRIBE message
2019-12-02 12:46:32:421[Recv<-]
>
2019-12-02 12:46:34:212[Send->]aws/things/simcom7600_device02/
2019-12-02 12:46:34:220[Recv<-]
OK
2019-12-02 12:46:36:012[Send->]AT+CMQTTSUB=0 // Subscribe a message
2019-12-02 12:46:36:020[Recv<-]
OK
2019-12-02 12:46:36:288[Recv<-]
+CMQTTSUB: 0,0
2019-12-02 12:46:44:730[Send->]AT+CMQTTTOPIC=0,31 // Set the topic for the PUBLISH message
2019-12-02 12:46:44:739[Recv<-]
>
2019-12-02 12:46:46:059[Send->]aws/things/simcom7600_device02/
2019-12-02 12:46:46:070[Recv<-]
OK
2019-12-02 12:46:48:724[Send->]AT+CMQTTPAYLOAD=0,38 // Set the payload for the PUBLISH message
2019-12-02 12:46:48:732[Recv<-]
>
2019-12-02 12:46:50:446[Send->]{"message":"Hello from SIMCom Module"}
2019-12-02 12:46:50:454[Recv<-]
OK
2019-12-02 12:46:51:919[Send->]AT+CMQTTPUB=0,1,60 // Publish a message
2019-12-02 12:46:51:927[Recv<-]
OK
2019-12-02 12:46:52:253[Recv<-]
+CMQTTPUB: 0,0
+CMQTTRXSTART: 0,31,38 // Acknowledgement of received message from subscribed client
+CMQTTRXTOPIC: 0,31
aws/things/simcom7600_device02/
+CMQTTRXPAYLOAD: 0,38
{"message":"Hello from SIMCom Module"}
+CMQTTRXEND: 0
https://stackoverflow.com/questions/57731026
复制相似问题