Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!
Lektion 02: Kapazitives Bodenfeuchtemodul
Bemerkung
Der Raspberry Pi verfügt nicht über analoge Eingabemöglichkeiten, daher benötigt er ein Modul wie den PCF8591 ADC-DAC-Wandlermodul, um analoge Signale für die Verarbeitung zu lesen.
In diesem Tutorial werden wir erkunden, wie man die Bodenfeuchtigkeit mit einem Raspberry Pi überwacht. Sie lernen, einen kapazitiven Bodenfeuchtesensor mit dem PCF8591-Modul für die Analog-Digital-Umwandlung einzurichten und Python zu verwenden, um kontinuierlich den Feuchtigkeitsgehalt des Bodens zu verfolgen. Dieses Projekt ist eine praktische Einführung in Sensoren, ADCs (Analog-Digital-Wandler) und Echtzeitdatenüberwachung auf dem Raspberry Pi.
Benötigte Komponenten
In diesem Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:
Name |
ITEMS IN THIS KIT |
LINK |
|---|---|---|
Universal Maker Sensor Kit |
94 |
Sie können sie auch einzeln über die unten stehenden Links kaufen.
Component Introduction |
Purchase Link |
|---|---|
Raspberry Pi 5 |
|
Verkabelung
Code
import PCF8591 as ADC # Import PCF8591 module
import time # Import time for delay
ADC.setup(0x48) # Initialize PCF8591 at address 0x48
try:
while True: # Continuously read and print moisture level
print(ADC.read(1)) # Read from Soil Moisture Sensor at AIN1
time.sleep(0.2) # Delay of 0.2 seconds
except KeyboardInterrupt:
print("Exit") # Exit on CTRL+C
Code-Analyse
Bibliotheken importieren:
In diesem Abschnitt werden die notwendigen Python-Bibliotheken importiert. Die Bibliothek
PCF8591wird zur Interaktion mit dem PCF8591-Modul verwendet, undtimedient zur Implementierung von Verzögerungen im Code.import PCF8591 as ADC # Import PCF8591 module import time # Import time for delay
PCF8591-Modul initialisieren:
Hier wird das PCF8591-Modul initialisiert. Die Adresse
0x48ist die I²C-Adresse des PCF8591-Moduls. Dies ist notwendig, damit der Raspberry Pi mit dem Modul kommunizieren kann.ADC.setup(0x48) # Initialize PCF8591 at address 0x48
Hauptschleife und Datenerfassung:
Der
try-Block enthält eine kontinuierliche Schleife, die ständig Daten vom kapazitiven Bodenfeuchtemodul liest. Die FunktionADC.read(1)erfasst die analoge Eingabe vom Sensor, der an Kanal 1 (AIN1) des PCF8591-Moduls angeschlossen ist. Durch Einfügen einestime.sleep(0.2)wird eine Pause von 0,2 Sekunden zwischen jeder Ablesung erstellt. Dies hilft nicht nur, die CPU-Auslastung des Raspberry Pi zu reduzieren, indem übermäßige Datenverarbeitungsanforderungen vermieden werden, sondern verhindert auch, dass das Terminal mit schnell scrollenden Informationen überflutet wird, wodurch die Überwachung und Analyse der Ausgabe erleichtert wird.try: while True: # Continuously read and print moisture level print(ADC.read(1)) # Read from Soil Moisture Sensor at AIN1 time.sleep(0.2) # Delay of 0.2 seconds
Behandlung von Tastaturunterbrechungen:
Der
except-Block ist dafür vorgesehen, eine KeyboardInterrupt (wie das Drücken von STRG+C) abzufangen. Wenn diese Unterbrechung auftritt, druckt das Skript „exit“ und stoppt die Ausführung. Dies ist eine übliche Methode, um ein kontinuierlich laufendes Skript in Python sauber zu beenden.except KeyboardInterrupt: print("exit") # Exit on CTRL+C