日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

vc 控制台添加托盘显示_开源:ESP8266读DHT11温湿度,小程序实时显示

發布時間:2023/12/4 c/c++ 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vc 控制台添加托盘显示_开源:ESP8266读DHT11温湿度,小程序实时显示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一、原理講解

原理簡述:利用發布訂閱模式。第一步,先讀取DHT11溫濕度數值,第二步,新建主題,然后esp8266往這個主題發送消息,第三步。小程序通過http API接口獲取數據。小程序控制原理:esp8266訂閱了一個主題,小程序往這個主題發消息,esp8266就可以收到消息,就可以執行相關控制指令了(開/關函數)

關于發布訂閱:

訂閱(訂閱):訂閱給定的一個主題/頻道的信息。 發布(發布)將信息發送到指定的主題/頻道。

只有訂閱該主題的設備才可以收到發往該主題的消息。

通俗的來講:就是像郵件訂閱的場景,什么意思呢,也就是說100個人訂閱了你的博客,如果博主發表了文章,那么100個人就會同時收到通知郵件,訂閱/發布模式就是這樣的原理。

如果還不理解的話再通俗講一下,就像生活中聽收音機,要想聽收音機,肯定就是調頻啦,只有在正確的頻道上面,我們才能聽得到好聽的節目,所以說訂閱首先要訂閱一個頻道/主題,只有訂閱了該主題,我們才能收到發往該頻道/主題的消息。

程序講解:在本示例中,ESP8266 有兩個角色,一個是temp(傳感器數據)主題消息的發布者,esp8266往這個主題推送消息,小程序就可以收到傳感器數據了。 esp8266聯網后,訂閱light002,手機往這個主題推送消息,esp8266就能收到手機的控制的指令了。

第二、ESP8266讀取DHT11

這里使用的是D4口。

本demo 是利用arduino IDE開發,關于arduino IDE 的ESP8266環境配置可參考:環境配置: 點擊跳轉

安裝庫 本案例使用一個非常簡單易用且與ESP8266配合使用的是Simple DHT傳感器庫。可以通過Arduino IDE Library Manager輕松安裝該庫。


在 arduino IDE上方選項處----> 工具--->管理庫,然后直接搜索dht11即可。點擊安裝庫,如下圖:

測試程序:

#include <SimpleDHT.h>// for DHT11, // VCC: 5V or 3V // GND: GND // DATA: 2 int pinDHT11 = D4; SimpleDHT11 dht11(pinDHT11);void setup() {Serial.begin(115200); }void loop() {// start working...Serial.println("=================================");Serial.println("Sample DHT11...");// read without samples.byte temperature = 0;byte humidity = 0;int err = SimpleDHTErrSuccess;if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000);return;}Serial.print("Sample OK: ");Serial.print((int)temperature); Serial.print(" *C, "); Serial.print((int)humidity); Serial.println(" H");// DHT11 sampling rate is 1HZ.delay(1500); }

正常工作的話,串口會正常輸出的,如下圖所示:

第三、溫濕度推送到云端

如果上一步的溫濕度可以讀取輸出,那么就可以在上版的基礎上,把數據上傳到云端。

增加了按鈕控制,數據用#號包裹,以便app采用字符串切割,分割出來數據,&msg=#23#80#on#rn,即#溫度#濕度#按鈕狀態#,app端會根據#號分割字符串進行取值,以便顯示。

如果上傳的數據不止溫濕度,可在#號后面繼續添加&msg=#23#80#data1#data2#data3#data4#rn,app字符串分割的時候,要根據上傳的數據進行分割

升級版程序下載:

點擊下載 http://www.cloud.bemfa.com/zip/dht11_LED.zip

需要修改的地方

///****************需要修改的地方*****************/////WIFI名稱,區分大小寫,不要寫錯 #define DEFAULT_STASSID "newhtc" //WIFI密碼 #define DEFAULT_STAPSW "qq123456" //用戶私鑰,可在控制臺獲取,修改為自己的UID String UID = "7d54f85af42976ee3c2693e692a6bb59"; //主題名字,可在控制臺新建 String TOPIC = "temp"; //用于傳輸溫濕度的主題 //DHT11引腳值 int pinDHT11 = D4; //連接dht11的引腳 //單片機LED引腳值 const int LED_Pin = D2; //假設連接led的引腳 //主題名字,可在控制臺新建 String TOPIC2 = "light002"; //用于led控制的主題///*********************************************///

在巴法創客云控制臺 新建一個主題,主題名字隨意,例如temp,本實例用用temp,使用示例代碼時應修改為自己的主題名字,字母或數字或字母加數字組合。UID為用戶私鑰,在 巴法創客云控制臺 注冊登陸后可獲得。 登陸完成后,可在控制臺看到自己的私鑰UID,如圖所示:

創建主題,在控制臺,可創建主題。

  • 第一輸入主題,字母或數字或字母+數字組合。
  • 點擊創建主題,要創建兩個主題,一個主題用來傳遞傳感器數據,另一個主題用來進行LED燈的控制。在本例程中一個主題名字是:temp ,另一個主題名字是:light002,可自定義或修改,不過下方小程序里面的主題名字要和esp8266的主題保持一致,以便正常的往同一個主題發布訂閱。

WIFI名稱為自己的路由器WIFI名稱,區分大小寫,寫錯會導致連接不上網絡的。

例程中,每兩秒上傳一次數據:

if(millis() - preHeartTick >= upDataTime){//上傳數據preHeartTick = millis();/*****************獲取DHT11 溫濕度*****************/// read without samples.byte temperature = 0;byte humidity = 0;int err = SimpleDHTErrSuccess;if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000);return;}/*********************數據上傳*******************/String upstr = "";upstr = "cmd=2&uid="+UID+"&topic="+TOPIC+"&msg=#"+temperature+"#"+humidity+"#"+bt_status+"#rn";sendtoTCPServer(upstr);upstr = "";}

如果路由器有網絡的話,數據會自動上傳,可在巴法創客云控制臺 刷新網頁,即可看到上傳的數據。如下圖所示:

數據上傳時用#號進行了封裝,27是溫度,24是濕度,off是上傳的燈的狀態。

第四、小程序開發

在 公眾平臺注冊小程序賬號,拿到小程序 appid,長的大概是這樣:34a2063de5cec04b,下面導入項目的時候會用到。

右側點擊 -開發--》開發設置--》下方服務器域名處,點擊修改,在request合法域名處,添加域名https://api.bemfa.com/ 保存提交即可。如下圖。

下載安裝開發者工具。 下載demo示例程序。下載地址: 點擊下載

打開開發者工具,小程序項目,導入項目。在目錄處選擇剛剛下載解壓的demo示例程序,AppID處填入你的小程序AppID,然后點擊下方導入即可。如下圖。

本示例程序非常簡單,各位大神可以繼續開發添加各種功能,添加背景,優化色彩等等,如果只是簡單使用,只需修改/pages/index/index.js 文件中uid 和topic 信息為自己的即可,這里的uid和topic需要和esp8266填入的uid和topic相同,這里有兩個主題,一個用于傳輸溫度和濕度,一個用于控制LED。如下圖。

修改完畢后,ctrl+s 保存修改。可以點擊左邊屏幕上的按鈕進行調試,如下圖。

console控制臺可以查看小程序的調試信息。默認每2秒會自動請求一下服務器上的數據,以便查看esp8266的狀態信息。點擊打開或者關閉按鈕,打開esp8266串口調試助手,可查看esp8266是否收到指令,如果第一步esp8266已聯網,都是可以收到信息的。

如果界面和其他功能都開發完畢。可以點擊開發者工具的上面的上傳按鈕,如下圖。

上傳成功后,再登陸剛剛注冊的公眾平臺,在版本管理處,可以看到自己剛剛上傳的小程序,提交審核即可,等一天左右,一般都會通過,通過后登陸公眾平臺,提交發布即可。如果是自己使用的,做好加上登陸驗證功能,比如驗證匹配一下某個字符串是否正確等等,不然小程序上線后別人也可以隨意控制了。

總結

以上是生活随笔為你收集整理的vc 控制台添加托盘显示_开源:ESP8266读DHT11温湿度,小程序实时显示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。