Projekt 1
Meteostanica
Meranie teploty a vlhkosti a výpis údajov na display.
Projekt používa mikrokontrolér Esp32. Meranie údajov sa uskutočňuje snímačom DHT11, zobrazenie nameraných hodnôt dvojriadkový LCD displayom.
Súčiastky:
Čo potrebujeme?
Microkontrolér ESP32 (Vývojová doska NODE MCU ESP32 WiFi + Bluetooth)
Senzor teploty a vlhkosti DHT11
Display LCD 16×2 žlté podsvietenie
Micro USB kábel
Kábliky 7 kusov 10 cm F-F
Vývojová doska NODE MCU ESP32 WiFi + Bluetooth
ESP32 – vývojová doska s čipom s pomerne výkonný procesorom s kontektivitou WiFi a aj bluetooth. Procesor pracuje na frekvencií až 240 MHz s dvojitým jadrom, SRAM má pamäť až 520kb a až 4 MB FLASH pamäte. Procesor podporuje množstvo protokolov, kontrolných mechanizmov a automatických skenov pri malom pracovnom prúde. Logika zariadenia je 2.2V – 3.6V.
Senzor teploty a vlhkosti DHT 11
Digitálny senzor teploty a vlhkosti DHT11
Rozsah merania vlhkosti: 20% ~ 90% RH
Rozsah merania teploty: 0 až +50 ?
Presnosť merania vlhkosti: ± 5.0% RH
Presnosť merania teploty: ± 2.0 ?Odozva senzoru: <5 s
Senzor: Polymer resistorPiny: VCC, DATA, GND
Prevádzkové napätie : 3V až 5.5 VDC
Zapojenie
Schéma zapojenia
DHT 11
- VCC (červené)
- DATA (modré)
- GND (čierne)
ESP 32
- 3V3
- D15
- GND
LCD display
- GND (čierne)
- VCC (červené)
- SDA (šedé)
- SCL (oranžové)
ESP 32
- GND
- VIN
- D21
- D22
NÁVOD
Ako to funguje?
DHT11 – senzor teploty a vlhkosti
Obsahuje čip, ktorý robí analógovo-digitálnu konverziu a preto ako výsledok dostaneme digitálny signál s teplotou a vlhkosťou. Vďaka tomu sa veľmi ľahko používa s akýmkoľvek mikrokontrolérom.
V programe pre prácu s DHT11 a LCD displayom sú potrebné knižnice. Tieto knižnice sa musia importovať na začiatku programu.
Postup
Podľa schémy zapojíme k Esp32 senzor DHT11 a LCD display.
Nahráme kód na mikrokontrolér.
Na základe kódu zistíme teplotu a vlhkosť vzduchu.
Program na získavanie a zobrazenie údajov
import machine
from machine import Pin, SoftI2C
from lcd_api import LcdApi
from i2c_lcd import I2cLcd
from time import sleep
import dht
I2C_ADDR = 0x27
totalRows = 2
totalColumns = 16
i2c = SoftI2C(scl=Pin(22), sda=Pin(21), freq=10000)
lcd = I2cLcd(i2c, I2C_ADDR, totalRows, totalColumns)
p15=Pin(15, Pin.IN)
senzor=dht.DHT11(p15)
while True:
senzor.measure() #meranie
temp=senzor.temperature() # číta tepl. hum=senzor.humidity() # číta vlhkosť
teplota=’Teplota = ‚+str(temp)+’C‘
vlhkost=’Vlhkost = ‚+str(hum)+’%‘
print (teplota, vlhkost)
lcd.putstr(str(teplota))
sleep(3)
lcd.clear()
lcd.putstr(str(vlhkost))
sleep(3)
lcd.clear()