Cov txheej txheem:

Chaw Nres Tsheb Siv Arduino UNO: 7 Kauj Ruam
Chaw Nres Tsheb Siv Arduino UNO: 7 Kauj Ruam

Video: Chaw Nres Tsheb Siv Arduino UNO: 7 Kauj Ruam

Video: Chaw Nres Tsheb Siv Arduino UNO: 7 Kauj Ruam
Video: Computer Vision with Python! Resizing Images 2024, Lub Xya hli ntuj
Anonim
Chaw Nres Tsheb Siv Arduino UNO
Chaw Nres Tsheb Siv Arduino UNO

Tsim los ntawm: Hazel Yang

Txoj haujlwm no yog chaw nres tsheb huab cua siv Arduino UNO pawg thawj coj los tswj cov ntaub ntawv ntws, DHT22 lub tshuab ntsuas kom sau cov ntaub ntawv thiab lub vijtsam OLED los qhia cov ntaub ntawv.

Kauj Ruam 1: Daim Ntawv Teev Npe

Daim Ntawv Teev Npe
Daim Ntawv Teev Npe

1. Screen: OLED, 1.3 Zaub SH1106, I2C dawb xim ---- PID: 18283

2. Sensor: Digital Vaum thiab Kub Sensor DHT22 ---- PID: 7375

3. Txuas: Jumper Wires ---- PID: 10316 lossis 10318 lossis 10312 (nyob ntawm qhov ntev) lossis koj tuaj yeem siv cov xov hlau 22 AWG ---- PID: 22490

Breadboard ---- PID: 10686 lossis 10698 lossis 103142 (nyob ntawm qhov loj me)

4. Lub zog: Cov kab no tsuas tuaj yeem txuas nrog lub khoos phis tawj USB chaw nres nkoj thiab lub xov tooj tseem siv rau kev xa cov ntaub ntawv ntawm IDE thiab Arduino board. USB CABLE, A TO B, M/M, 0.5M (1.5FT) ---- PID: 29862

Lossis koj tuaj yeem siv qhov no los txhawb lub rooj tsavxwm: 5V 2A AC/DC Adapter ---- PID: 10817.

Kauj Ruam 2: Txheeb Lus Taw Qhia

Tus txheeb ze taw qhia
Tus txheeb ze taw qhia
Tus txheeb ze taw qhia
Tus txheeb ze taw qhia

Taw qhia ntawm Screen: 1.3 OLED Display Dawb

1. Koj tuaj yeem nrhiav cov ntaub ntawv uas qhia txog kev teeb tsa yooj yim thiab piav qhia:

Taw qhia ntawm Sensor: Vaum thiab Kub Sensor DHT22 1. Koj tuaj yeem nrhiav cov ntaub ntawv uas qhia cov lus piav qhia:

Kauj ruam 3: Txuas lub Circuit Court

Txuas lub Circuit Court
Txuas lub Circuit Court

DHT22 sensor xa cov ntaub ntawv txuas mus rau tus pin 2. Yog li, txuas tus pin thib ob los ntawm sab laug, tus pin "SDA" yuav tsum txuas nrog tus pin 2.

Rau SSH1106 cov zaub, nws siv tus pin analog los xa tawm. Cov kab hluav taws xob ntawm lub vijtsam yuav yog "SCL" tus pin rau Arduino's "A5" thiab "SDA" tus pin rau Arduino's "A4". Thaum cov ntaub ntawv pixel txoj haujlwm tau xa mus tsis tu ncua, cov zaub ua haujlwm hauv qhov haujlwm tsuas yog ua kom cov lus txib ib zaug txhua zaus nws nyeem cov ntaub ntawv los ntawm lub ntsuas.

Ob lub sensor thiab lub vijtsam tuaj yeem siv 3.3V rau lub zog ntawm Arduino ua DC fais fab nkag. Txhawm rau lub zog, peb yuav tsum txuas ob qho "VCC" tus pin rau Arduino's "3.3V". Thiab "GND" pins tuaj yeem txuas nrog "GND" tus pin ntawm Arduino board.

Siv USB A rau B cable, txuas Arudino rau lub khoos phis tawj.

Kauj Ruam 4: Npaj Ua Ntej

"u8glib" rau SSH1106 npo los ntawm Olikraus.

"DHT sensor library" rau DHT22 sensor los ntawm Adafruit. Koj yuav tsum rub tawm ob lub tsev qiv ntawv: DHT22 sensor lub tsev qiv ntawv:

U8glib:

Thiab siv "tswj lub tsev qiv ntawv" hauv IDE kom lawv unzipped. Kev qhia online ntawm kev tswj cov tsev qiv ntawv:

Kauj Ruam 5: Xeem Txoj Cai rau DHT22 Sensor Serial Port

Kuaj coe rau DHT22 sensor serial chaw nres nkoj (uas yog sab hauv DHT22 lub tsev qiv ntawv >> piv txwv):

(Koj tuaj yeem hla ntu no.)

Nws tsuas yog sim ntsuas DHT22 sensor nyeem cov ntaub ntawv ib txwm muaj

#suav nrog

#suav nrog

#suav nrog

#suav nrog

#suav nrog

#define DHTPIN 2

#txhais DHTTYPE DHT22

DHT dht (DHTPIN, DHTTYPE);

void teeb tsa () {

Serial.begin (9600);

Serial.println (F ("DHT22 xeem!"));

dht.begin ();

}

void voj () {

// Tos ob peb feeb ntawm kev ntsuas.

ncua (2000);

// Nyeem qhov ntsuas kub lossis av noo siv li 250 milliseconds!

// Sensor nyeem ntawv kuj tseem tuaj yeem ntev txog 2 vib nas this 'qub' (nws lub sensor qeeb heev)

ntab h = dht.readHumidity ();

// Nyeem kub li Celsius (lub neej ntawd)

ntab t = dht.readTemperature ();

// Nyeem kub li Fahrenheit (isFahrenheit = tseeb)

ntab f = dht.readTemperature (muaj tseeb);

// Txheeb xyuas yog tias ib qho twg nyeem tsis tau zoo thiab tawm ntxov (sim dua).

yog (isnan (h) || isnan (t) || isnan (f)) {

Serial.println (F ("Tsis tau nyeem los ntawm DHT sensor!"));

rov qab;

}

// Xam qhov ntsuas cua sov hauv Fahrenheit (lub neej ntawd)

ntab hif = dht.computeHeatIndex (f, h);

// Ntsuas qhov ntsuas cua sov hauv Celsius (isFahreheit = cuav)

ntab hic = dht.computeHeatIndex (t, h, cuav);

Serial.print (F ("Vaum:"));

Serial.print (h);

Serial.print (F ("% Kub:"));

Serial.print (t);

Serial.print (F ("° C"));

Serial.print (f);

Serial.print (F ("° F Kub ntsuas:"));

Serial.print (hic);

Serial.print (F ("° C"));

Serial.print (hif);

Serial.println (F ("° F"));

}

// Tom qab suav cov program, nyem TOOLS >> SERIAL MONITOR los tshuaj xyuas cov ntaub ntawv.

// Xaus qhov kev xeem.

Kauj Ruam 6: Txoj Cai rau Txoj Haujlwm

#suav nrog

#suav nrog

#suav nrog

#suav nrog

#suav nrog

#define DHTPIN 2

#define DHTTYPE DHT22

#suav nrog "U8glib.h"

U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);

DHT sensor (DHTPIN, DHTTYPE);

void kos (tsis muaj dab tsi) {

u8g.setFont (u8g_font_unifont);

ntab h = sensor.readHumidity ();

// Nyeem kub li Celsius (lub neej ntawd)

ntab t = sensor.readTemperature ();

// Txheeb xyuas yog tias ib qho twg nyeem tsis tau zoo thiab tawm ntxov (sim dua).

yog (isnan (h) || isnan (t)) {

u8g.print ("Yuam kev.");

rau (;;);

rov qab;

}

u8g.setPrintPos (4, 10);

u8g.print ("Kub (C):");

u8g.setPrintPos (4, 25);

u8g.print (t);

u8g.setPrintPos (4, 40);

u8g.print ("Vaum (%):");

u8g.setPrintPos (4, 55);

u8g.print (h);

}

void teeb (tsis muaj dab tsi) {

u8g.setRot180 ();

Serial.begin (9600);

sensor.begin ();

}

void loop (tsis muaj dab tsi) {

// daim duab

u8g.firstPage ();

ua {

luag ();

} thaum (u8g.nextPage ());

// rov tsim daim duab tom qab qee qhov kev ncua qeeb (2000);

}

// Qhov kawg ntawm txoj haujlwm tseem ceeb.

Kauj Ruam 7: Kev piav qhia

Nqe lus piav qhia
Nqe lus piav qhia

Tom qab ntawd, pib ua tus pin circuitry rau Arduino board. Vim tias lub tsev qiv ntawv sensor xav tau cov ntaub ntawv tshaj tawm cov khoom.

Thiab koj tuaj yeem ntsuas lub ntsuas cov ntaub ntawv los ntawm kev saib xyuas cov ntaub ntawv tso tawm los ntawm tus lej pin 2 los ntawm kev siv lub luag haujlwm hu ua "Serial.print ()". Vim tias qhov zaus ntawm cov ntaub ntawv xa xov yog kwv yees li 1 nyeem txhua 2 vib nas this (uas yog 0.5 Hz), thaum ua haujlwm hauv Arduino IDE, peb yuav tsum teeb tsa ncua hauv lub voj ua haujlwm kom ntau dua 2 vib nas this. Yog li muaj "ncua (2000)" sab hauv lub voj ua haujlwm. Qhov no ua kom ntseeg tau tias cov ntaub ntawv yuav rov ua dua tshiab. Hauv txoj haujlwm "kos", tau txais cov ntaub ntawv los ntawm cov ntaub ntawv xov xwm chaw nres nkoj thiab muab tso rau hauv cov lej uas ntab siv "readHumidity" thiab "readTemperature" ua haujlwm.

Luam tawm cov av noo thiab qhov kub uas siv cov ntawv luam tawm hauv cov ntawv "u8glib". Koj tuaj yeem hloov kho txoj haujlwm los ntawm kev hloov tus lej hauv "setPrintPos" ua haujlwm. Kev luam tawm tuaj yeem ncaj qha qhia cov ntawv thiab tus lej.

Txhawm rau teeb tsa kho vajtse, muab qhov chaw nres nkoj txuas ncua 10 vib nas this. Tom qab ntawd hu rau qhov pib ua haujlwm rau lub sensor. Raws li kuv lub xov tooj cua, kuv lub vijtsam tau ntxeev. Yog li kuv kuj suav nrog "setRot180" ua haujlwm kom tig cov zaub.

Lub voj ua haujlwm ntawm Arduino board yog lub luag haujlwm tseem ceeb. Nws tseem hu xov tooj rau kev ua haujlwm los tso saib cov ntawv thiab cov ntaub ntawv txhua lub sijhawm ntsuas lub zog tau zoo dua.

Qhov screen zoo li no:

Koj tuaj yeem txuas Arduino UNO los ntawm koj lub khoos phis tawj thiab siv nws li 5V DC lub zog txuas txuas rau nws lub zog 2.1 hli. Nws khaws cov phiaj xwm sab hauv nws tsav thiab tuaj yeem txuas ntxiv ua haujlwm ntxiv tom qab tau siv.

Pom zoo: