您尚未登录。

楼主 #1 2018-12-26 15:14:34

msr06rr
会员
所在地: 苏州
注册时间: 2018-01-11
已发帖子: 180
积分: 170.5

ESP32+SIM800L实现MQTT功能

断断续续搞了好一阵子终于可以在SIM800L上跑MQTT了。
SIM800L本身是不支持MQTT的,但是模块本身很小巧很便宜,也很稳定。我就不喜欢什么功能都封装成AT指令,明明这些可以自己用软件来实现的,平白无故还增加了成本。
说说具体做法,其实在ESP32上已经很容易做到了,IDF本身有MQTT协议栈(基于lwip写的),并且lwip又支持PPP接口,所以我们只要让Modem正确进入PPP模式,然后调用mqtt的api即可。
话说回来,进入PPP模式还是要发AT指令的,好在也就那几条通用的指令。

I (1275) pppos_demo: Module: SIMCOM_SIM800L
I (1275) pppos_demo: Operator: "CHINA MOBILE"
I (1275) pppos_demo: IMEI: 865992039850864
I (1275) pppos_demo: IMSI: 460007454185220
I (1475) pppos_demo: rssi: 21, ber: 0
I (1675) pppos_demo: Battery voltage: 4652 mV
I (1875) pppos_demo: Modem PPP Started
I (2685) pppos_demo: Modem Connect to PPP Server
I (2685) pppos_demo: ~~~~~~~~~~~~~~
I (2685) pppos_demo: IP          : 10.64.167.151
I (2685) pppos_demo: Netmask     : 255.255.255.255
I (2695) pppos_demo: Gateway     : 192.168.254.254
I (2695) pppos_demo: Name Server1: 211.136.112.50
I (2705) pppos_demo: Name Server2: 211.136.150.66
I (2705) pppos_demo: ~~~~~~~~~~~~~~
I (2715) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (3815) MQTT_CLIENT: Sending MQTT CONNECT message, type: 1, id: 0000
I (4585) pppos_demo: MQTT_EVENT_CONNECTED
I (4595) pppos_demo: sent subscribe successful, msg_id=25635
I (8785) pppos_demo: MQTT_EVENT_SUBSCRIBED, msg_id=25635
I (8785) pppos_demo: sent publish successful, msg_id=0
I (10105) MQTT_CLIENT: deliver_publish, message_length_read=26, message_length=26
I (10105) pppos_demo: MQTT_EVENT_DATA
TOPIC=/topic/qos0
DATA=esp32-pppos
I (10155) pppos_demo: Modem PPP Stopped
I (13155) pppos_demo: Power down

离线

楼主 #3 2018-12-26 15:56:12

msr06rr
会员
所在地: 苏州
注册时间: 2018-01-11
已发帖子: 180
积分: 170.5

Re: ESP32+SIM800L实现MQTT功能

basicdev 说:

这种SIM800L模块是不是有一个PPP模式,还有一个AT模式?

默认上电是AT模式吧,如何进入 PPP 模式?

用PPP模式除了上网,还可以打电话和发短信吗?

是有一个PPP模式,一个命令模式,还有另外一个数据模式,上电默认AT模式,进入PPP模式需要拨号:ATD*99#
在PPP模式下就不能发短信打电话了,需要退出PPP模式才可以做到。不过也有别的技术可以同时,好像是CMUX协议?没研究过

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn