本产品是一款具有 NB-IoT (窄带物联网)、Cat-M (也叫 eMTC,增强机器类通信) 和 GNSS (全球导航卫星系统) 功能的树莓派 Pico 扩展板,国内 NB-IoT 全网通,串口 AT 指令控制,支持 HTTP/MQTT/LWM2M/COAP 等协议通信。具有低延迟、低功耗、广覆盖和低成本等优点,非常适用于如智能仪表、资产跟踪和远程监控等物联网应用。
产品型号 | SIM7080G | SIM7020C / SIM7020E |
---|---|---|
工作频段 | ||
NB-IoT | B1/B2/B3/B4/B5/B8/B12/B13/B18/B19/ | SIM7020C: |
Cat-M | B1/B2/B3/B4/B5/B8/B12/B13/B14/B18/ | 不支持 |
GNSS | GPS, GLONASS, BeiDou, Galileo | 不支持 |
适用地区 | 全球通用 | SIM7020C:中国 |
数据传输 | ||
NB-IoT(Kbps) | 136(DL)/150(UL) | 26.15(DL)/62.5(UL) |
Cat-M(Kbps) | 589(DL)/1119(UL) | - |
其他参数 | ||
通信协议 | TCP/UDP/HTTP/HTTPS/TLS/DTLS/PING/LWM2M/COAP/MQTT 等 | |
供电方式 | 通过锂电池接口或 Raspberry Pi Pico 的 USB 口 | |
锂电池接口 | 3.7V ~ 4.2V | |
逻辑电平 | 3.3V | |
单模组耗流 | 空闲模式:10mA | 空闲模式:5.6mA |
休眠模式:1.2mA | 休眠模式:0.4mA | |
PSM 模式:3.2uA | PSM 模式:3.4uA | |
指示灯 | NET:网络指示灯 | |
开关 | 锂电池供电开关 | |
SIM 卡 | NB-IoT / Cat-M卡 (仅支持 1.8V) | NB卡(1.8V / 3V) |
天线接口 | LTE、GNSS | LTE |
产品尺寸 | 73.5 × 24.00mm |
该例程主要是方便用户可以通过Thony软件,直接测试验证模组的AT指令收发。主程序首先会直接给模组开机,然后检测网络情况,之后会循环检测用户输入的AT指令,帮通过串口发送给模组,然后把模组的AT指令返回回传到Pico的串口打印出来。
详细的AT指令集请见:SIM7080_Series_AT_Command_Manual_V1.02.pdf
在本实例中,Raspberry Pico通过NB-IoT连接上互联网,通过HTTP GET获取到 获取到天气网站的天气信息,同时把 Pico 上的温度信息 通过HTTP POST 推送到服务器上。
用户可以通过网页访问,查看实时上传的数据。大致的软件示意图如下所示:
按下图所示,把Pico-SIM7080G-Cat-M/NB-IoT模块焊接上排座或排针,然后接入Pico主板、电池、天线和NB-IoT卡:
以 http://pico.wiki/esp-chart.php 为例。其软件框图大致如下图所示:
1、服务器搭建php,mysql等环境,创建数据库文件,比如:
- CREATE TABLE Sensor (
- id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
- value1 VARCHAR(10),
- value2 VARCHAR(10),
- value3 VARCHAR(10),
- reading_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
2、服务器端的php示例文件,有post-data.php 和 esp-chart.php
1、参考教程:Template:Raspberry Pi Pico Quick Start 选择在 Windows 或 树莓派 系统下运行MicroPython开发环境
(推荐选用Windows 开发环境,下文以Windows开发环境为例)。
2、下载Python例程:HTTP.py ,代码部分预览如下:
- # HTTP GET TEST
- def http_get():
- send_at('AT+SHDISC', 'OK')
- send_at('AT+SHCONF="URL",\"'+http_get_server[0]+'\"', 'OK')
- set_http_length()
- send_at('AT+SHCONN', 'OK', 3000)
- if send_at('AT+SHSTATE?', '1'):
- set_http_content()
- resp = str(send_at_wait_resp('AT+SHREQ=\"'+http_get_server[1]+'\",1', 'OK',8000))
- # print("resp is :", resp)
- try:
- get_pack_len = int(resp[resp.rfind(',')+1:-5])
- if get_pack_len > 0:
- send_at_wait_resp('AT+SHREAD=0,'+str(get_pack_len), 'OK', 5000)
- send_at('AT+SHDISC', 'OK')
- else:
- print("HTTP Get failed!\n")
- except ValueError:
- print("ValueError!\n")
- else:
- print("HTTP connection disconnected, please check and try again\n")
- def http_post():
- send_at('AT+SHDISC', 'OK')
- send_at('AT+SHCONF="URL",\"' + http_post_server[0] + '\"', 'OK')
- set_http_length()
- send_at('AT+SHCONN', 'OK', 3000)
- if send_at('AT+SHSTATE?', '1'):
- set_http_content()
- send_at('AT+SHCPARA', 'OK')
- if send_at('AT+SHBOD=62,10000', '>', 1000) :
- send_at(http_post_tmp, 'OK')
- resp = str(send_at_wait_resp('AT+SHREQ=\"/'+http_post_server[1]+'\",3','OK', 8000))
- # print("resp is :", resp)
- try:
- get_pack = int(resp[resp.rfind(',')+1:-5])
- print(get_pack)
- if get_pack > 0:
- send_at_wait_resp('AT+SHREAD=0,' + str(get_pack), 'OK', 3000)
- send_at('AT+SHDISC', 'OK')
- else:
- print("HTTP Post failed!\n")
- except ValueError:
- print("ValueError!\n")
- else:
- print("Send failed\n")
- else:
- print("HTTP connection disconnected, please check and try again\n")
更多关于SIM7080G模组HTTP应用文档内容,请见:SIM7070/SIM7080_Series_HTTP_Application_Note_V1.02.pdf
3、把连接好 Pico-SIM7080G-Cat-M/NB-IoT 模块的Pico主板,通过USB连接到电脑上。
4、你可以通过Thonny软件查看、修改、或者运行调试代码。
运行HTTP.py,则Pico可以开始通过HTTP GET 天气网站的天气信息,同时可以将Pico主板上的温度通过HTTP POST到pico.wiki上。
此时,我们通过网页访问http://pico.wiki/esp-chart.php,网页可以以图表的形式直接展示出实时上传的数据。如下图所示:
GET:
POST:
网页端访问: