RPi3 + nedvességszenzor értéke + python3

 ( makgab | 2018. október 24., szerda - 20:03 )

Üdv!
Van egy ilyen szenzor:
http://www.piddlerintheroot.com/soil-moisture-sensor/


#!/usr/bin/python3
import RPi.GPIO as GPIO
import time

#GPIO SETUP
channel = 21
GPIO.setmode(GPIO.BCM)
GPIO.setup(channel, GPIO.IN)

def callback(channel):
if GPIO.input(channel):
print ("No Water Detected!")
else:
print ("Water Detected!")

GPIO.add_event_detect(channel, GPIO.BOTH, bouncetime=300) # let us know when the pin goes HIGH or LOW
GPIO.add_event_callback(channel, callback) # assign function to GPIO PIN, Run function on change

# infinite loop
while True:
time.sleep(1)

A kód működik is, irogatja a "No Water ..." ...stb. üzeneteket.
Hogy tudom az értéket lekérni? Elvileg 0 és 1023 közötti értéket ad vissza nedvességtartalomtól függően. A GPIO.input(channel) csak 0 és 1 értéket ad (AO és DO portokon).

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Szerintem sehogy. A potival kalibralod, mikor legyen true/false.

A digitális portot felejtsd el, ha ezt szeretnéd! Az csak két jelszintet vehet fel a potenciométer függvényében. Neked a szenzor analóg kimenetére van szükséged és egy ADC-re, ami nincs tudomásom szerint RPI-n.

Azonban külső board segítségével megoldható (elég a chip is persze próbapanelen):
http://rasp.io/analogzero/
http://www.malnasuli.hu/oktatas/analog-bemenet-raspberry-pi-hez-az-mcp-3008/

Illetve ha nem kell nagy pontosság és felbontás, akkor csinálhatsz saját ADC-t is:
https://www.allaboutcircuits.com/projects/building-raspberry-pi-controllers-part-5-reading-analog-data-with-an-rpi/
De én ezt inkább egy Atmega-ra hagynám, ha nincs ADC chipem kéznél vagy 555-el mérnék (mert az mindenhol van):
https://www.eeweb.com/circuit-projects/555-timer-as-an-analog-to-digital-converter

Ja és amikor még nem voltak ilyen színes-szaftos dolgok (1980), akkor is megoldották:
http://www.ti.com/lit/an/snoa627/snoa627.pdf

Vagy Raspi helyett nodemcu-t használsz, ahol van dedikált ADP port. (zárójelbe, stabilabb is mint a Raspi)

Igen, a nodemcu egy mikrovezérlő. De most nem az a cél. :)
Köszönöm a javaslatot!

Lényegében annyi, hogy a két villát összeköti a víz és rövidzár keletkezik.
Gondolom víztől függ, hogy mekkora lesz az ellenállása és attól függ, hogy mekkora jelet nyom ki, amit valszeg a potival lehet erősíteni.

Bölcsészmérnök-e vagy?

"rövidzár keletkezik." "víztől függ, hogy mekkora lesz az ellenállása"

"a potival lehet erősíteni"

:D

Ez a szenzor csak a potival beállított küszöbérték alatt és felett ad digitális jelet, nem fogod tudni, hogy mennyire van kiszáradva, ahhoz más szenzort kellene használnod vagy erről a szenzorról legyűjteni az analóg jelet még a komparátor előtt.

--
https://iotguru.live