模板: Pico-SIM868-Manual

来自Waveshare Wiki
跳转至: 导航搜索

硬件连接

准备的材料

  • Pico-SIM868-GSM/GPRS/GNSS x 1 (本产品配置,须焊接上直排座)
  • Raspberry Pi Pico x 1 (须自备)
  • SIM卡 x 1 (须自备,开通了2G功能,国内建议用移动4G或2G卡)
  • Micro USB线 x 1 (须自备)

硬件实物连接图

Pico-SIM868-GSM-GPRS-GNSS-5.jpg

说明:

如果需要用到打电话功能,还须接上喇叭。
使用时,建议接上锂电池:当不额外接USB供电的情况,开关切到USB则为关断锂电池供电,切到VBAT则使用锂电池供电;当接上USB供电时,USB即可给锂电池充电,也可用来给Pico供电 或 烧写固件及程序。

简单使用

Python例程

windows环境下的使用

  • 1.按住Pico板上的BOOTSET按键,将pico通过Micro USB线接到电脑的USB接口,待电脑识别出一个可移动硬盘(RPI-RP2)后,松开按键。
  • 2.将python目录中pico_micropython_xxxxxxxx.uf2 文件复制到识别的可移动盘(RPI-RP2)中
  • 3.打开Thonny IDE(注意:要使用最新版本的Thonny,否则是没有Pico的支持包的,当前Windows下的最新版本为v3.3.3)
  • 4.点击工具->设置->解释器,如图所示选择Pico及对应的端口

Pico-lcd-0.96-img-config.png

  • 5.文件->打开->main.py,点击运行即可,如下图所示:

Pico-lcd-0.96-img-run.png
本例程提供了一个简单的程序...

树莓派环境下的使用

  • 1.刷固件的过程与Windows上一样,你可以选择在PC或者树莓派上将pico_micropython_xxxxxxxx.uf2 文件拷入pico中。
  • 2.在树莓派山打开Thonny IDE (点击树莓logo -> Programming -> Thonny Python IDE ),你可以在Help->About Thonny查看版本信息

以确保你的版本是有Pico支持包的,同样你可以点击Tools -> Options... -> Interpreter选择MicroPython(Raspberry Pi Pico 和ttyACM0端口
如图所示:
Pico-lcd-0.96-img-config2.png
如果你当前的Thonny版本没有pico支持包,输入以下指令来更新Thonny IDE

sudo apt upgrade thonny

3.点击File->Open...->python/main.py,运行脚本即可

AT Test

实例说明

该例程主要是方便用户可以通过Thony软件,直接测试验证模组的AT指令收发。主程序首先会直接给模组开机,然后检测网络情况,之后会循环检测用户输入的AT指令,帮通过串口发送给模组,然后把模组的AT指令返回回传到Pico的串口打印出来。
详细的AT指令集请见:File:SIM800 Series_AT Command Manual_V1.11.pdf

运行现象

SIM868 AT Test.png

GPS定位

实例说明

本示例主要演示GPS定位相关测试。进行该实例前,必须把GPS天线的接收头放到室外(或窗口,可以看到天空的地方),另外阴雨天气无法获取到GPS定位。
详细的AT指令集请见:File:SIM868 Series_GNSS_Application Note_V1.02.pdf

运行现象

SIM868 PICO GPS.png

打电话测试

实例说明

本示例主要演示打电话相关测试。模组上板载了一个麦克风,电话打通后,可以直接进行对话,另外还需要接上喇叭,才能听到声音。
详细的AT指令集请见:File:SIM800 Series_AT Command Manual_V1.11.pdf

运行现象

SIM868 Phone call.png

TCP

在本实例中,Raspberry Pico通过NB-IoT连接上互联网,通过TCP和服务器进行数据的传输,需要用到获取到公网IP的服务器(本例用的是阿里云服务器):

  • 关键指令说明
AT+CSQ 查询网络信号质量,其中第一个参数为网络信号质量最大为 31,此数值越大说明网络信号越强
AT+CREG? 查询网络注册情况,其中第二个参数为 1 或 5 则说明已经注册成功
AT+CGATT? 查询模块是否附着 GPRS 网络
AT+CSTT="CMNET"  根据实际网络设置 APN,这里以移动为例
AT+CIICR 激活移动场景
AT+CIFSR 获得本地 IP 地址
AT+CIPSTART="TCP","113.81.232.4",5000   建立 TCP/IP 连接,如下图所示
  • 下载Python例程:示例程序 ,TCP部分代码如下:
def tcp(sms_info="qixi"):
    send_at('AT+CIPSHUT', 'OK')
    send_at("AT+CSQ", "OK")
    send_at("AT+CREG?", "OK")
    send_at('AT+CGATT?', 'OK')
    send_at('AT+CSTT=\"CMNET\"', 'OK',5)
    send_at('AT+CIICR', 'OK')
    send_at('AT+CIFSR', 'OK')
    send_at('AT+CIPSTART=\"TCP\",\"120.79.2.0\",\"2317\"', 'OK')
    send_at('AT+CIPSEND', ">",5)
    uart.write(bytearray(sms_info))
    uart.write(bytearray(hexstr_to_str("1A")))

运行现象

  • Pico在Thonny客户端运行截图:

800x

  • 服务器端收到数据

PICO-SIM868 ALY NC -l.png


HTTP

功能框图

在本实例中,Raspberry Pico通过NB-IoT连接上互联网,通过HTTP GET获取到 获取到天气网站的天气信息,同时把 Pico 上的温度信息 通过HTTP POST 推送到服务器上。
用户可以通过网页访问,查看实时上传的数据。大致的软件示意图如下所示:
Pico-SIM7020-HTTP-demo-diagram.png

服务器网页部署

http://pico.wiki/esp-chart.php 为例。其软件框图大致如下图所示:
Pico-SIM7020-HTTP-Demo-2.png
1、服务器搭建php,mysql等环境,创建数据库文件,比如:

  • 数据库:example_esp_data
  • 密码:your_password
  • 用户名:your_username
  • 创建数据库表:
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

  • post-data.php:HTTP POST的API接口,SIM7080G模块可以通过调用此API接口,往服务器POST数据。
  • esp-chart.php:用户端访问的网页,可通过此页面获取到SIM7080G上传的最新数据,并通过图表展示出来。

Pico端软件设置

下载Python例程:示例程序 ,HTTP部分代码如下:

  • HTTP GET部分:
# HTTP GET TEST
def http_get():
   send_at('AT+HTTPINIT', 'OK')
   send_at('AT+HTTPPARA=\"CID\",1', 'OK')
   send_at('AT+HTTPPARA=\"URL\",\"'+http_get_server[0]+http_get_server[1]+'\"', 'OK')
   if send_at('AT+HTTPACTION=0', '200', 5000):
       uart.write(bytearray(b'AT+HTTPREAD\r\n'))
       rec_buff = wait_resp_info(8000)
       print("resp is :", rec_buff.decode())
   else:
       print("Get HTTP failed, please check and try again\n")
   send_at('AT+HTTPTERM', 'OK')
  • HTTP POST部分:
  1. HTTP POST TEST
def http_post():
   send_at('AT+HTTPINIT', 'OK')
   send_at('AT+HTTPPARA=\"CID\",1', 'OK')
   send_at('AT+HTTPPARA=\"URL\",\"'+http_post_server[0]+http_post_server[1]+'\"', 'OK')
   send_at('AT+HTTPPARA=\"CONTENT\",\"' + http_content_type + '\"', 'OK')
   if send_at('AT+HTTPDATA=62,8000', 'DOWNLOAD', 3000):
       uart.write(bytearray(http_post_tmp))
       utime.sleep(5)
       rec_buff = wait_resp_info()
       if 'OK' in rec_buff.decode():
           print("UART data is read!\n")
       if send_at('AT+HTTPACTION=1', '200', 8000):
           print("POST successfully!\n")
       else:
           print("POST failed\n")
       send_at('AT+HTTPTERM', 'OK')
   else:
       print("HTTP Post failed,please try again!\n")

运行现象

Pico在Thonny客户端运行截图:


服务器端网页访问结果:http://pico.wiki/esp-chart.php

SIM868 HTTP POST Result mark.png

C

环境搭建

【C/C++】 Windows教程1——环境搭建
【C/C++】 Windows教程2——创建工程

例程使用

1. 打开对应C程序文件夹
Pico SIM868 2.jpg
2. 通过Vs coed打开,选择对应编译工具跟需要运行的例程(将不用的注释掉,用的解除注释,单次只能运行一个)
Pico SIM868 4.jpg

Pico SIM868 1.jpg
3. 点击编译按键进行编译
Pico-Eval-Board-win-4.jpg
4.按住Pico的BOOT按键后上电,可使Pico进入磁盘模式,并将build文件下的UF2文件拖拽到RPI-RP2盘符中
Pico SIM868 3.jpg
5.此时Pico开始运行对应程序,可以通过串口助手查看运行状态