6.9 KiB
Ukur suhu - Wio Terminal
Dalam bahagian pelajaran ini, anda akan menambah sensor suhu pada Wio Terminal anda, dan membaca nilai suhu daripadanya.
Perkakasan
Wio Terminal memerlukan sensor suhu.
Sensor yang akan anda gunakan ialah sensor kelembapan dan suhu DHT11, yang menggabungkan 2 sensor dalam satu pakej. Sensor ini agak popular, dengan beberapa sensor yang tersedia secara komersial menggabungkan suhu, kelembapan, dan kadangkala tekanan atmosfera. Komponen sensor suhu adalah termistor koefisien suhu negatif (NTC), iaitu termistor di mana rintangan berkurang apabila suhu meningkat.
Ini adalah sensor digital, jadi ia mempunyai ADC onboard untuk menghasilkan isyarat digital yang mengandungi data suhu dan kelembapan yang boleh dibaca oleh mikrokontroler.
Sambungkan sensor suhu
Sensor suhu Grove boleh disambungkan ke port digital Wio Terminal.
Tugasan - sambungkan sensor suhu
Sambungkan sensor suhu.
-
Masukkan satu hujung kabel Grove ke soket pada sensor kelembapan dan suhu. Ia hanya boleh dimasukkan dalam satu arah sahaja.
-
Dengan Wio Terminal tidak disambungkan ke komputer atau bekalan kuasa lain, sambungkan hujung kabel Grove yang lain ke soket Grove di sebelah kanan Wio Terminal apabila anda melihat skrin. Ini adalah soket yang paling jauh dari butang kuasa.
Programkan sensor suhu
Wio Terminal kini boleh diprogramkan untuk menggunakan sensor suhu yang disambungkan.
Tugasan - programkan sensor suhu
Programkan peranti.
-
Buat projek Wio Terminal baru menggunakan PlatformIO. Namakan projek ini
temperature-sensor
. Tambahkan kod dalam fungsisetup
untuk mengkonfigurasi port serial.⚠️ Anda boleh merujuk kepada arahan untuk membuat projek PlatformIO dalam projek 1, pelajaran 1 jika diperlukan.
-
Tambahkan kebergantungan perpustakaan untuk perpustakaan Seeed Grove Humidity and Temperature sensor ke fail
platformio.ini
projek:lib_deps = seeed-studio/Grove Temperature And Humidity Sensor @ 1.0.1
⚠️ Anda boleh merujuk kepada arahan untuk menambah perpustakaan ke projek PlatformIO dalam projek 1, pelajaran 4 jika diperlukan.
-
Tambahkan arahan
#include
berikut ke bahagian atas fail, di bawah#include <Arduino.h>
yang sedia ada:#include <DHT.h> #include <SPI.h>
Ini mengimport fail yang diperlukan untuk berinteraksi dengan sensor. Fail header
DHT.h
mengandungi kod untuk sensor itu sendiri, dan menambahkan headerSPI.h
memastikan kod yang diperlukan untuk berkomunikasi dengan sensor disertakan semasa aplikasi dikompilasi. -
Sebelum fungsi
setup
, isytiharkan sensor DHT:DHT dht(D0, DHT11);
Ini mengisytiharkan satu instance kelas
DHT
yang menguruskan sensor Digital Humidity dan Temperature. Sensor ini disambungkan ke portD0
, iaitu soket Grove di sebelah kanan Wio Terminal. Parameter kedua memberitahu kod bahawa sensor yang digunakan ialah sensor DHT11 - perpustakaan yang anda gunakan menyokong varian lain sensor ini. -
Dalam fungsi
setup
, tambahkan kod untuk menyediakan sambungan serial:void setup() { Serial.begin(9600); while (!Serial) ; // Wait for Serial to be ready delay(1000); }
-
Di akhir fungsi
setup
, selepasdelay
terakhir, tambahkan panggilan untuk memulakan sensor DHT:dht.begin();
-
Dalam fungsi
loop
, tambahkan kod untuk memanggil sensor dan mencetak suhu ke port serial:void loop() { float temp_hum_val[2] = {0}; dht.readTempAndHumidity(temp_hum_val); Serial.print("Temperature: "); Serial.print(temp_hum_val[1]); Serial.println ("°C"); delay(10000); }
Kod ini mengisytiharkan array kosong yang mengandungi 2 float, dan menghantar array ini kepada panggilan
readTempAndHumidity
pada instanceDHT
. Panggilan ini mengisi array dengan 2 nilai - kelembapan dimasukkan ke item ke-0 dalam array (ingat dalam C++ array adalah berasaskan 0, jadi item ke-0 adalah 'item pertama' dalam array), dan suhu dimasukkan ke item ke-1.Suhu dibaca dari item ke-1 dalam array, dan dicetak ke port serial.
🇺🇸 Suhu dibaca dalam Celsius. Untuk orang Amerika, untuk menukar ini kepada Fahrenheit, bahagikan nilai Celsius yang dibaca dengan 5, kemudian darabkan dengan 9, kemudian tambah 32. Sebagai contoh, bacaan suhu 20°C menjadi ((20/5)*9) + 32 = 68°F.
-
Bina dan muat naik kod ke Wio Terminal.
⚠️ Anda boleh merujuk kepada arahan untuk membuat projek PlatformIO dalam projek 1, pelajaran 1 jika diperlukan.
-
Setelah dimuat naik, anda boleh memantau suhu menggunakan serial monitor:
> Executing task: platformio device monitor < --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time --- More details at http://bit.ly/pio-monitor-filters --- Miniterm on /dev/cu.usbmodem1201 9600,8,N,1 --- --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- Temperature: 25.00°C Temperature: 25.00°C Temperature: 25.00°C Temperature: 24.00°C
💁 Anda boleh menemui kod ini dalam folder code-temperature/wio-terminal.
😀 Program sensor suhu anda berjaya!
Penafian:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI Co-op Translator. Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.