2014年8月7日 星期四

IOT(Internet of Things) Using Arduino MCU ABC - Session 3


接下來看一下 Arduino MCU + Analog/Digital Sensor 的簡單示範範例(溫溼度計) :

Arduino Mega2560 + DHT11 Sensor(Without LED Shield)
此圖由 fritzing 製作而成, 請自行下載使用

再來看看真實的Arduino在IOT 的實際應用, 由 Arduino AVR + Digital Seosor(DHT 11) + 1602 LCD Keypad Shield + LED, 所組合而成的簡易型溫濕度計, 如下圖
                                               Arduino Mega2560 +LCD Keypad Shield + DHT11 Sensor+Red LED

要如何讓溫濕度的感應器(DHT11 Sensor)所測得的數據顯示在 2*16 的LCD 螢幕上, 同時更新 溫濕度數據時, 讓紅色的LED燈亮一下, 這樣我們也可以看到溫濕度感應器(DHT11 Sensor, PIC 3-1)是有作用中, 所以來看一下 Arduino IDE 的 程式是如何寫的:

PIC 3-1



/*    將DHT11測得的溫濕度顯示在LCD顯示器 */ 

#include <LiquidCrystal.h>    //使用LiquidCrystal Library 
#include <dht11.h>                 //使用DHT11 Library
LiquidCrystal lcd(8,9,4,5,6,7);  //初始設定LCD1602 Keypad 的顯示器的介面 
dht11 DHT11;     //定義DHT11 物件
#define DHT11PIN 2  //定義讀取資料的 Pin腳 

void setup() {     
   lcd.begin(16, 2);  // 設定LCD有2列16欄  
      Serial.begin(9600);  

void loop() {  
   lcd.setCursor(0, 0); //將游標設定在第一行第一個位置(column 0, line 1)  
   int chk = DHT11.read(DHT11PIN);  //檢查DHT感測器的回應  

      switch (chk) {     
   case 0:       
     lcd.print("Humidity:");       
     lcd.print((float)DHT11.humidity, 1);       
     lcd.print("%");       
     lcd.setCursor(0, 1);       
     lcd.print("Tempure:");       
     lcd.print((float)DHT11.temperature, 1);       
     lcd.print("oC");     // 無法顯示度,只好用小寫的O表示  
     digitalWrite(3, HIGH);   
     delay(1000);//Wait rest of 1 second recommended delay before
        //accessing sensor
     digitalWrite(3, LOW);
           break;     
   case -1:       
     lcd.print("Checksum error"); 
     break;     
   case -2:       
     lcd.print("Time out error"); 
     break;     
   default:       
     lcd.print("Unknown error"); 
     break;   
   }  
   delay(1000);  //延遲 1 秒

另一個 Arduino OOwatch 智慧手錶原型範例:

這個實驗用的電子材料使用的是: Arduino Pro MINI 328(MainBoard) + HC05(BLUE TOOTH Device)+SSD3016 SPI模式  雙色 0 .96" OLED 背光螢幕 + 8鍵 KEYPAD MODULE + USB to UART module (FTDI) Transfer compiled program to  Arduino Pro Mini + 3.7V 電池