RPi3 + nedvességszenzor értéke + python3

Ü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ások

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-…

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-control…
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-digita…

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)

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.

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