玩转 ESP32 + Arduino (二十二) SIM800L上传数据到阿里IOT(温湿度和LBS)(NTP对时)

使用ESP32和Arduino配合SIM800L模块,连接阿里云物联网平台,实现温湿度传感器SHT20的数据采集,并结合LBS定位信息上传。同时,通过NTP协议对设备进行时间同步,每5分钟自动采集并上传数据,确保数据准确。项目运行稳定,上传至阿里云IoT平台的功能正常。
摘要由CSDN通过智能技术生成

思路同上一篇: 改为连接阿里云平台, 增加了平台对时功能和定位功能
思路同上一篇:
本例程实现了以下功能:

  1. 通过SIM800L连接网络
  2. 连接阿里IOT平台()
  3. 调用SHT20的库采集温湿度
  4. 将温湿度信息以及LBS定位信息上传至IOT
  5. 与阿里云IOT平台进行对时
  6. 每5分钟采集一次, 采集完成就休眠
#include <Arduino.h>
#include "PubSubClient.h"
#include "aliyun_mqtt.h"
#include "ArduinoJson.h"
#include "uFire_SHT20.h"

/*-------------------------------SIM800L 硬件定义----------------------------------*/
#define MODEM_RST 5       //SIM800L复位引脚接在GPIO5
#define MODEM_PWRKEY 4    //SIM800L开关机引脚接在GPIO4
#define MODEM_POWER_ON 23 //SIM800L电源引脚接在GPIO23
#define MODEM_TX 27       //SIM800L串口TX引脚接在GPIO27
#define MODEM_RX 26       //SIM800L串口RX引脚接在GPIO26

/*-------------------------------其他硬件定义-------------------------------------*/
uFire_SHT20 sht20;
#define SerialMon Serial //调试串口为UART0
#define SerialAT Serial1 //AT串口为UART1

/*-------------------------------公共变量,参数定义-------------------------------------*/
float currentTemp, currentHumi; //温湿度
bool tempAndHumi_Ready = false; //温湿度采集成功标志位
bool timeNTPdone = false;

//以下参数需要休眠记忆
RTC_DATA_ATTR time_t lastNTP_timestamp;       //上次对时的时间戳
RTC_DATA_ATTR int postMsgId = 0;          //记录已经post了多少条
RTC_DATA_ATTR float locationE, locationN; //地理位置,经度纬度
RTC_DATA_ATTR tm *timeNow;                //当前时间

/*-------------------------------Modem相关定义-------------------------------------*/
#define TINY_GSM_MODEM_SIM800 // Modem is SIM800
//引入TinyGSM库. 在引入之前要定义好TINY_GSM_MODEM_SIM800,让它知道我们用的模块型号
#include <TinyGsmClient.h>
// 创建一个关联到SerialAT的SIM800L模型
TinyGsm modem(SerialAT);
// 创建一个GSM型的网络客户端
TinyGsmClient gsmclient(modem);
PubSubClient mqttClient(gsmclient);
// Your GPRS credentials (leave empty, if missing)
const char apn[] = "CMNET"; // Your APN
const char gprsUser[] = ""; // User
const char gprsPass[] = ""; // Password
const char simPIN[] = "";   // SIM card PIN code, if any

/*-------------------------------云平台相关定义-------------------------------------*/
#define PRODUCT_KEY "a1AYa96sZMJ"                        //产品ID
#define DEVICE_NAME "EspTempAndHumi_D001"                //设备名
#define DEVICE_SECRET "a23249cb179feee41ca2f8f38525113d" //设备key
//鉴权信息
#define mqtt_password "version=2018-10-31&res=products%2F370098%2Fdevices%2Fesp_device001&et=4092512761&a
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值