下期第11堂[IOT機器人] [Line接收數據]

今天要利用Line傳訊機器人,把物聯網蒐集到的數據,傳送到聊天室,用手機就可以隨時掌握訊息。


建置主板


連接DHT11

接線:
GND— G
VCC— 3V
S — D1

注意 : D1不是第1腳


測試感測溫度

http://hower.forwebs.net/robot/archives/1057


申請 Line Notify


下載

https://github.com/TridentTD/TridentTD_LineNotify

放在


#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <DHT.h>
#include <TridentTD_LineNotify.h>

#define DHTTYPE DHT11
#define DHTPIN  5

// 修改 Token號碼
#define LINE_TOKEN ""

// 無線基地台SSID跟密碼
const char* ssid     = "";
const char* password = "";

DHT dht(DHTPIN, DHTTYPE, 11);    // 11 works fine for ESP8266
 
float humidity, temp_f;   // 從 DHT-11 讀取的值

unsigned long previousMillis = 0;        // will store last temp was read
const long interval = 2000;              // interval at which to read sensor

 
void setup(void)
{
  Serial.begin(9600);  // 設定速率 感測器
  dht.begin();           // 初始化

  WiFi.mode(WIFI_STA);
  // 連接無線基地台
  WiFi.begin(ssid, password);
  Serial.print("\n\r \n\rWorking to connect");

  // 等待連線,並從 Console顯示 IP
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("DHT Weather Reading Server");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}
 
void loop(void)
{
  // 量測間等待至少 2 秒
  unsigned long currentMillis = millis();
 
  if(currentMillis - previousMillis >= interval) {
    // 將最後讀取感測值的時間紀錄下來 
    previousMillis = currentMillis;   

    // 讀取溫度大約 250 微秒!
    humidity = dht.readHumidity();          // 讀取濕度(百分比)
    temp_f = dht.readTemperature(true);     // 讀取溫度(華氏)
    
 
    // 檢查兩個值是否為空值
    if (isnan(humidity) || isnan(temp_f)) {
       Serial.println("Failed to read from DHT sensor!");
       return;
    }
  }

  String tempe="溫度:"+String((int)(temp_f-32)*5/9)+"℃";   
  String humid="濕度:"+String((int)humidity)+"%";

  // 顯示 Line版本
  Serial.println(LINE.getVersion());
 
  LINE.setToken(LINE_TOKEN);

  // 先換行再顯示
  LINE.notify("\n" + tempe + " ;" + humid);
      
  // 每2分鐘發送一次
  delay(120000);
}


練習一下

改個歡迎詞吧


2分鐘間隔是為了測試,實際使用不要如此密集,

更高級的方法,可以思考如何寫成”溫度有所變動才發訊”


請上 Google Classroom 回答今日問題

請小組規畫一個IOT的作品


您可能也會喜歡…

發佈留言