思路同上一篇: 本例程實現(xiàn)了以下功能: 通過SIM800L連接網(wǎng)絡 連接OneNet平臺(通過新版MQTTs協(xié)議) 調(diào)用SHT20的庫采集溫濕度 將溫濕度信息上傳至OneNet 每5分鐘采集一次, 采集完成就休眠 #include pinMode(MODEM_POWER_ON, OUTPUT); //電源引腳 pinMode(MODEM_PWRKEY, OUTPUT); //開關機鍵引腳 // 先打開SIM800L的電源 digitalWrite(MODEM_POWER_ON, HIGH); //根據(jù)手冊要求拉下PWRKEY 1秒鐘以上 可以開機 digitalWrite(MODEM_PWRKEY, HIGH); delay(100); digitalWrite(MODEM_PWRKEY, LOW); delay(1000); digitalWrite(MODEM_PWRKEY, HIGH); SerialMon.println('Initializing modem...'); modem.init(); //開機后modem初始化一下}/*-------------------------------SIM800L連接GPRS-------------------------------------*/void modemToGPRS(){ //連接網(wǎng)絡 SerialMon.print('Waiting for network...'); while (!modem.waitForNetwork(240000L)) { SerialMon.print('.'); delay(500); } SerialMon.println(' OK'); //連接GPRS接入點 SerialMon.print(F('Connecting to APN: ')); SerialMon.print(apn); while (!modem.gprsConnect(apn, gprsUser, gprsPass)) { SerialMon.print('.'); delay(10000); } SerialMon.println(' OK');}/*-------------------------------向云平臺發(fā)送溫濕度數(shù)據(jù)-------------------------------*/void sendTempAndHumi(){ if (client.connected()) { snprintf(msgJson, 75, dataTemplate, sht20.temperature(), sht20.humidity()); //將模擬溫濕度數(shù)據(jù)套入dataTemplate模板中, 生成的字符串傳給msgJson Serial.print('public the data:'); Serial.println(msgJson); client.publish('$sys/370098/esp_device001/dp/post/json', (uint8_t *)msgJson, strlen(msgJson)); //發(fā)送數(shù)據(jù)到主題 }}/*-------------------------------向云平臺斷線重連-------------------------------------*/void clientReconnect(){ if (modem.isNetworkConnected()) { while (!client.connected()) //再重連客戶端 { Serial.println('reconnect MQTT...'); if (client.connect(mqtt_devid, mqtt_pubid, mqtt_password)) { Serial.println('connected'); } else { Serial.println('failed'); Serial.println(client.state()); Serial.println('try again in 5 sec'); delay(5000); } } } else { Serial.println('網(wǎng)絡斷了,不可能連上了, 把數(shù)據(jù)存在本地等待下一次聯(lián)網(wǎng)吧'); }}void setup(){ pinMode(LED_G, OUTPUT); Wire.begin(); sht20.begin(); SerialMon.begin(115200); //初始化調(diào)試串口 SerialAT.begin(115200, SERIAL_8N1, MODEM_RX, MODEM_TX); //初始化AT串口 setupModem(); //SIM800L物理開機 modemToGPRS(); //modem連接GPRS //連接OneNet并上傳數(shù)據(jù) Serial.println('connecting to OneNet IOT...'); client.setServer(mqtt_server, port); //設置客戶端連接的服務器,連接Onenet服務器, 使用6002端口 client.connect(mqtt_devid, mqtt_pubid, mqtt_password); //客戶端連接到指定的產(chǎn)品的指定設備.同時輸入鑒權(quán)信息 if (client.connected()) { client.subscribe('$sys/370098/esp_device001/cmd/request/#'); //訂閱命令下發(fā)主題 sendTempAndHumi(); } else //如果客戶端沒連接ONENET, 重新連接 clientReconnect(); delay(500); //進入睡眠 esp_sleep_enable_timer_wakeup(300000000); Serial.println('now sleep'); esp_deep_sleep_start();}void loop(){ client.loop();}
上一篇:玩轉(zhuǎn) ESP32 + Arduino (二十一) SPIFFS文件系統(tǒng) (已棄用)
下一篇:玩轉(zhuǎn) ESP32 + Arduino (十九) SIM800L調(diào)試(基于TTGO T-CALL)
- 熱門資源推薦
- 熱門放大器推薦
設計資源 培訓 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領先的新器件
- 意法半導體STM32MP23x:突破成本限制的工業(yè)AI應用核心
- 意法半導體推出用于匹配遠距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設置字重-ESP32篇
- 使用樹莓派進行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- ESP32-S3 雙模音箱 / USB DAC / ES8156
- 使用 Analog Devices 的 LT124XCJ8 的參考設計
- 萊洛三角V2-適配3205電機 兼容2204電機版本
- 無人機分電板開源
- LT1031 精密 10V 電壓基準的典型應用電路,具有無電流限制的升壓輸出電流
- 用于手機的 4-LED 白光 LED 驅(qū)動器
- OP497GSZ平方根放大器典型應用電路
- REF193 精密微功耗、低壓差電壓基準的典型應用
- DIY一臺SMT貼片機OpenPnP
- LT1784 的典型應用 - 采用 SOT-23 封裝的 2.5MHz、Over-the-Top 低功率、軌至軌輸入和輸出運算放大器
- 南芯科技推出高集成度多口移動電源解決方案,助力充電寶市場穩(wěn)健發(fā)展
- 英飛凌推出具有超低導通電阻的CoolSiC? MOSFET 750 V G2,適用于汽車和工業(yè)功率電子應用
- DigiKey 慶祝 B 站賬號粉絲突破 10 萬,贈送驚喜禮包
- 碳化硅企業(yè) Wolfspeed 啟動破產(chǎn)重組,預計 2025 年三季度末完成司法重整
- 蘋果被曝考慮放棄自研模型 轉(zhuǎn)而與Anthropic或OpenAI合作
- ?百度文心4.5來襲!英特爾Day0即支持端側(cè)部署
- 【廣瀨電機】關于中國發(fā)明專利侵權(quán)訴訟達成和解的公告
- 英飛凌BMS解決方案推動電動汽車創(chuàng)新
- 地平線的L3判斷與實踐路徑
- 汽車網(wǎng)絡升級攻略:CAN-CAN FD-車載以太網(wǎng)
- 只為關心你——Maxim 智能可穿戴 IC 解決方案 白皮書免費下載
- 勞動五月 曬“現(xiàn)場”,誰是電子工作狂?
- 喜大普奔,起底USB Tybe-C 五大干貨!
- 報名贏京東卡:安路FPGA研討會-成都站
- 有獎直播:新科技、新課堂、新學期~ ADI軟件定義無線電ADALM-Pluto入門實戰(zhàn)
- 精選PI InnoSwitch 產(chǎn)品系列文檔,為您的設計添光溢彩! 下載有好禮!
- 2024 DigiKey 應用說:樹莓派 5 在視頻直播中的應用
- 有獎直播|安森美圖像傳感器,助力汽車、機器視覺和人工智能領域發(fā)展
- 聯(lián)想栗子工業(yè)智能開發(fā)板搶先首發(fā)!免費申請進行時~另有12 月 22 日深圳技術沙龍邀您蒞臨!