2019年6月18日 星期二

用wemos d1 mini 玩物聯網(6) IFTTT 的介紹與基本使用

一、IFTTT簡介

FTTT 簡單來說就是 當 什麼 發生時 就做 什麼 事, 這 2 個「什麼」就是「服務」, 讓不同的平台、服務可以整合在一起。

二、使用方法
(1)註冊 官網:https://ifttt.com/  ,請點選 Sign Up 註冊帳號,  或是直接按Sign In ,可以利用GMAIL帳號作同步認證作登入






(2)登入後,點選個人帳號,再點選New Applet,將會有一系列的步驟來協助建立。

再點選 「+this」



步驟1.Choose a service, 我們選擇 webhook進行篩選,再點選藍色方塊,進入下個步驟。

        所謂的webhook的利用傳送一段網址給ifttt, 來觸發程式。


步驟2.Choose trigger(選擇觸發器),將你的「事件」命名,我們 命名為tt123  ,是利用「收到網絡請求」的方式來進行。


步驟3. 接下來設定系統要做什麼事情,點選「+that」

    選擇一個行動的服務,我們選擇用「email」來通知該事件被觸發,也就是事件觸發後立即發信。內建信箱是登入的email, 當然也可以選擇line,

步驟4 .點選,send me a email 藍色方塊,進行設定




步驟5 建立通知email的內容格式設定,有支援中文。
(1) evenName:代表觸發器名稱,以本例為tt123

(2)OccurredAt 代表發生時間

(3)Value1 , Value2, Valu3代表要傳送的資料

用兩個大括號,前後夾,代表它是一個變數,不要去動到。






步驟6 完成後,點選下 Receive notifications when this Applet runs 即可完成啟動。


步驟 7
接下來進行 尋找觸發的網址格式,我們直接進到以下網址 
https://ifttt.com/maker_webhooks,選擇右上角的「Document」

觸發器名稱:tt123
your key=系統會給您一串文字

填入觸發器的名稱,按下「Test It!」即可進行測試。

也可以直接打入以下網址:
即可以試驗,其中value1=a代表會傳遞a
https://maker.ifttt.com/trigger/tt123/with/key/your key?valu1=a&value=b&value=c




t3.php

<?php
$url ="http://maker.ifttt.com/trigger/line_0606/with/key/bEcMfXQzyIpvECSsXvEJ2n?";
$url .="value1=a&value22=b&value3=c";

echo $response = file_get_contents($url);
?>


參考資料
  1. http://blog.ilc.edu.tw/blog/index.php?op=printView&articleId=675501&blogId=868
  2. http://hammer1007.blogspot.com/2018/07/esp82665-5ifttt-line.html







用wemos d1 mini 玩物聯網(5)-DHT11 溫溼度感測器

一、課程目標:

學習使用DHT11溫溼度感應器來測量溫度


二、匯入函式庫
Arduino IDE 整合環境
功能表點選 草稿碼 / 匯入程式庫 / 管理程式庫

我們選擇 SimpleDHT,再按安裝


安裝的程式庫位於「C:\使用者\電腦名稱\文件\Arduino\libraries」資料夾中。

三、接線圖
"+" vcc 極接5V,v
"-" Gnd 極接GND,
data pin接上要輸入的Pin腳=>接在13 (D7)
四、程式碼
點選「範例」->SimpleDHT->DHT11Default

#include <SimpleDHT.h>

// for DHT11, 
//      VCC: 5V or 3V
//      GND: GND
//      DATA: 2
int pinDHT11 = 13;//data PIN 在D7=>也就是13
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);
}

伍、執行結果



六、程式碼2
#include <SimpleDHT.h>
#include <Wire.h>
#include <esp_LiquidCrystal_I2C.h>

esp_LiquidCrystal_I2C mylcd(0x27, 16, 2);
// for DHT11, 
//      VCC: 5V or 3V
//      GND: GND
//      DATA: 13
int pinDHT11 = 13;//di mini D7 DHT11腳位在D7 , 也就是13
SimpleDHT11 dht11(pinDHT11);
int no = 0;//計數器
void setup() {
  Serial.begin(115200);
  mylcd.init();
  mylcd.backlight();
  mylcd.setCursor(0, 0);
  mylcd.print("Welcome to");
  mylcd.setCursor(0, 1);
  mylcd.print("DHT 11");
  
}

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);
     mylcd.setCursor(0, 0);
    mylcd.print("Read DHT11 failed"); 
    return;
  }
  
  Serial.print("Sample OK: ");
  Serial.print((int)temperature); Serial.print(" *C, "); 
  Serial.print((int)humidity); Serial.println(" H");

 mylcd.clear();
    mylcd.setCursor(0, 0);
    mylcd.print("NO:");
    mylcd.print(no);
    mylcd.setCursor(0, 1);
    mylcd.print(String("T:") + String(temperature) + String("C"));
    mylcd.setCursor(9, 1);
    mylcd.print(String("H:") + String(humidity) + String("%"));
 no++;
  delay(3000);//每三秒重新測量
}

2019年6月9日 星期日

用wemos d1 mini 玩物聯網(4)-2x16LCD顯示器

一、課程目標:

  1. 學習使用I2C 2X16 lcd
  2. i2c為一種通訊界面,2x16代表lcd為二行,每行可以顯示16個字母。

二、接線圖

  • Wemos Mini LCD1602
  • GND GND
  • 3v3 VCC
  • D2 SDA
  • D1 SCL





圖片來源http://www.esp8266learning.com/wemos-bmp180-readings-oled-display-simple-project.php

三、程式碼
#include <Wire.h>
#include <esp_LiquidCrystal_I2C.h>

esp_LiquidCrystal_I2C mylcd(0x27, 16, 2);
void setup()
{
  mylcd.init();
  mylcd.backlight();
  mylcd.setCursor(0, 0);
  mylcd.print("Welcome to");
  mylcd.setCursor(0, 1);
  mylcd.print("wemos d1 mini");
}


void loop()
{

}
四、執行結果


伍、參考資料

2019年3月9日 星期六

用SensorBoard 玩 Arduino (9) 伺服馬達的使用(servo motor)

一、接線圖
我們使用為SG-90伺服馬達,可以自行設轉動角度,有三條線,電源(紅色)、接地(黑或棕色)、訊號線(白、黃、橘、藍,甚至是黑色),將其接在D3
底下是Tower Pro SG90的規格:
重量:9g
尺寸:23*12.2*29mm
工作電壓:4.8V
轉矩:1.8kg-cm,當工作電壓為4.8V時
運轉速度:0.1秒 ∕ 60度 ,當工作電壓為4.8V時
脈衝寬度範圍:500~2400µs
死頻帶寬度(dead band width):10µs。




二、程式碼

1.可以直接指訂轉動角度,接在D3,以下將轉動90度





2.配合可變電阻(A0),將其值0-1023轉成0-180度。  其中 1023/180約5.68


三、學生作業:
1.請配合DHT11溫度感測器,設定一個指針型的溫度計。

2019年1月14日 星期一

用SensorBoard 玩 Arduino (8) IFTTT 的介紹與基本使用

一、IFTTT簡介

FTTT 簡單來說就是 當 什麼 發生時 就做 什麼 事, 這 2 個「什麼」就是「服務」, 讓不同的平台、服務可以整合在一起。

二、使用方法
(1)註冊 官網:https://ifttt.com/  ,請點選 Sign Up 註冊帳號,  或是直接按Sign In ,可以利用GMAIL帳號作同步認證作登入






(2)登入後,點選個人帳號,再點選New Applet,將會有一系列的步驟來協助建立。

再點選 「+this」



步驟1.Choose a service, 我們選擇 webhook進行篩選,再點選藍色方塊,進入下個步驟。

        所謂的webhook的利用傳送一段網址給ifttt, 來觸發程式。


步驟2.Choose trigger(選擇觸發器),將你的「事件」命名,我們 命名為tt123  ,是利用「收到網絡請求」的方式來進行。


步驟3. 接下來設定系統要做什麼事情,點選「+that」

    選擇一個行動的服務,我們選擇用「email」來通知該事件被觸發,也就是事件觸發後立即發信。內建信箱是登入的email, 當然也可以選擇line,

步驟4 .點選,send me a email 藍色方塊,進行設定




步驟5 建立通知email的內容格式設定,有支援中文。
(1) evenName:代表觸發器名稱,以本例為tt123

(2)OccurredAt 代表發生時間

(3)Value1 , Value2, Valu3代表要傳送的資料

用兩個大括號,前後夾,代表它是一個變數,不要去動到。






步驟6 完成後,點選下 Receive notifications when this Applet runs 即可完成啟動。


步驟 7
接下來進行 尋找觸發的網址格式,我們直接進到以下網址 
https://ifttt.com/maker_webhooks,選擇右上角的「Document」

觸發器名稱:tt123
your key=系統會給您一串文字

填入觸發器的名稱,按下「Test It!」即可進行測試。

也可以直接打入以下網址:
即可以試驗,其中value1=a代表會傳遞a
https://maker.ifttt.com/trigger/tt123/with/key/your key?valu1=a&value=b&value=c


二、程式碼

範例1.簡單測試,填入 觸發器名稱(事件名稱),與key,即可執行。並傳送a,b,c三個值


執行結果,可以收到email如下


範例2.利用迴圈每30秒測量目前光度值,並傳送到email. 





參考資料