亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

ESP8266+Blinker 的萬(wàn)物互聯(lián)(智能家居篇)

CntChen / 976人閱讀

摘要:下面是演示視頻物聯(lián)網(wǎng)文章目錄前言一準(zhǔn)備二操作步驟配置配置三效果展示總結(jié)前言實(shí)現(xiàn)萬(wàn)物互聯(lián)第一步,千里點(diǎn)燈,然后添加你想要的模塊就可以了,接下來(lái)我們進(jìn)入正文。

前面學(xué)習(xí)了使用ESP8266將溫濕度等上傳到阿里云平臺(tái),于是我想起來(lái)了萬(wàn)物互聯(lián),就想先做個(gè)有關(guān)智能家居的,通過(guò)查閱資料發(fā)現(xiàn)了Blinker(輕松物聯(lián)網(wǎng))。下面是演示視頻

Esp8266物聯(lián)網(wǎng)


前言

實(shí)現(xiàn)萬(wàn)物互聯(lián)第一步,千里點(diǎn)燈,然后添加你想要的模塊就可以了,接下來(lái)我們進(jìn)入正文。

一、準(zhǔn)備

ESP8266開(kāi)發(fā)板
溫濕度傳感器
MQ-3傳感器
土壤濕度傳感器
OLED顯示屏
燈、繼電器、風(fēng)扇
舵機(jī)
穩(wěn)壓模塊
電池

這些便是所需要的硬件,軟件的話,需要Arduino ide和手機(jī)APP點(diǎn)燈Blinker
App直接走應(yīng)用商城里下載即可

二、操作步驟

1.Blinker配置


第一步添加獨(dú)立設(shè)備

這里選擇網(wǎng)絡(luò)接入,然后會(huì)生成KEY,保存好這個(gè)密鑰,接下來(lái)會(huì)用到

接下來(lái)我們進(jìn)行相應(yīng)的配置

選擇你需要的組件即可,你也可以添加自己想要的組件

這是Blinker端的配置就基本完成了,接下來(lái)我們進(jìn)入ESP8266端。

2.ESP8266配置

具體的配置我不多說(shuō)了,很簡(jiǎn)單,這里我直接附上源碼。

#define BLINKER_WIFI#define BLINKER_MIOT_LIGHT//#define BLINKER_WITHOUT_SSL      //非SSL加密通信接入,省堆棧  */#include #include                   //加載舵機(jī)庫(kù)   #include     #include #include Servo myservo;                      //定義舵機(jī)對(duì)象#define sensor_Pin   0int servo1 = 16;                    //IO14(D5),用來(lái)做控制舵機(jī)int servo_open = 70;                //舵機(jī)打開(kāi)開(kāi)關(guān)的角度,自己可以實(shí)際測(cè)試,更改適合的角度int servo_close = 0;                //舵機(jī)關(guān)閉開(kāi)關(guān)的角度#define LED   2  // 板子上的燈#define LE   14  // 板子上的燈 float humi_read = 0, temp_read = 0,val,soil_data = 0; //下面3項(xiàng)需要根據(jù)實(shí)際填寫char auth[] = "********"; // blinker app提供的秘鑰char ssid[] = "*******";// wifi 名字char pswd[] = "******";// wifi 密碼 // 新建組件對(duì)象BlinkerButton Button1("btn-abc");//注意:要和APP組件’數(shù)據(jù)鍵名’一致BlinkerButton Button2("btn-ab");//注意:要和APP組件’數(shù)據(jù)鍵名’一致BlinkerButton Button3("btn-abcd");//注意:要和APP組件’數(shù)據(jù)鍵名’一致BlinkerButton Button4("btn-a");//注意:要和APP組件’數(shù)據(jù)鍵名’一致BlinkerNumber HUMI("num-e");BlinkerNumber TEMP("num-d");BlinkerNumber MQ("num-n");BlinkerNumber T("num-z");#define DHTPIN 5  // #define DHTTYPE DHT11   // DHT 11 DHT dht(DHTPIN, DHTTYPE); void heartbeat(){    //反饋溫度數(shù)據(jù)    soil_data = analogRead(sensor_Pin);   //模擬數(shù)據(jù)讀?。ˋ0腳輸入的數(shù)據(jù))385-1024    soil_data -= 385;         //0-639    soil_data /= 6.39;        //0.00-100.00,變?yōu)榘俜直?/span>    soil_data = 100 - soil_data;         //修改為百分比越大濕度越大     int analogValue = analogRead(A0);     val = 0;    HUMI.print(humi_read);    //反饋濕度數(shù)據(jù)    TEMP.print(temp_read);      MQ.print(val);    T.print(soil_data);}void button1_callback(const String & state) {    BLINKER_LOG("get button state: ", state);    digitalWrite(LED, !digitalRead(LED)); } void button2_callback(const String & state) {    BLINKER_LOG("get button state: ", state);    digitalWrite(LE, !digitalRead(LE));   }void button3_callback(const String & state) {    BLINKER_LOG("get button state: ", state);    if (state=="on") {         myservo.write(servo_open);          // 反饋開(kāi)關(guān)狀態(tài)        Button1.print("on");    } else if(state=="off"){        myservo.write(servo_open);        // 反饋開(kāi)關(guān)狀態(tài)        Button1.print("off");    }    }void button4_callback(const String & state) {    BLINKER_LOG("get button state: ", state);    if (state=="on") {         myservo.write(servo_close);          // 反饋開(kāi)關(guān)狀態(tài)        Button1.print("on");    } else if(state=="off"){        myservo.write(servo_close);        // 反饋開(kāi)關(guān)狀態(tài)        Button1.print("off");    }    }void setup() {    // 初始化串口,并開(kāi)啟調(diào)試信息,調(diào)試用可以刪除    Serial.begin(115200);      Wire.begin(12,13);  oled.init();                      // Initialze SSD1306 OLED display  oled.clearDisplay();              // Clear screen   oled.setTextXY(0,0);              // Set cursor position, start of line 0  oled.putString("Temp:  *C");  oled.setTextXY(1,0);              // Set cursor position, start of line 1  oled.putString("Humi:  %");  oled.setTextXY(2,0);              // Set cursor position, start of line 2  oled.putString("soil:  dS/m");  oled.setTextXY(3,0);             // Set cursor position, line 2 10th character  oled.putString("C7H8:  mg/m3");    BLINKER_DEBUG.stream(Serial);    // 初始化IO    pinMode(LED, OUTPUT);     digitalWrite(LED, LOW); // 初始化 led 高電平 ,則燈熄滅狀態(tài)     pinMode(LE, OUTPUT);     digitalWrite(LE, HIGH); // 初始化 led 高電平 ,則燈熄滅狀態(tài)    myservo.attach(servo1);           //設(shè)置指定io為舵機(jī)    myservo.write(servo_close);       //控制舵機(jī)旋轉(zhuǎn)到指定角度    // 初始化blinker    Blinker.begin(auth, ssid, pswd);    Button1.attach(button1_callback);    Button2.attach(button2_callback);    Button3.attach(button3_callback);    Button4.attach(button4_callback);    Blinker.attachHeartbeat(heartbeat);    dht.begin();} void loop() {    Blinker.run();     float h = dht.readHumidity();    float t = dht.readTemperature();      oled.setTextXY(0,5);              // Set cursor position  oled.putString("  ");  oled.setTextXY(0,5);   oled.putNumber(float(t));         oled.setTextXY(1,5);              // Set cursor position  oled.putString("  ");  oled.setTextXY(1,5);   oled.putNumber(float(h));    oled.setTextXY(2,5);              // Set cursor position  oled.putString("  ");  oled.setTextXY(2,5);   oled.putNumber(float(soil_data));      oled.setTextXY(3,5);              // Set cursor position  oled.putString("  ");  oled.setTextXY(3,5);   oled.putNumber(float(val));    /*    if (isnan(h) || isnan(t))    {        BLINKER_LOG("Failed to read from DHT sensor!");    }    else    {        BLINKER_LOG("Humidity: ", h, " %");        BLINKER_LOG("Temperature: ", t, " *C");         BLINKER_LOG("MQ: ", val, " %");           BLINKER_LOG("T: ", soil_data, " %");*/        humi_read = h;        temp_read = t;    //}}

代碼很簡(jiǎn)單也很好理解,按照代碼里的注釋操作即可。

三、效果展示



可以將溫濕度,土壤濕度,甲烷濃度上傳到你的手機(jī)APP上,即使遠(yuǎn)在千里也能實(shí)時(shí)查看。

總結(jié)

萬(wàn)物互聯(lián)這個(gè)名詞聽(tīng)起來(lái)就有趣,寫這篇博客一方面是記錄自己的學(xué)習(xí)生活,另一方面幫助那些需要的同學(xué)也給自己做個(gè)備份,加油。
這里也送給大家一句話:
人生就像一只儲(chǔ)蓄罐,你投入的每一分努力都會(huì)在未來(lái)的某一天回饋于你。流年笑擲,未來(lái)可期。只有努力奮斗,才會(huì)有美好的前程。加油!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/124733.html

相關(guān)文章

  • ESP8266-NodeMCU項(xiàng)目(三):ESP8266-NodeMCU+Blinker+紅外模塊(

    摘要:紅外模塊接入板子后,可進(jìn)行以上操作,并接入,通過(guò)控制空調(diào)。材料清單板子紅外接收模塊紅外發(fā)射模塊線杜邦線左邊是紅外發(fā)射模塊,右邊是紅外接收模塊。 錯(cuò)開(kāi)の折騰經(jīng)歷:ES...

    luoyibu 評(píng)論0 收藏0
  • 01.ESP8266開(kāi)發(fā)方式知多少

    摘要:開(kāi)發(fā)方式是樂(lè)鑫為開(kāi)發(fā)者提供的物聯(lián)應(yīng)開(kāi)發(fā)平臺(tái),包括基礎(chǔ)平臺(tái)以及上層應(yīng)開(kāi)發(fā)示例,如智能燈智能開(kāi)關(guān)等。指令開(kāi)發(fā)方式作為芯片,指令開(kāi)發(fā)也是必不可少的。開(kāi)發(fā)方式即,意為運(yùn)行在單片機(jī)上的。 ...

    sushi 評(píng)論0 收藏0
  • ESP8266-NodeMCU項(xiàng)目(四):將上一項(xiàng)目空調(diào)控制接入小愛(ài)同學(xué)(Blinker_APP同

    摘要:錯(cuò)開(kāi)折騰經(jīng)歷文章目錄前言思路設(shè)備配置程序代碼小愛(ài)訓(xùn)練測(cè)試總結(jié)前言之前已經(jīng)進(jìn)行了項(xiàng)目二接入小愛(ài)同學(xué)以及項(xiàng)目三空調(diào)控制,接下來(lái)便是將二者合一,實(shí)現(xiàn)控制,溫濕度查看,以及小愛(ài)同學(xué)進(jìn)行簡(jiǎn)單空調(diào)控制。 ...

    Loong_T 評(píng)論0 收藏0
  • 三年探索:一條自控、電信/科類學(xué)生技術(shù)成長(zhǎng)路線

    摘要:所以我必須基于自己現(xiàn)在的情況走出一條適合自己情況的成長(zhǎng)路線。下位機(jī)上位機(jī)的思想下位機(jī)上位機(jī)這就是我自己探索出來(lái)的技術(shù)成長(zhǎng)路線。對(duì)和嵌入式的朋友感興趣的朋友可以試一下我這條學(xué)習(xí)路線 ...

    Miracle 評(píng)論0 收藏0
  • 【基于Arduino IDE平臺(tái)開(kāi)發(fā)ESP8266連接巴法云】

    摘要:教程傳送門基于平臺(tái)開(kāi)發(fā)連接巴法云簡(jiǎn)介實(shí)驗(yàn)準(zhǔn)備硬件軟件實(shí)驗(yàn)步驟點(diǎn)燈實(shí)驗(yàn)發(fā)送溫濕度指令升級(jí)總結(jié)關(guān)于巴法云專注于開(kāi)源,智造,創(chuàng)新,分享。 Arduino教程傳送門????...

    不知名網(wǎng)友 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<