דלגו לתוכן המרכזי
KitLab
שיעור קודם
תחנת ניטור סביבתי — format· 33 / 41
תחנת ניטור סביבתי — format
🎬

הסרטון בדרך אלינו

בינתיים — התמלול המלא של השיעור מחכה לכם למטה

תחנת ניטור סביבתי — format

מה בשיעור?

  • ארבעת שלבי זרימת הנתונים
  • שלושה רכיבים, שלושה פרוטוקולים
  • שלב הסינון שמבדיל צעצוע ממערכת
  • format לשילוב ערכים בטקסט
  • רווחים בסוף מחרוזת במקום clear

מה נלמד כאן

  • מערכת ניטור סביבתי
  • ארבעת שלבי זרימת הנתונים
  • לחבר שני חיישנים למסך אחד

לדעת מה קורה

ניטור סביבתי

בחקלאות חכמה, בבית חכם ובחממות — ניטור בזמן אמת הוא קריטי.


הידע שצריך

ארבעת שלבי זרימת הנתונים

זרימת הנתונים

זו התבנית של כל מערכת ניטור בעולם:

1. איסוף — הפוטו-רזיסטור מוציא מתח אנלוגי, ה-DHT11 מוציא אות דיגיטלי.

2. המרה וקריאה — ה-ADC ממיר, והבקר קורא את שניהם.

3. עיבוד — הבקר מסנן ומאמת, זורק ערכים חריגים.

4. תצוגה — הנתונים על המסך בזמן אמת.

שלב 3 הוא מה שמבדיל בין צעצוע למערכת. בלי סינון, קריאה כושלת אחת תופיע כמספר שטותי. אצלנו זה ה-try/except.

מה מיוחד כאן

הפעם הראשונה שאתם מחברים שלושה רכיבים בפרוטוקולים שונים:

הרכיב איך קוראים
פוטו-רזיסטור ADC — אנלוגי
DHT11 מודול dht — פרוטוקול ייעודי
LCD1602 ספרייה — I2C

שלוש שפות שונות, תוכנית אחת.


הניסוי

המטרה: אור, טמפרטורה ולחות על המסך.

רשימת רכיבים

הרכיב כמות
לוח ESP32 1
לוח ניסוי 400 נקודות 1
מסך LCD1602 1
חיישן DHT11 1
פוטו-רזיסטור 1
נגד 10kΩ 1

התרשים החשמלי

התרשים החשמלי

החיבור

חיבור הרכיבים


הקוד

import dht
from machine import Pin, ADC
import time
from libs.Acebott import i2c
from libs.ACB_LCD1602 import ACB_LCD1602

lcd = ACB_LCD1602(i2c)
lcd.set_backlight(True)

ldr = ADC(Pin(32))
ldr.atten(ADC.ATTN_11DB)

dht_sensor = dht.DHT11(Pin(5))

while True:
    try:
        dht_sensor.measure()
        tem = dht_sensor.temperature()
        hum = dht_sensor.humidity()
        light = ldr.read()

        lcd.display_text_at_position(0, 0, "T:{} H:{}%   ".format(tem, hum))
        lcd.display_text_at_position(0, 1, "Light:{}    ".format(light))

        print("T:", tem, "H:", hum, "Light:", light)

    except:
        print("Sensor read failed")

    time.sleep(2)

שימו לב ל-.format() — הדרך של פייתון לשלב ערכים בתוך טקסט. הסוגריים המסולסלים הם המקומות שבהם הערכים נכנסים.

והרווחים בסוף המחרוזת הם לא טעות. אם המספר מתקצר (מ-1234 ל-99), הספרות הישנות יישארו על המסך. הרווחים "מוחקים" אותן.

ב-Arduino עשינו lcd.clear() בכל סיבוב. כאן רווחים בסוף חוסכים את הריצוד שהניקוי המלא יוצר.

מה אמור לקרות

המסך מציג נתונים


נסו בעצמכם

  • כסו את הפוטו-רזיסטור ונשפו על ה-DHT11 בו-זמנית.
  • הוסיפו התרעה: חם מדי או חשוך מדי → נורית.
  • תעדו מקסימום ומינימום מאז ההפעלה.
  • החליפו תצוגה כל כמה שניות כדי להציג יותר נתונים.
  • הסירו את הרווחים מסוף המחרוזות. מה קורה כשהמספר מתקצר?

🧰 הרכיבים לשיעור הזה

רוצים את חומרי הקורס והעדכונים?

נשלח למייל את קובצי הקוד, החומרים ועדכונים על שיעורים חדשים. בלי ספאם.