Arduino 項目:建立數位溫度計

在這個項目中,我想結合兩個元件,即 1602 LCD 顯示器和 DHT11 溫濕度傳感器,以創建一個實際可用的數位溫度計。 在我們開始之前,先閱讀 DHT11 教學,該教學解釋了如何從傳感器讀取數據: link 然後再閱讀 1602 LCD 教學,其中我解釋了如何將數據寫入顯示器: link 完成後,從電路的角度來看,你只需要將兩個電路添加到同一個基於 Arduino 的項目中: link 實際效果如下: images images images 從程式碼方面來看,我們做了類似的事情。首先,我們先引入 DHT 和 LiquidCrystal 函式庫,然後初始化這兩個元件。 我們在 setup() 中初始化它們,然後在 loop() 中每 2 秒檢查從傳感器接收到的數據,並將其顯示在 LCD 顯示器上: #include <LiquidCrystal.h> #include <DHT.h> DHT dht(2, DHT11); LiquidCrystal lcd(7, 8, 9, 10, 11, 12); void setup() { dht.begin(); lcd.begin(16, 2); } void loop() { delay(2000); float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { return; } lcd....

arduino-read-values-http

#從Arduino通過HTTP讀取數值 在本教程中,我想擴展Arduino Web Server教程以讀取由傳感器測量的數值,這樣我們只需打開瀏覽器上的一個頁面就可以看到數據。 例如,我們將使用DHT11傳感器測量溫度,並使用接近傳感器測量對象距離。 我們通過訪問/on URL點亮Arduino上的內置LED,並通過打開/off URL關閉它。其他任何操作都不起作用。 這是來自其他教程的代碼: #include <SPI.h> #include <WiFiNINA.h> WiFiServer server(80); void setup() { char ssid[] = SECRET\_SSID; char pass[] = SECRET\_PASS; Serial.begin(9600); while (!Serial); int status = WL\_IDLE\_STATUS; while (status != WL\_CONNECTED) { Serial.print("Connecting to "); Serial.println(ssid); status = WiFi.begin(ssid, pass); delay(5000); } Serial.print("IP address: "); Serial.println(WiFi.localIP()); server.begin(); } void loop() { WiFiClient client = server.available(); if (client) { String line = ""; while (client.connected()) { if (client....

electronics-components-dht11-temperature-sensor

#電子元件:DHT11溫濕度傳感器 這個傳感器是你學習使用的第一個傳感器之一,因為每個人都有一個很好的應用:建立室內或室外溫度計。 在這裡,你可以看到它安裝在一個分輔板上: ! ! ! 請注意,該傳感器有4個輸出引腳,但我得到的分輔板只有3個(原因是DHT11的引腳3未連接到任何地方 - 別問我為什麼)。 從左邊開始,保持底部的引腳,我們有: Vdd,正輸入(+) Vss,負輸入(-) 輸出信號 輸出是一個持續4ms的40位序列化信號。 這意味著每4ms傳感器發送一次溫度信息,為了讀取它,我們必須獲取值並將其反序列化。 在Arduino程序中,我們使用由Adafruit維護的DHT Sensor Library(這是存儲庫的鏈接),它使我們可以非常簡單地讀取溫度: ! 你可以使用#include <DHT.h>將其包含,然後通過傳遞傳感器信號引腳和類型(在這種情況下使用常量DHT11)初始化DHT類的對象。 該庫還可以與其他傳感器一起使用,如更精確的DHT22和`DHT21。 然後,你可以調用readHumidity()和readTemperature()方法以``float`變量的方式獲取值。 readTemperature()以攝氏度表示該值,但該庫還提供convertCtoF()方法來獲取華氏值。 該庫還提供了其他方法,例如computeHeatIndex()。我建議你查看GitHub上的DHT.h頭文件源代碼(https://github.com/adafruit/DHT-sensor-library/blob/master/DHT.h)。 這個簡單的Arduino程序從DHT11上的信號引腳連接到數字引腳#2,並將其打印到串行監視器上: #include <DHT.h> DHT dht(2, DHT11); void setup() { Serial.begin(9600); dht.begin(); } void loop() { delay(2000); float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.println("無法讀取數值"); return; } Serial.println((String)"濕度:" + h + "%,溫度:" + t + "C"); } ! ! 濕度:56.00%,溫度:20.20C 濕度:56....