摘要:下面是演示視頻物聯(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)入正文。
ESP8266開(kāi)發(fā)板
溫濕度傳感器
MQ-3傳感器
土壤濕度傳感器
OLED顯示屏
燈、繼電器、風(fēng)扇
舵機(jī)
穩(wěn)壓模塊
電池
這些便是所需要的硬件,軟件的話,需要Arduino ide和手機(jī)APP點(diǎn)燈Blinker
App直接走應(yīng)用商城里下載即可
第一步添加獨(dú)立設(shè)備
這里選擇網(wǎng)絡(luò)接入,然后會(huì)生成KEY,保存好這個(gè)密鑰,接下來(lái)會(huì)用到
接下來(lái)我們進(jìn)行相應(yīng)的配置
選擇你需要的組件即可,你也可以添加自己想要的組件
這是Blinker端的配置就基本完成了,接下來(lái)我們進(jìn)入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í)查看。
萬(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
摘要:紅外模塊接入板子后,可進(jìn)行以上操作,并接入,通過(guò)控制空調(diào)。材料清單板子紅外接收模塊紅外發(fā)射模塊線杜邦線左邊是紅外發(fā)射模塊,右邊是紅外接收模塊。 錯(cuò)開(kāi)の折騰經(jīng)歷:ES...
摘要:開(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ī)上的。 ...
摘要:錯(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)控制。 ...
摘要:所以我必須基于自己現(xiàn)在的情況走出一條適合自己情況的成長(zhǎng)路線。下位機(jī)上位機(jī)的思想下位機(jī)上位機(jī)這就是我自己探索出來(lái)的技術(shù)成長(zhǎng)路線。對(duì)和嵌入式的朋友感興趣的朋友可以試一下我這條學(xué)習(xí)路線 ...
摘要:教程傳送門基于平臺(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教程傳送門????...
閱讀 977·2021-11-24 09:38
閱讀 1160·2021-10-08 10:05
閱讀 2661·2021-09-10 11:21
閱讀 2859·2019-08-30 15:53
閱讀 1879·2019-08-30 15:52
閱讀 2034·2019-08-29 12:17
閱讀 3485·2019-08-29 11:21
閱讀 1676·2019-08-26 12:17