(介紹與使用)物聯網NodeMCUESP8266(ESP-12F)連接新版onenet mqtt協議實現上傳數據(溫濕度)和下發指令(控制LED燈)

前言

本文詳細介紹了如何利用物聯網技術,通過NodeMCU ESP8266(ESP-12F)模塊連接到新版的OneNet平臺,使用MQTT協議實現數據的上傳與指令的下發。文中首先對NodeMCU ESP8266模塊及其特性進行了簡介,隨后詳細闡述了如何配置和使用MQTT協議連接到OneNet平臺,實現溫濕度數據的實時上傳。同時,文章也演示了如何從OneNet平臺下發指令控制遠端的LED燈,實現了物聯網設備的雙向通信。通過本文的步驟指導,讀者能夠掌握利用ESP8266模塊與OneNet平臺結合,通過MQTT協議進行數據通信的基本方法,并能夠在此基礎上開展更復雜的物聯網項目開發。本文適合對物聯網技術感興趣,希望了解ESP8266模塊與OneNet平臺結合應用的讀者。

前不久手上有了一個NodeMCUESP8266型號(ESP-12F)的單片機,然后也想做一個基于WIFI功能的遠程控制項目,我是用VScode的platformio組件,基本等同于Arduion IDE開發
下面我先說一下這兩者的區別,然后對每個部分的代碼講解一下,因為之前在網上搜的教程有點雜亂,就自己寫個教程方便自己參考

后續也會出一個微信小程序控制LED,舵機等等的操作

之前也是做過ESP8266-01S WIFI模塊
下面放上實物圖
NodeMCU ESP8266

NodeMCUESP8266
ESP8266-01S
在這里插入圖片描述

NodeMCU ESP8266和ESP8266-01S都是基于ESP8266芯片的開發板,它們可以用來開發物聯網(IoT)項目。盡管它們都基于相同的ESP8266芯片,但這兩個開發板在設計、功能、使用場景上有所不同。

區別

NodeMCU ESP8266

  1. 微控制器:NodeMCU內置的ESP8266芯片帶有一個32位的Tensilica L106微控制器,核心頻率可達80MHz到160MHz,配備了大約80KB的用戶數據RAM和最高上16MB的SPI閃存,用于程序存儲。

  2. IO功能豐富:NodeMCU板上一般提供可編程的GPIO引腳達到17個,支持UART、I2C、SPI等通信協議,以及1路ADC(模擬-數字轉換器),最大分辨率為10位。

  3. 網絡能力:支持IEEE 802.11 b/g/n Wi-Fi標準,集成式天線,可作為STA(客戶端)或AP(熱點)模式運行,也支持這兩種模式的混合運行,非常適合開發需要Wi-Fi功能的物聯網項目。

  4. 開發和編程:可以使用Lua語言進行腳本編程,同時支持Arduino IDE和其他ESP8266 SDK開發,方便開發者根據自己的喜好和項目需求進行選擇。USB端口直接連接電腦即可編程,也可用于電源供電。

使用場景展開

  • 環境監測:利用其GPIO接口連接多個傳感器,例如溫濕度傳感器、PM2.5空氣質量監測傳感器,實現環境監測站。
  • 智能家居控制中心:作為家中智能設備的中樞,控制燈光、空調、窗簾等。
  • 遠程監控系統:配合攝像頭使用,通過WiFi傳輸視音頻數據實現遠程監控。

ESP8266-01S

  1. 核心功能集中:ESP8266-01S是ESP8266系列的一種簡化模塊,盡管引腳較少,但提供了基本的GPIO、TX、RX等引腳,適合不需要大量外設連接的應用。

  2. 體積小巧:尺寸小,適合空間受限的設計,如穿戴設備、小型傳感器模塊等。

  3. 電源要求:需要穩定的3.3V電源供電,電流需求較高時(比如在WiFi通信時)至少為500mA,這對電源設計提出了一定的要求。

使用場景展開

  • 無線數據通訊模塊:為其他不具備WiFi功能的微控制器或設備添加無線數據通訊能力。
  • 物聯網節點:在節點數量眾多但每個節點功能相對簡單的物聯網應用場景,如簡單數據采集和傳輸,溫濕度監測等。
  • 家居自動化簡單項目:可以控制一兩個設備的打開關閉,例如智能插座。

創建OneNET新版 MQTT協議

這里我就直接放之前的文章,那些文章是使用ESP8266-01S配合其他型號單片機(不具備WIFI功能如51/stm32單片機)連接WIFI實現數據上傳和下發,外加微信小程序段教程
創建OneNET新版MQTT設備:實現遠程控制單片機 為微信小程序與單片機通信打基礎(微信小程序通信單片機前置任務)
在這里插入圖片描述
這里查看上面的文章創立圖中的物模型,如果沒有經驗的話強烈建議和我創建的內容一模一樣,等后續代碼跑通了再自己按需修改

編寫代碼芯片選擇

在這里插入圖片描述
串口設置
在這里插入圖片描述

注意事項

你需要將代碼改為你信息,信息獲取在上面的文章中有詳細的講解

有個重要的事項
在數據上傳那里,你必須確保上報的標識符和數據大小是符合你創建的物模型屬性的,否則串口顯示上報成功,onenet也會過濾你的信息,你可以每次一個一個的測試
例如你的溫度范圍是0-100,步長是0.1,你上傳了一個100.01或者101.1都是錯的,你整個上報的所有內容都失效

完整講解

#include <Arduino.h>
#include "ESP8266WiFi.h"
#include <PubSubClient.h>
String ssid= "ESP";
String password = "123456789";const char* mqtt_server = "mqtts.heclouds.com";
const int mqtt_port = 1883;
const char* deviceID = "test";  // 您的設備ID
const char* productID = "eb4Lr0apkE";  // 您的產品ID
const char* apiKey = "version=2018-10-31&res=products%2Feb4Lr0apkE%2Fdevices%2Ftest&et=2017757596000&method=md5&sign=y6ej0XbtuWmRH7gQKGUeSg%3D%3D";  // 您的APIKeyString commandTopic = "$sys/" + String(productID) + "/" + String(deviceID) + "/thing/property/set";WiFiClient espClient;
PubSubClient OneNET(espClient);void setup_wifi(String ssid,String password){WiFi.begin(ssid, password);static uint8_t count = 0;Serial.print("WiFi connecting");while (WiFi.status() != WL_CONNECTED) {if(++count >= 25) break;delay(500);Serial.print(".");}if(WiFi.status() == WL_CONNECTED){Serial.println("");Serial.println("WiFi connected!");Serial.println("IP: ");Serial.println(WiFi.localIP());}else if(WiFi.status() != WL_CONNECTED){Serial.println("");Serial.println("WiFi connected fail!");}
}void reconnect() {<

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713542.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713542.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713542.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Azkaban 大數據 任務調度

參考視頻&#xff1a;尚硅谷大數據Azkaban 3.x教程&#xff08;全新發布&#xff09;_嗶哩嗶哩_bilibili Azkaban&#xff1a; 是一個定時、批量工作流任務調度器(工作流程調度&#xff0c;定時調度) 常見的開源調度系統&#xff1a; 簡單單一的任務調度&#xff1a; Linux的…

嵌入式驅動學習第一周——Linux錯誤碼以及 IS_ERR、ERR_PTR、PTR_ERR

前言 本節來學習Linux錯誤碼&#xff0c;因為內核中的函數常常返回指針&#xff0c;如果出錯&#xff0c;也希望能夠通過返回的指針體現出來。 嵌入式驅動學習專欄將詳細記錄博主學習驅動的詳細過程&#xff0c;未來預計四個月將高強度更新本專欄&#xff0c;喜歡的可以關注本博…

【正點原子STM32】RNG硬件隨機數(隨機數發生器、真隨機和偽隨機、應用場景、RNG結構和原理、RNG相關寄存器和HAL庫驅動、RNG基本驅動步驟)

一、RNG簡介 二、RNG框圖介紹 三、RNG相關寄存器介紹 四、RNG相關HAL庫驅動介紹 五、RNG基本驅動步驟 六、編程實戰 七、總結 一、RNG簡介 隨機數發生器&#xff08;RNG&#xff09;在計算機科學和密碼學中具有廣泛的應用場景&#xff0c;包括但不限于以下幾個方面&#xff1a…

QML中動態表格修改數據

1.qml文件中的實現代碼 import QtQuick 2.15 import QtQuick.Window 2.15import QtQuick.Controls 2.0 import Qt.labs.qmlmodels 1.0 import QtQuick.Layouts 1.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")TableModel{id:table_model…

Python內置函數11——globals()、locals()

文章目錄 概要基礎用法 概要 globals()和locals()都是內置函數&#xff0c;用于獲取當前命名空間中的變量。 globals()函數返回全局命名空間的字典&#xff0c;包括全局變量、函數和模塊。它返回一個表示全局命名空間的字典。你可以使用該函數來查看和修改全局命名空間中的變量…

深入剖析k8s-控制器思想

引言 本文是《深入剖析Kubernetes》學習筆記——《深入剖析Kubernetes》 正文 控制器都遵循K8s的項目中一個通用的編排模式——控制循環 for {實際狀態 : 獲取集群中對象X的實際狀態期望狀態 : 獲取集群中對象X的期望狀態if 實際狀態 期望狀態 {// do nothing} else {執行…

buuctf misc做題筆記

喵喵喵 使用stegsolve.jar&#xff0c;按BGR順序提取出一個png圖片&#xff0c;是一個一半得二維碼&#xff0c;修改圖片高度后&#xff0c;解析出一個百度網盤地址&#xff0c;https://pan.baidu.com/s/1pLT2J4f 下載得到壓縮包flag.rar。解壓成功&#xff0c;但是報一個出錯…

4 在QEMU硬件模擬器中運行開源鴻蒙OpenHarmony4.1的操作系統,無需實體開發板

在QEMU硬件模擬器中運行開源鴻蒙OpenHarmony4.1的操作系統&#xff0c;無需實體開發板 作者將狼才鯨日期2024-03-01 先下載源碼和編譯程序&#xff1a; 查看 開源鴻蒙OpenHarmony4.1源碼下載、編譯&#xff0c;生成OHOS_Image可執行文件的最簡易流程 我準備在QEMU模擬器中運行…

LangChain---大型語言模型(LLM)的標準接口和編程框架

1.背景說明 公司在新的一年規劃中突然提出要搞生成式AI(GenAI)的相關東西&#xff0c;在公司分享的參考資料中了解到了一些相關的信息&#xff0c;之所以想到使用LangChain&#xff0c;是因為在應用中遇到了瓶頸問題&#xff0c;除了已經了解和研究過的OpenAI的ChatGpt&#xf…

藍橋杯Java B組歷年真題(2013年-2019年)

一、2013年真題 1、世紀末的星期 使用日期類判斷就行&#xff0c;這里使用LocalDate&#xff0c;也可以使用Calendar類 答案 2099 使用LocalDate import java.time.LocalDate; import java.time.format.DateTimeFormatter; // 1:無需package // 2: 類名必須Main, 不可修改p…

1小時網絡安全事件報告要求,持安零信任如何幫助用戶應急響應?

12月8日&#xff0c;國家網信辦起草發布了《網絡安全事件報告管理辦法&#xff08;征求意見稿&#xff09;》&#xff08;以下簡稱“辦法”&#xff09;。擬規定運營者在發生網絡安全事件時應當及時啟動應急預案進行處置。 1小時報告 按照《網絡安全事件分級指南》&#xff0c…

速盾:動態網站用cdn更慢嗎

當談到網站速度時&#xff0c;內容傳遞網絡&#xff08;Content Delivery Network&#xff0c;CDN&#xff09;是不可忽視的一個因素。很多人可能有疑惑&#xff0c;動態網站使用CDN是否會導致加載速度變慢。為了解決這個問題&#xff0c;我們需要了解動態網站和CDN的工作原理&…

mybatis動態加載mapper.xml

mybatis動態加載mapper.xml mybatis動態加載mapper.xml、springboot mybatis動態加載mapper.xml 教程連接&#xff1a;https://blog.csdn.net/weixin_44480167/article/details/136356398

測試linux系統某些文件屬性之test命令

要檢測系統上某些文件或相關屬性時&#xff0c;我們可以使用test命令&#xff0c;比如&#xff1a;檢查/root/ztj.txt文件是否存在&#xff0c;可以使用test -e /root/ztj.txt命令&#xff0c;不過執行結果不會顯示任何信息&#xff0c;需配合$?或&&及||來展現具體結果…

Find My掃地機器人|蘋果Find My技術與機器人結合,智能防丟,全球定位

掃地機器人又稱自動打掃機、智能吸塵、機器人吸塵器等&#xff0c;是智能家電的一種&#xff0c;能憑借人工智能&#xff0c;自動在房間內完成地板清理工作。一般采用刷掃和真空方式&#xff0c;將地面雜物先吸納進入自身的垃圾收納盒&#xff0c;從而完成地面清理的功能。現今…

[AutoSar]BSW_Com07 CAN報文接收流程的函數調用

目錄 關鍵詞平臺說明一、背景二、順序總覽三、函數說明3.1 Com_RxIndication&#xff08;&#xff09; 關鍵詞 嵌入式、C語言、autosar、OS、BSW 平臺說明 項目ValueOSautosar OSautosar廠商vector &#xff0c;芯片廠商TI 英飛凌編程語言C&#xff0c;C編譯器HighTec (GCC)…

貝葉斯定理與條件獨立假設:樸素貝葉斯分類方法深度解讀

今天給大家分享的是樸素貝葉斯算法&#xff0c;這個算法在實際使用中不是很多&#xff0c;因為現在很多算法已經發展的很好&#xff0c;性能上也比樸素貝葉斯算法的好很多&#xff0c;因此在實際中我們其實看到在實際應用中樸素貝葉斯算法的使用已經比較少&#xff0c;即使出現…

HotFix原理學習 IL2CPP 學習

原文鏈接&#xff1a;Unity 游戲用XLua的HotFix實現熱更原理揭秘-CSDN博客 本文通過對XLua的HoxFix使用原理的研究揭示出來這樣的一套方法。這個方法的 第一步&#xff1a;通過對C#的類與函數設置Hotfix標簽。來標識需要支持熱更的類和函數。第二步&#xff1a;生成函數連接器…

好視通視頻會議系統存在任意文件讀取漏洞復現 [附POC]

漏洞簡介 好視通視頻會議是由深圳市華視瑞通信息技術有限公司開發&#xff0c;其在國內率先推出了3G互聯網視頻會議&#xff0c;并成功應用于SAAS領域。 資產 FOFA:app"好視通-視頻會議" POC GET /register/toDownload.do?fileName../../../../../../../../../.…

代碼隨想錄-回溯算法

組合 //未剪枝 class Solution {List<List<Integer>> ans new ArrayList<>();Deque<Integer> path new LinkedList<>();public List<List<Integer>> combine(int n, int k) {backtracking(n, k, 1);return ans;}public void back…