Arduino 12. nodarbība – Temperatūras un mitruma sensors

Arduino – Temperatūra un mitrums

Šajā nodarbībā iemācīsimies saņemt datus no temperatūras un mitruma sensora, ielādējot tā bibliotēku, un parādīt tos uz Arduino LCD ekrāna.

Nepieciešamie komponenti

  1. Arduino kontrolieris Nano vai Uno ar atbilstošuUSB kabeli
  2. Bredbords 400 punktu Half+
  3. Bredbords 170 punktu Mini
  4. Savienošanas vadi 10cm male-male 17 gab
  5. Rezistori 2KΩ 1 gab., 220Ω 1 gab.
  6. LCD ekrāns 1602A vai 1602A ar I2C adapteri.
  7. Temperatūras un mitruma sensors DHT11 vai DHT22.

!!! Ja lieto LCD ekrānu bez IIC I2C adaptera (komplektiem pirktiem pirms 2020.g. janvāra) informācija lapas apakšā.

LCD ekrāniem ar IIC I2C adapteri
(komplektiem pirktiem no 2020.g. janvāra)

Slēgums

1602A (pie I2C adaptera): GND – GND | VCC – 5V | SDA – A4 | SCL – A5
DHT11: (4 kājas) 5V | Pin 13 | Tukšs | GND
DHT11 modulis (3 kājas): 5V | Pin 13 | GND)

Izmanto bibliotēkas LiquidCrystal_I2C.h un DHT.h

Ekrāna kontrastu regulēt ar zilo potenciometru.

Bibliotēkas ielāde

Kā pieslēgt Arduino un kā lietot Arduino IDE programmu skatiet 1.nodarbībā

Atveram Arduino IDE programmu.
Instalējam DHT bibliotēku (library):
Rīki – Pārvaldīt bibliotēkas – Meklēšanas logā ierakstām ierīces nosaukumu, piem. DHT11, izvēlamies un instalējam bibliotēku – piem. DHT sensor library.

Ja vajadzīgā bibliotēka šeit nav atrodama, tad var to atrast internetā, lejuplādēt, atzipot un bibliotēkas mapi ielikt mapē Libraries, kura parasti atrodas Documents – Arduino – Libraries.
Pēc Arduino IDE pārstartēšanas bibliotēka, bieži pat ar piemēriem, būs jau programmā.

Programma

Fails – Jauns
Iekopējam kodu, tad Fails – Saglabāt. Pārbaudīt, tad Augšupielādēt.

/*
Temperaturas un mitruma sensors
*/

#include <LiquidCrystal_I2C.h> 
#include <DHT.h>
LiquidCrystal_I2C lcd(0x27,16,2); DHT dht(13, DHT11); // Sensora pins, modelis DHT11, DHT22, DHT21, AM2301 void setup() {
lcd.init();
lcd.backlight(); Serial.begin(9600); Serial.println("DHTxx test!"); lcd.begin(16,2); dht.begin(); } void loop() { delay(2000); float h = dht.readHumidity(); float t = dht.readTemperature(); Serial.print("Mitrums: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperatura: "); Serial.print(t); Serial.println(" C "); lcd.setCursor(0,0); lcd.print("Temp.: "); lcd.print(t,0); // 0 - decimāldaļas aiz komata lcd.print("C"); lcd.setCursor(0,1); lcd.print("Mitrums: "); lcd.print(h,0); // 0- decimāldaļas aiz komata lcd.print("%"); }

DHT11 sensoram izšķirtspēja ir 1 grāds un 1%, tāpēc 0 decimāldaļas aiz komata, bet DHT22 izšķir 0.1 grādu un 0.1%, tāpēc 1 decimāldaļa aiz komata.

Papildu uzdevums 1

11.nodarbībā izveidot savas rakstzīmes – bultas uz augšu un uz leju.
Uzrakstīt programmu, kura uz LCD ekrāna parāda – temperatūra ceļas vai krītas.

<< Iepriekšējā, 11. nodarbība |

 

Tikai LCD ekrāniem bez IIC I2C adaptera
(komplektiem pirktiem no 2020.g. janvāra)

Slēgums

Savienot tā pat kā 11.nodarbībā.
Papildus Temperatūras un mitruma sensors DHT11 (vai DHT22):
5V | D13 | Tukšs | GND

Bibliotēkas ielāde

Kā pieslēgt Arduino un kā lietot Arduino IDE programmu skatiet 1.nodarbībā

Atveram Arduino IDE programmu.
Instalējam DHT bibliotēku (library):
Rīki – Pārvaldīt bibliotēkas – Meklēšanas logā ierakstām ierīces nosaukumu, piem. DHT11, izvēlamies un instalējam bibliotēku – piem. DHT sensor library.

Ja vajadzīgā bibliotēka šeit nav atrodama, tad var to atrast internetā, lejuplādēt, atzipot un bibliotēkas mapi ielikt mapē Libraries, kura parasti atrodas Documents – Arduino – Libraries.
Pēc Arduino IDE pārstartēšanas bibliotēka, bieži pat ar piemēriem, būs jau programmā.

Programma

Fails – Jauns
Iekopējam kodu, tad Fails – Saglabāt. Pārbaudīt, tad Augšupielādēt.

/*
Temperaturas un mitruma sensors
*/

#include <DHT.h> // iekļauj biblotēkas
#include <LiquidCrystal.h>  

DHT dht(13, DHT11); // Sensora pins, modelis DHT11, DHT22, DHT21, AM2301
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // rs, enable, d4, d5, d6, d7

void setup() { 
  Serial.begin(9600);
  Serial.println("DHTxx test!");
  lcd.begin(16,2); 
  dht.begin();
}

void loop() { 

  delay(2000);
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  Serial.print("Mitrums: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperatura: ");
  Serial.print(t);
  Serial.println(" C ");

  lcd.setCursor(0,0); 
  lcd.print("Temp.: "); 
  lcd.print(t,0);  // 0 - decimāldaļas aiz komata
  lcd.print("C"); 
  lcd.setCursor(0,1); 
  lcd.print("Mitrums: ");
  lcd.print(h,0);  // 0- decimāldaļas aiz komata
  lcd.print("%");                                              
}

DHT11 sensoram izšķirtspēja ir 1 grāds un 1%, tāpēc 0 decimāldaļas aiz komata, bet DHT22 izšķir 0.1 grādu un 0.1%, tāpēc 1 decimāldaļa aiz komata.

Papildu uzdevums 1

11.nodarbībā izveidot savas rakstzīmes – bultas uz augšu un uz leju.
Uzrakstīt programmu, kura uz LCD ekrāna parāda – temperatūra ceļas vai krītas.

<< Iepriekšējā, 11. nodarbība |