|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "9d4d00a47d5d0f3e6ce42c0d1020064a",
|
|
|
"translation_date": "2025-08-27T21:41:08+00:00",
|
|
|
"source_file": "2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md",
|
|
|
"language_code": "el"
|
|
|
}
|
|
|
-->
|
|
|
# Μέτρηση υγρασίας εδάφους - Raspberry Pi
|
|
|
|
|
|
Σε αυτό το μέρος του μαθήματος, θα προσθέσετε έναν χωρητικό αισθητήρα υγρασίας εδάφους στο Raspberry Pi σας και θα διαβάσετε τιμές από αυτόν.
|
|
|
|
|
|
## Υλικό
|
|
|
|
|
|
Το Raspberry Pi χρειάζεται έναν χωρητικό αισθητήρα υγρασίας εδάφους.
|
|
|
|
|
|
Ο αισθητήρας που θα χρησιμοποιήσετε είναι ένας [Capacitive Soil Moisture Sensor](https://www.seeedstudio.com/Grove-Capacitive-Moisture-Sensor-Corrosion-Resistant.html), ο οποίος μετρά την υγρασία του εδάφους ανιχνεύοντας τη χωρητικότητα του εδάφους, μια ιδιότητα που αλλάζει καθώς αλλάζει η υγρασία του εδάφους. Όσο αυξάνεται η υγρασία του εδάφους, η τάση μειώνεται.
|
|
|
|
|
|
Αυτός είναι ένας αναλογικός αισθητήρας, οπότε χρησιμοποιεί μια αναλογική ακίδα και τον 10-bit ADC στο Grove Base Hat του Pi για να μετατρέψει την τάση σε ψηφιακό σήμα από 1-1,023. Στη συνέχεια, αυτό αποστέλλεται μέσω I2C μέσω των ακίδων GPIO του Pi.
|
|
|
|
|
|
### Σύνδεση του αισθητήρα υγρασίας εδάφους
|
|
|
|
|
|
Ο αισθητήρας υγρασίας εδάφους Grove μπορεί να συνδεθεί στο Raspberry Pi.
|
|
|
|
|
|
#### Εργασία - σύνδεση του αισθητήρα υγρασίας εδάφους
|
|
|
|
|
|
Συνδέστε τον αισθητήρα υγρασίας εδάφους.
|
|
|
|
|
|

|
|
|
|
|
|
1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα υγρασίας εδάφους. Θα μπει μόνο με έναν συγκεκριμένο τρόπο.
|
|
|
|
|
|
1. Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove στην αναλογική υποδοχή με την ένδειξη **A0** στο Grove Base Hat που είναι συνδεδεμένο στο Pi. Αυτή η υποδοχή είναι η δεύτερη από τα δεξιά, στη σειρά των υποδοχών δίπλα στις ακίδες GPIO.
|
|
|
|
|
|

|
|
|
|
|
|
1. Εισάγετε τον αισθητήρα υγρασίας εδάφους στο έδαφος. Έχει μια 'γραμμή μέγιστης θέσης' - μια λευκή γραμμή πάνω στον αισθητήρα. Εισάγετε τον αισθητήρα μέχρι τη γραμμή αυτή, αλλά όχι πέρα από αυτήν.
|
|
|
|
|
|

|
|
|
|
|
|
## Προγραμματισμός του αισθητήρα υγρασίας εδάφους
|
|
|
|
|
|
Το Raspberry Pi μπορεί τώρα να προγραμματιστεί για να χρησιμοποιήσει τον συνδεδεμένο αισθητήρα υγρασίας εδάφους.
|
|
|
|
|
|
### Εργασία - προγραμματισμός του αισθητήρα υγρασίας εδάφους
|
|
|
|
|
|
Προγραμματίστε τη συσκευή.
|
|
|
|
|
|
1. Ενεργοποιήστε το Pi και περιμένετε να εκκινήσει.
|
|
|
|
|
|
1. Εκκινήστε το VS Code, είτε απευθείας στο Pi είτε συνδεθείτε μέσω της επέκτασης Remote SSH.
|
|
|
|
|
|
> ⚠️ Μπορείτε να ανατρέξετε [στις οδηγίες για τη ρύθμιση και την εκκίνηση του VS Code στο nightlight - μάθημα 1, αν χρειαστεί](../../../1-getting-started/lessons/1-introduction-to-iot/pi.md).
|
|
|
|
|
|
1. Από το τερματικό, δημιουργήστε έναν νέο φάκελο στον κατάλογο του χρήστη `pi` με όνομα `soil-moisture-sensor`. Δημιουργήστε ένα αρχείο σε αυτόν τον φάκελο με όνομα `app.py`.
|
|
|
|
|
|
1. Ανοίξτε αυτόν τον φάκελο στο VS Code.
|
|
|
|
|
|
1. Προσθέστε τον παρακάτω κώδικα στο αρχείο `app.py` για να εισάγετε κάποιες απαιτούμενες βιβλιοθήκες:
|
|
|
|
|
|
```python
|
|
|
import time
|
|
|
from grove.adc import ADC
|
|
|
```
|
|
|
|
|
|
Η δήλωση `import time` εισάγει τη μονάδα `time`, η οποία θα χρησιμοποιηθεί αργότερα σε αυτήν την εργασία.
|
|
|
|
|
|
Η δήλωση `from grove.adc import ADC` εισάγει το `ADC` από τις βιβλιοθήκες Python του Grove. Αυτή η βιβλιοθήκη περιέχει κώδικα για την αλληλεπίδραση με τον αναλογικό σε ψηφιακό μετατροπέα στο Pi Base Hat και την ανάγνωση τάσεων από αναλογικούς αισθητήρες.
|
|
|
|
|
|
1. Προσθέστε τον παρακάτω κώδικα κάτω από αυτό για να δημιουργήσετε μια παρουσία της κλάσης `ADC`:
|
|
|
|
|
|
```python
|
|
|
adc = ADC()
|
|
|
```
|
|
|
|
|
|
1. Προσθέστε έναν άπειρο βρόχο που διαβάζει από αυτόν τον ADC στην ακίδα A0 και γράφει το αποτέλεσμα στην κονσόλα. Αυτός ο βρόχος μπορεί στη συνέχεια να κοιμάται για 10 δευτερόλεπτα μεταξύ των αναγνώσεων.
|
|
|
|
|
|
```python
|
|
|
while True:
|
|
|
soil_moisture = adc.read(0)
|
|
|
print("Soil moisture:", soil_moisture)
|
|
|
|
|
|
time.sleep(10)
|
|
|
```
|
|
|
|
|
|
1. Εκτελέστε την εφαρμογή Python. Θα δείτε τις μετρήσεις υγρασίας εδάφους να γράφονται στην κονσόλα. Προσθέστε λίγο νερό στο έδαφος ή αφαιρέστε τον αισθητήρα από το έδαφος και δείτε την τιμή να αλλάζει.
|
|
|
|
|
|
```output
|
|
|
pi@raspberrypi:~/soil-moisture-sensor $ python3 app.py
|
|
|
Soil moisture: 615
|
|
|
Soil moisture: 612
|
|
|
Soil moisture: 498
|
|
|
Soil moisture: 493
|
|
|
Soil moisture: 490
|
|
|
Soil Moisture: 388
|
|
|
```
|
|
|
|
|
|
Στο παραπάνω παράδειγμα εξόδου, μπορείτε να δείτε την πτώση της τάσης καθώς προστίθεται νερό.
|
|
|
|
|
|
> 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code/pi](../../../../../2-farm/lessons/2-detect-soil-moisture/code/pi).
|
|
|
|
|
|
😀 Το πρόγραμμα του αισθητήρα υγρασίας εδάφους σας ήταν επιτυχές!
|
|
|
|
|
|
---
|
|
|
|
|
|
**Αποποίηση ευθύνης**:
|
|
|
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. |