發表文章

Arduino 記事本 09 : DHT11溫濕度感知模組

圖片
網頁筆記本-009 Arduino 記事本 09 : DHT11溫濕度感知模組 原廠網頁:https://learn.adafruit.com/dht/overview LIB下載網頁:https://learn.adafruit.com/dht/downloads 下載兩個LIB資料 Arduino library and example code for DHT sensors Adafruit_Sensor library  (required by the DHT library above) 下載回來解壓縮後將資料夾放入:Arduino\libraries\位置下 [Adafruit_Sensor-master] [ DHT-sensor-library-master] 重啟 Arduino,可於範例程式中找到DHTtester的程式範例 DHT11溫濕度感知模組 // 刪去註解 #include "DHT.h" #define DHTPIN 2 // 選擇Arduino輸入接腳 #define DHTTYPE DHT11 // DHT 11 , 選擇選用的感知器 //#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 //#define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); Serial.println("DHTxx test!"); dht.begin(); } void loop() { delay(2000); float h = dht.readHumidity(); float t = dht.readTemperature(); float f = dht.readTemperature(true); if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!...

Arduino 記事本 08 : 人體紅外線感應模組測試

圖片
網頁筆記本-008 Arduino 記事本 08 : 人體紅外線感應模組測試 依原廠資料,此元件用於感應人體紅外熱釋進行人體位移感應,只能感應到移動中的人體,如果不動,自然就感應不到。 模組外型 接線方式供應5V電源,感應到移動人體即會由OUT接腳發出訊號 測試用程式:取自原廠說明書 測試後OK可正確取得輸出訊號 // 人體紅外線感知器測試 int IRswitch = 7 ; //紅外線感應輸入腳 int led = 13 ; //燈號 bool val = false ; void setup ( ) {   Serial . begin ( 9600 ) ;    // Debug Port   pinMode ( IRswitch , INPUT ) ;   pinMode ( led , OUTPUT ) ; } void loop ( ) {   val = digitalRead ( IRswitch ) ;   if ( val ) {     digitalWrite ( led , HIGH ) ;     Serial . println ( "HIGH" ) ;   }   else {     digitalWrite ( led , LOW ) ;     Serial . println ( "LOW" ) ;   }   delay ( 100 ) ; } 測試程式接收到Sensor-OUT發出訊息後,除會使LED亮起,也同時在通訊Port口送出訊號狀態。

Arduino 記事本 07 : 發出聲音(無源蜂鳴器)控制

圖片
網頁筆記本-007 Arduino 記事本 07 : 發出聲音(無源蜂鳴器)控制 無源蜂鳴器:內無震盪電路,無法使用單純IO訊號發音,但可透過送出的方波頻率控制其發音音頻高低。 有源蜂鳴器:內含震盪電路,透過IO訊號即可發出聲音,發聲為單音音色。 無源蜂鳴器一般有兩支腳位,上頭標示[+]接至訊號控制,另一腳位接地。 程式控制發音 網路上找到的資料,先定義各音色 // include pitches.h #define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_G1 49 #define NOTE_GS1 52 #define NOTE_A1 55 #define NOTE_AS1 58 #define NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 #define NOTE_GS2 104 #define NOTE_A2 110 #define NOTE_AS2 117 #define NOTE_B2 123 #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 208 #define NOTE_A3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_C4 262 ...

Arduino 記事本 06 : Read-Time Clock(RTC)模組

圖片
網頁筆記本-006 Arduino 記事本 06 : Read-Time Clock(RTC)模組 RTC:時鐘,可於系統端無電力供應狀態下,使用電池持續計數時間。 硬體&接線: RTC模組 Tiny RTC I2C Modules (DS1307) 使用DS1307晶片。 電池使用LIR2032(3.6V),消耗少於500nA。 電池如改用CR2032(3.0V)需拆除D1、R4、R5、R6後,並短路R6接點。 未改裝會爆電池。 VCC電壓使用5V。 二線式I2C介面(SDA、SCL)。 準確日曆至2100年 輸出:年/月/日,時:分:秒,具閏年補償。 提供4kBit EEPROM。 其它資料參考-1 接線 VCC => 5V GND => 0V SDA => SDA SCL => SCL LIB 安裝程式庫(LIB) 選擇草稿碼 => 匯入程式庫 => 管理程式庫... 尋找DS1307RTC => 安裝LIB(DS1307RTC by Michael Margolis),可以有<DS1307RTC.h> 尋找RTC => 安裝LIB(Time by Michael Margolis),可以有<TimeLib.h> Code // RTC寫入/讀出時間 #include < Time . h > #include < TimeLib . h > #include < Wire . h > #include < DS1307RTC . h > tmElements_t tmTime ; tmElements_t tmRTime ; /* tmElements_t 定義在TimeLib.h內,內容如下 * uint8_t Second; * uint8_t Minute; * uint8_t Hour; * uint8_t Wday;   // day of week, sunday is day 1 * ui...

Arduino 記事本 05 : 網路連線-物聯網實驗

圖片
網頁筆記本-005 Arduino 記事本 05 : 網路連線-物聯網實驗 硬體&連線 (ESP8266 RS232速率設定9600) 1、提供ESP8266使用的3.3V電壓(建議使用外接變壓器) 2、ESP8266-GND對接 3、ESP8266-Tx接到MEGA的RX1 4、ESP8266-Rx接到MEGA的TX1 5、ESP8266-CH-P接到3.3V電壓 程式 // 無線網路基地台 #define LinkWIFI "AT+CWJAP=\"Tenda_ABCD\",\"ABCD1234\"" #define QuitWIFI "AT+CWQAP" #define Link_TCP "AT+CIPSTART=\"TCP\",\"api.thingspeak.com\",80" // ThingSpeak Server (物聯網實驗) #define ThingSpeakHTTP "api.thingspeak.com" // 設定 GET 傳送資料的格式 // GET https://api.thingspeak.com/update?api_key=KJABN12YJC34H6YF&field1=0 String GET = "GET /update?key= KJABN12YJC34H6YF " ; // 全域變數 {陣列需要先預設內容} float TS_DATA [ 9 ] = { 1.1 , 3.3 , 5.5 , 7.7 , 9.9 , 10.01 , 15.51 , 20.02 , 30.03 } ; char cData [ 100 ] ; bool bLinkTCP = false ; void setup ( ) {   // 設定 COM Port   Serial . begin ( 9600 ) ;    // Debug Port   Serial1 . begin ( 9600 )...

Arduino 記事本 附件2 : Arduino IDE 增加開發板:WeMos D1

圖片
網頁筆記本-A02 Arduino IDE 增加開發板 WeMos D1 WeMos D1開發板 WIFI頻率:2.4GHZ IEEE 802.11 b/g/n 工作電壓:3.3V 數位IO:11 類比IO:1 電源輸入:2.1mm FLASH:4M byte PIN腳定義 D0:RX D1:TX D2:PWM、I2C D3:I2C SCL/D15 D4:I2C SDA/D14 D5:SPI Clock/D13 D6:SPI MISO/D12 D7:SPI MOSI/D11 D8: D9:TX1 D10:SS D11:MOSI D12:MISO D13:SCK D14:SDA D15:SCL Arduino IDE 增加WeMos D1 選擇檔按 => 偏好設定 填入[額外的開發板管理員網址] http://arduino.esp8266.com/stable/package_esp8266com_index.json 再選擇工具下的開發板 => 開發板管理員 進入 開發板管理員頁面,在尋找的位置輸入[ESP8266] 選擇右下端的安裝按鈕 安裝完成 再進入工具下的開發板選單中就可以找到[WeMos D1]的選項了 選擇完WeMos D1後工具下的資訊也會跟著變更

Arduino 記事本 附件1 : 申請ThingSpeak帳號

圖片
  網頁筆記本-A01 申請ThingSpeak帳號 ThingSpeak官網 進入ThingSpeak官網 點選Get Started For Free 依序輸入 Email、帳號、密碼、名稱 按下 Continue 進行帳號(E-Mail)確認後重新登入ThingSpeak 按下New Channel建立 輸入Name、Filed後按下儲存 正確建立Channel後顯示