37款傳感器與執行器的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止這37種的。鑑於本人手頭積累了一些傳感器和執行器模塊,依照實踐出真知(一定要動手做)的理念,以學習和交流爲目的,這裏準備逐一動手嘗試系列實驗,不管成功(程序走通)與否,都會記錄下來—小小的進步或是搞不掂的問題,希望能夠拋磚引玉。
【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)
實驗五十五:DHT11 數字溫溼度傳感器 WiFi節點模塊 mini數字溫溼度傳感器 高精度單總線
安裝庫:打開IDE—工具—管理庫—搜索DHT—安裝"DHT sensor library"
【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)
實驗五十五:DHT11 數字溫溼度傳感器 WiFi節點模塊 mini數字溫溼度傳感器 高精度單總線
Arduino參考開源代碼
/* 【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程) 實驗五十五:DHT11 溫溼度複合傳感器模塊(數字型單總線通信) 安裝庫:打開IDE—工具—管理庫—搜索DHT—安裝"DHT sensor library" 項目測試:讀取DHT11的串口輸出數據 模塊接線: DHT11 Arduino VCC 5V GND GND DATA D2 */ #include "DHT.h" #define DHTPIN 2 // 取消註釋您正在使用的任何類型! #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 //#define DHTTYPE DHT21 // DHT 21 (AM2301) //初始化DHT傳感器 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); Serial.println(F("DHT11現場測試!")); dht.begin(); } void loop() { delay(2000); //讀取溫度或溼度大約需要250毫秒! //傳感器讀數也可能長達2秒“舊”(這是一個非常慢的傳感器) float h = dht.readHumidity(); // 讀取溫度爲攝氏溫度(默認) float t = dht.readTemperature(); // 將溫度讀取爲華氏度 float f = dht.readTemperature(true); // 檢查是否有任何讀取失敗並提早退出(重試) if (isnan(h) || isnan(t) || isnan(f)) { Serial.println(F("無法從DHT傳感器讀取! ")); return; } // 計算華氏熱量指數(默認值) float hif = dht.computeHeatIndex(f, h); // 計算攝氏溫度指數 float hic = dht.computeHeatIndex(t, h, false); Serial.print(F("溼度: ")); Serial.print(h); Serial.print(F("% 溫度: ")); Serial.print(t); Serial.print(F("°C ")); Serial.print(f); Serial.print(F("°F 熱量指數: ")); Serial.print(hic); Serial.print(F("°C ")); Serial.print(hif); Serial.println(F("°F")); }
實驗串口返回情況
Arduino實驗場景圖
實驗開源圖形編程(Mixly、Mind+、編玩邊學)以及實驗串口返回情況
實驗開源圖形編程(Mixly、Mind+、編玩邊學)
實驗串口返回情況
【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)
實驗五十五:DHT11 數字溫溼度傳感器 WiFi節點模塊 mini數字溫溼度傳感器 高精度單總線
Arduino參考開源代碼
/* 【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程) 實驗五十五:DHT11 溫溼度複合傳感器模塊(數字型單總線通信) 安裝庫:打開IDE—工具—管理庫—搜索DHT—安裝"DHT sensor library" 項目測試:讀取DHT11的串口輸出數據 模塊接線: DHT11 Arduino VCC 5V GND GND DATA D2 */ #include <Adafruit_Sensor.h> #include <DHT.h> #include <DHT_U.h> #define DHTPIN 2 // Uncomment the type of sensor in use: #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301) DHT_Unified dht(DHTPIN, DHTTYPE); uint32_t delayMS; void setup() { Serial.begin(9600); // Initialize device. dht.begin(); Serial.println(F("DHT11 Unified Sensor Example")); // Print temperature sensor details. sensor_t sensor; dht.temperature().getSensor(&sensor); Serial.println(F("------------------------------------")); Serial.println(F("Temperature Sensor")); Serial.print (F("Sensor Type: ")); Serial.println(sensor.name); Serial.print (F("Driver Ver: ")); Serial.println(sensor.version); Serial.print (F("Unique ID: ")); Serial.println(sensor.sensor_id); Serial.print (F("Max Value: ")); Serial.print(sensor.max_value); Serial.println(F("°C")); Serial.print (F("Min Value: ")); Serial.print(sensor.min_value); Serial.println(F("°C")); Serial.print (F("Resolution: ")); Serial.print(sensor.resolution); Serial.println(F("°C")); Serial.println(F("------------------------------------")); // Print humidity sensor details. dht.humidity().getSensor(&sensor); Serial.println(F("Humidity Sensor")); Serial.print (F("Sensor Type: ")); Serial.println(sensor.name); Serial.print (F("Driver Ver: ")); Serial.println(sensor.version); Serial.print (F("Unique ID: ")); Serial.println(sensor.sensor_id); Serial.print (F("Max Value: ")); Serial.print(sensor.max_value); Serial.println(F("%")); Serial.print (F("Min Value: ")); Serial.print(sensor.min_value); Serial.println(F("%")); Serial.print (F("Resolution: ")); Serial.print(sensor.resolution); Serial.println(F("%")); Serial.println(F("------------------------------------")); // Set delay between sensor readings based on sensor details. delayMS = sensor.min_delay / 1000; } void loop() { // Delay between measurements. delay(delayMS); // Get temperature event and print its value. sensors_event_t event; dht.temperature().getEvent(&event); if (isnan(event.temperature)) { Serial.println(F("Error reading temperature!")); } else { Serial.print(F("Temperature: ")); Serial.print(event.temperature); Serial.println(F("°C")); } // Get humidity event and print its value. dht.humidity().getEvent(&event); if (isnan(event.relative_humidity)) { Serial.println(F("Error reading humidity!")); } else { Serial.print(F("Humidity: ")); Serial.print(event.relative_humidity); Serial.println(F("%")); } }
實驗串口返回情況
實驗開源仿真編程(Linkboy V5.33)