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?

N

Microkontrolér ESP32 (Vývojová doska NODE MCU ESP32 WiFi + Bluetooth)

N

Senzor teploty a vlhkosti DHT11

N

Display LCD 16×2 žlté podsvietenie

N

Micro USB kábel

N

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

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()