Talaan ng mga Nilalaman:
- Hakbang 1: Listahan ng Item
- Hakbang 2: Kamag-anak na Panimula
- Hakbang 3: Ikonekta ang Circuit
- Hakbang 4: Maghanda sa Pag-ipon
- Hakbang 5: Code ng Pagsubok para sa DHT22 Sensor Serial Port
- Hakbang 6: Code para sa Proyekto
- Hakbang 7: Paglalarawan
Video: Station ng Panahon Gamit ang Arduino UNO: 7 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Nilikha ni: Hazel Yang
Ang proyektong ito ay isang istasyon ng panahon gamit ang isang Arduino UNO board upang makontrol ang daloy ng data, isang sensor ng DHT22 upang mangolekta ng data at isang OLED screen upang maipakita ang data.
Hakbang 1: Listahan ng Item
1. Screen: OLED, 1.3 Display SH1106, I2C puting kulay ---- PID: 18283
2. Sensor: Digital Humidity at Temperatura Sensor DHT22 ---- PID: 7375
3. Kumokonekta: Jumper Wires ---- PID: 10316 o 10318 o 10312 (nakasalalay sa haba) o maaari mong gamitin ang solidong wire 22 AWG ---- PID: 22490
Breadboard ---- PID: 10686 o 10698 o 103142 (nakasalalay sa laki)
4. Lakas: Ang cable na ito ay maaari lamang kumonekta sa isang computer USB port at ang cable ay ginagamit din para sa paglilipat ng data sa pagitan ng IDE at Arduino board. USB CABLE, A TO B, M / M, 0.5M (1.5FT) ---- PID: 29862
O maaari mo itong gamitin upang mapagana ang board: 5V 2A AC / DC Adapter ---- PID: 10817.
Hakbang 2: Kamag-anak na Panimula
Panimula ng Screen: 1.3 OLED Display White
1. Mahahanap mo ang dokumento na nagpapakita ng pangunahing pag-set up at mga paglalarawan:
Panimula ng Sensor: Humidity and Temperature Sensor DHT22 1. Maaari mong makita ang dokumento na nagpapakita ng mga paglalarawan:
Hakbang 3: Ikonekta ang Circuit
Nagpapadala ang sensor ng DHT22 ng serial data sa pin 2. Kaya, ikonekta ang pangalawang pin mula sa kaliwa, ang "SDA" na pin ay dapat na konektado sa pin 2.
Para sa display ng SSH1106, gumagamit ito ng analog pin upang maipadala. Ang circuitry ng screen ay magiging "SCL" na pin sa "A5" ni Arduino at "SDA" na pin sa "A4" ni Arduino. Habang ang data ng posisyon ng pixel ay patuloy na nagpapadala, ang pagpapaandar ng display sa programa ay nagpapalitaw lamang ng utos nang isang beses sa tuwing binabasa nito ang data mula sa sensor.
Ang parehong sensor at screen ay maaaring gumamit ng 3.3V sa lakas sa Arduino bilang isang DC power input. Upang mapangyarihan, kailangan naming ikonekta ang parehong mga "VCC" na pin sa "3.3V" ni Arduino. At ang mga pin na "GND" ay maaaring konektado lamang sa "GND" na pin sa Arduino board.
Gamitin ang USB A to B cable, ikonekta ang Arudino sa computer.
Hakbang 4: Maghanda sa Pag-ipon
"u8glib" para sa screen ng SSH1106 mula sa Olikraus.
"DHT sensor library" para sa DHT22 sensor mula sa Adafruit. Dapat mong i-download ang dalawang aklatan: DHT22 sensor library:
U8glib:
At gamitin ang "pamahalaan ang library" sa IDE upang gawing ma-zip ang mga ito. Online na tagubilin ng pamamahala ng mga aklatan:
Hakbang 5: Code ng Pagsubok para sa DHT22 Sensor Serial Port
Subukan ang coe para sa serial port ng sensor ng DHT22 (na nasa loob ng aklatan ng DHT22 >> mga halimbawa):
(Maaari mong laktawan ang bahaging ito.)
Ito ay upang subukan lamang ang DHT22 sensor na nagbabasa ng data nang normal
# isama
# isama
# isama
# isama
# isama
# tukuyin ang DHTPIN 2
# tukuyin ang DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
walang bisa ang pag-setup () {
Serial.begin (9600);
Serial.println (F ("pagsubok sa DHT22!"));
dht.begin ();
}
void loop () {
// Maghintay ng ilang segundo sa pagitan ng mga sukat.
pagkaantala (2000);
// Ang temperatura sa pagbabasa o halumigmig ay tumatagal ng halos 250 milliseconds!
// Ang mga pagbasa ng sensor ay maaari ring hanggang sa 2 segundo na 'luma' (ito ay isang napakabagal ng sensor)
float h = dht.readHumidity ();
// Basahin ang temperatura bilang Celsius (ang default)
float t = dht.readTemperature ();
// Basahin ang temperatura bilang Fahrenheit (isFahrenheit = totoo)
float f = dht.readTemperature (totoo);
// Suriin kung may nabasa na nabigo at lumabas nang maaga (upang subukang muli).
kung (isnan (h) || isnan (t) || isnan (f)) {
Serial.println (F ("Nabigong basahin mula sa sensor ng DHT!"));
bumalik;
}
// Compute heat index sa Fahrenheit (ang default)
float hif = dht.computeHeatIndex (f, h);
// Compute heat index sa Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex (t, h, false);
Serial.print (F ("Humidity:"));
Serial.print (h);
Serial.print (F ("% Temperatura:"));
Serial.print (t);
Serial.print (F ("° C"));
Serial.print (f);
Serial.print (F ("° F Heat index:"));
Serial.print (hic);
Serial.print (F ("° C"));
Serial.print (hif);
Serial.println (F ("° F"));
}
// Matapos maipon ang programa, i-click ang TOOLS >> SERIAL MONITOR upang suriin ang data.
// Pagtatapos ng programa sa pagsubok.
Hakbang 6: Code para sa Proyekto
# isama
# isama
# isama
# isama
# isama
# tukuyin ang DHTPIN 2
# tukuyin ang DHTTYPE DHT22
# isama ang "U8glib.h"
U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);
DHT sensor (DHTPIN, DHTTYPE);
walang bisa draw (void) {
u8g.setFont (u8g_font_unifont);
float h = sensor.readHumidity ();
// Basahin ang temperatura bilang Celsius (ang default)
float t = sensor.readTemperature ();
// Suriin kung may nabasa na nabigo at lumabas nang maaga (upang subukang muli).
kung (isnan (h) || isnan (t)) {
u8g.print ("Error.");
para sa (;;);
bumalik;
}
u8g.setPrintPos (4, 10);
u8g.print ("Temperatura (C):");
u8g.setPrintPos (4, 25);
u8g.print (t);
u8g.setPrintPos (4, 40);
u8g.print ("Humidity (%):");
u8g.setPrintPos (4, 55);
u8g.print (h);
}
void setup (void) {
u8g.setRot180 ();
Serial.begin (9600);
sensor.begin ();
}
walang bisa loop (walang bisa) {
// picture loop
u8g.firstPage ();
gawin
iguhit ();
} habang (u8g.nextPage ());
// muling itayo ang larawan pagkatapos ng ilang pagkaantala ng pagkaantala (2000);
}
// Pagtatapos ng pangunahing programa.
Hakbang 7: Paglalarawan
Pagkatapos, ipasimula ang circuitry ng pin para sa Arduino board. Dahil kinakailangan ng sensor library ang data upang ideklara ang object.
At maaari mong subukan ang data ng sensor sa pamamagitan ng pagsubaybay sa output data sa pamamagitan ng digital pin 2 sa pamamagitan ng paggamit ng pagpapaandar na tinatawag na "Serial.print ()". Dahil ang dalas ng paghahatid ng data ay halos 1 pagbabasa bawat 2 segundo (na kung saan ay 0.5 Hz), kapag na-program sa Arduino IDE, kailangan nating itakda ang pagkaantala sa loob ng pag-andar ng loop na higit sa 2 segundo. Kaya mayroong isang "pagkaantala (2000)" sa loob ng pag-andar ng loop. Tinitiyak nito na mai-refresh ang data nang madalas. Sa function na "gumuhit", kunin ang data mula sa serial data port at ilagay ang mga ito sa float number gamit ang "readHumidity" at "readTemperature" na mga function.
I-print ang halumigmig at temperatura gamit ang pagpapa-print sa file na "u8glib". Maaari mong ayusin ang posisyon sa pamamagitan ng pagbabago ng numero sa pag-andar na "setPrintPos". Ang pag-print function ay maaaring direktang ipakita ang teksto at mga numero.
Upang i-set up ang hardware, bigyan ang serial port ng 10 segundo na pagkaantala. Pagkatapos ay tawagan ang simulang pagpapaandar para sa sensor. Ayon sa aking circuit, nakabaligtad ang aking screen. Kaya nagsama rin ako ng isang "setRot180" na pagpapaandar upang paikutin ang display.
Ang pagpapaandar ng loop ng Arduino board ay ang pangunahing pag-andar. Patuloy itong tumatawag sa paggana ng pagguhit upang ipakita ang teksto at data sa tuwing nai-refresh ang sensor.
Ganito ang hitsura ng screen:
Maaari mong idiskonekta ang Arduino UNO mula sa iyong computer at i-power ito gamit ang isang 5V DC power adapter na kumokonekta sa 2.1mm power jack nito. Iniimbak nito ang programa sa loob ng drive nito at maaaring patuloy na patakbuhin muli ang programa pagkatapos na mapatakbo.
Inirerekumendang:
Panlabas na Station ng Panahon Gamit ang Arduino: 7 Mga Hakbang
Panlabas na Station ng Panahon Gamit ang Arduino: Mga Ginamit na Materyales: Ang mga presyo ay tinatayang at sa memorya. NodeMCU V3 Lua - 3 € Digital Temperatura at Humidity DTH 22 - 2 € Photoresistor (LDR) Sensor Module Nakakita ng Sensitibong Photodiode para sa Arduino - 0.80 € 1set / lot Snow / Raindrops Detection Sensor
Paano Bumuo ng isang Station ng Panahon Gamit ang XinaBox at Ubidots Higit sa HTTP: 7 Mga Hakbang
Paano Bumuo ng isang Station ng Panahon Gamit ang XinaBox at Ubidots Higit sa HTTP: Alamin kung paano gumawa ng iyong sariling Weather Station sa Ubidots, gamit ang XinaBox xChip (IP01, CW01 at SW01) Pinapayagan ng module ng Core at Wi-Fi ng ESP8266 (xChip CW01) ang mga gumagamit na magpadala data mula sa modular xChip ng XinaBox sa cloud. Ang data na ito ay maaaring subaybayan nang malayuan
Paano Gumawa ng isang Device ng IoT upang Makontrol ang Mga Kagamitan at Subaybayan ang Panahon Gamit ang Esp8266: 5 Mga Hakbang
Paano Gumawa ng isang IoT Device upang Makontrol ang Mga Kagamitan at Subaybayan ang Panahon Gamit ang Esp8266: Ang Internet ng mga bagay (IoT) ay ang inter-networking ng mga pisikal na aparato (tinukoy din bilang " mga konektadong aparato " at " mga smart device "), mga gusali, at iba pang mga item - naka-embed sa electronics, software, sensor, actuators, at
Acurite 5 in 1 Weather Station Paggamit ng isang Raspberry Pi at Weewx (iba pang Mga Panahon ng Panahon ay Tugma): 5 Mga Hakbang (na may Mga Larawan)
Acurite 5 in 1 Weather Station Paggamit ng isang Raspberry Pi at Weewx (iba pang Mga Weather Stations ay Tugma): Nang binili ko ang Acurite 5 sa 1 istasyon ng panahon nais kong masuri ang lagay ng panahon sa aking bahay habang wala ako. Nang makauwi ako at naayos ko ito napagtanto ko na dapat kong magkaroon ng display na konektado sa isang computer o bumili ng kanilang smart hub,
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c