capteur de niveau & requette http

De l'aquarium à la piscine en passant par l'arrosage du massif de fleurs et la photo ultra-rapide de gouttes qui tombent, le Raspberry Pi peut tout faire...

Modérateur : Francois

Répondre
minimoibientot
Messages : 30
Enregistré le : mar. 3 févr. 2015 16:20
Localisation : Rouen

capteur de niveau & requette http

Message par minimoibientot » mer. 8 juin 2016 10:35

bonjour à tous

j'ai pour projet d'installer des capteurs de niveau d'eau relié à un raspberry ( pour une cuve à eau et un puisard )
Image

je pensais à 4 capteurs de niveau ( 0 / 33 / 66 / 100 % ) pour la cuve
et 3 capteurs ( 0 / 50 / 100 % ) pour le puisard

j'ai vu ce tuto
Une mesure de niveau d’eau avec un Raspberry Pi
qui correspond au 3/4 à mon besoin


seul modification :
- vérifier les capteurs toutes les 15 min
- envoyer une requête " http " ( à un bouton virtuel sur une box domotique )


seul bémol : je suis novice en " code "
et donc besoin de vous :oops:


par avance merci
domotique : vera3 + veraLite
BananaPi ( bananian Jessie ) + SATA + HD ext 2To
Raspberry ( squeezeslave )

minimoibientot
Messages : 30
Enregistré le : mar. 3 févr. 2015 16:20
Localisation : Rouen

Re: capteur de niveau & requette http

Message par minimoibientot » mer. 8 juin 2016 21:52

pour la vérification des sondes toutes les 15 min
:arrow: tache cron

pensez vous que ce code pourrait fonctionner :?: :?:

Code : Tout sélectionner

#!/usr/bin/env python
 
# -------------------------------------------
#       Affichage du niveau d'eau de la cuve
#                           Fred J. mars2014
# -------------------------------------------
 
import RPi.GPIO as GPIO
import time
 
DEBUG = 0;
 
#-------------[ CABLAGE ]--------------------
 
# sondes 4 à 9 puisard ( 0, 33, 66, 100%)
# sondes 10 à 15 cuve eau ( 0, 33, 66, 100%)
Sonde = [4, 7, 8, 9, 10, 11, 14, 15];
 
#-------------[ Initialisation ]--------------
 
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
 
for i in range(0,8):
   GPIO.setup(Sonde[i], GPIO.IN)

#-------------[ url suivant n° sonde et si true ou false ]--------------

sonde_true[1]="http://@IP:port/xxxxxxxxxx"
sonde_false[1]="http://@IP:port/xxxxxxxxxx"

sonde_true[2]="http://@IP:port/xxxxxxxxxx"
sonde_false[2]="http://@IP:port/xxxxxxxxxx"

sonde_true[3]="http://@IP:port/xxxxxxxxxx"
sonde_false[3]="http://@IP:port/xxxxxxxxxx"

sonde_true[4]="http://@IP:port/xxxxxxxxxx"
sonde_false[4]="http://@IP:port/xxxxxxxxxx"

sonde_true[5]="http://@IP:port/xxxxxxxxxx"
sonde_false[5]="http://@IP:port/xxxxxxxxxx"

sonde_true[6]="http://@IP:port/xxxxxxxxxx"
sonde_false[6]="http://@IP:port/xxxxxxxxxx"

sonde_true[7]="http://@IP:port/xxxxxxxxxx"
sonde_false[7]="http://@IP:port/xxxxxxxxxx"

sonde_true[8]="http://@IP:port/xxxxxxxxxx"
sonde_false[8]="http://@IP:port/xxxxxxxxxx"

#-------------[ Main ]--------------
for i in range(0,8):
 
if GPIO.input(sonde[i]) == True:
	r = requests.get(sonde_true[i])
else:
	r = requests.get(sonde_false[i])
 
r.url

exit
domotique : vera3 + veraLite
BananaPi ( bananian Jessie ) + SATA + HD ext 2To
Raspberry ( squeezeslave )

zeverybest
Raspinaute
Messages : 136
Enregistré le : sam. 18 oct. 2014 19:09

Re: capteur de niveau & requette http

Message par zeverybest » ven. 10 juin 2016 09:44

L'envoi de requete HTTp en python n'est pas aussi simple

Ce n'est pas la mort non plus, mais il faut decomposer ta requette

Code : Tout sélectionner

import httplib
# on cree un connection avec le serveur:
httpServ= httplib.HTTPConnection("adresse du seveur", port )
#on se connecte au serveur
httpServ.connect()
#on envoie la requete
httpServ.request('GET',requete)
response = httpServ.getresponse()
#les verification  :
if response.status == httplibOK :
   printText(response.read())

minimoibientot
Messages : 30
Enregistré le : mar. 3 févr. 2015 16:20
Localisation : Rouen

Re: capteur de niveau & requette http

Message par minimoibientot » ven. 10 juin 2016 17:02

merci pour l'aide zeverybest

:oops:
pour le coup je suis complétement largué
:oops:

les requetes seront de ce type :

Code : Tout sélectionner

http://@IP:PORT/data_request?id=lu_action&output_format=xml&DeviceNum=DEVICE&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=0
et envoyé sur une box domotique ( pas un server, je ne sais pas si cela fait une différence )

helppppp
domotique : vera3 + veraLite
BananaPi ( bananian Jessie ) + SATA + HD ext 2To
Raspberry ( squeezeslave )

minimoibientot
Messages : 30
Enregistré le : mar. 3 févr. 2015 16:20
Localisation : Rouen

Re: capteur de niveau & requette http

Message par minimoibientot » lun. 13 juin 2016 10:44

bonjour

est il possible d'utiliser une commande curl :?:
( cela m'a l'air plus simple :?: :?: )

Code : Tout sélectionner

import subprocess
proc = subprocess.Popen(["curl", "http://192.168.1.xxx:3480/data_request?id=lu_action&output_format=xml&DeviceNum=DEVICE&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=0"])
domotique : vera3 + veraLite
BananaPi ( bananian Jessie ) + SATA + HD ext 2To
Raspberry ( squeezeslave )

Avatar du membre
Manfraid
Modérateur
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: capteur de niveau & requette http

Message par Manfraid » lun. 13 juin 2016 16:03

Je te conseille la lib requests qui te permet de simplifier les requêtes http
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

minimoibientot
Messages : 30
Enregistré le : mar. 3 févr. 2015 16:20
Localisation : Rouen

Re: capteur de niveau & requette http

Message par minimoibientot » mar. 14 juin 2016 22:16

Une idée pour l'inscrire dans le script svp ??
merci
minimoibientot a écrit :

Code : Tout sélectionner

#!/usr/bin/env python
 
# -------------------------------------------
#       Affichage du niveau d'eau de la cuve
#                           Fred J. mars2014
# -------------------------------------------
 
import RPi.GPIO as GPIO
import time
 
DEBUG = 0;
 
#-------------[ CABLAGE ]--------------------
 
# sondes 4 à 9 puisard ( 0, 33, 66, 100%)
# sondes 10 à 15 cuve eau ( 0, 33, 66, 100%)
Sonde = [4, 7, 8, 9, 10, 11, 14, 15];
 
#-------------[ Initialisation ]--------------
 
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
 
for i in range(0,8):
   GPIO.setup(Sonde[i], GPIO.IN)

#-------------[ url suivant n° sonde et si true ou false ]--------------

sonde_true[1]="http://@IP:port/xxxxxxxxxx"
sonde_false[1]="http://@IP:port/xxxxxxxxxx"

sonde_true[2]="http://@IP:port/xxxxxxxxxx"
sonde_false[2]="http://@IP:port/xxxxxxxxxx"

sonde_true[3]="http://@IP:port/xxxxxxxxxx"
sonde_false[3]="http://@IP:port/xxxxxxxxxx"

sonde_true[4]="http://@IP:port/xxxxxxxxxx"
sonde_false[4]="http://@IP:port/xxxxxxxxxx"

sonde_true[5]="http://@IP:port/xxxxxxxxxx"
sonde_false[5]="http://@IP:port/xxxxxxxxxx"

sonde_true[6]="http://@IP:port/xxxxxxxxxx"
sonde_false[6]="http://@IP:port/xxxxxxxxxx"

sonde_true[7]="http://@IP:port/xxxxxxxxxx"
sonde_false[7]="http://@IP:port/xxxxxxxxxx"

sonde_true[8]="http://@IP:port/xxxxxxxxxx"
sonde_false[8]="http://@IP:port/xxxxxxxxxx"

#-------------[ Main ]--------------
for i in range(0,8):
 
if GPIO.input(sonde[i]) == True:
	r = requests.get(sonde_true[i])
else:
	r = requests.get(sonde_false[i])
 
r.url

exit
domotique : vera3 + veraLite
BananaPi ( bananian Jessie ) + SATA + HD ext 2To
Raspberry ( squeezeslave )

Le Ptit Nicolas
Messages : 46
Enregistré le : lun. 22 janv. 2018 11:04

Re: capteur de niveau & requette http

Message par Le Ptit Nicolas » lun. 22 janv. 2018 11:49

J'ai le même besoin que toi, mais je compte partir sur une solution différente. :arrow:
Modifié en dernier par Le Ptit Nicolas le lun. 29 janv. 2018 16:33, modifié 1 fois.

Le Ptit Nicolas
Messages : 46
Enregistré le : lun. 22 janv. 2018 11:04

Re: capteur de niveau & requette http

Message par Le Ptit Nicolas » lun. 29 janv. 2018 16:33

Je vais utiliser un capteur de distance étanche JSN-SR04T (équivalent au HC-SR04)
http://karlytau.raidghost.com/arduino/m ... _fioul.htm
Image
Relié à un ESP8266 (équivalent à ce montage au niveau matériel) :
http://blog.rexave.net/sonde-de-mesure- ... -desp8266/
Sur lequel je vais installer comme soft easyesp :
https://www.letscontrolit.com/wiki/index.php/HC-SR04

J'ai déjà testé le soft easyesp sur un ESP8266 avec un capteur HC-SR04, ca fonctionnne très bien, tu peux voir la mesure de distance avec un navigateur web, comme ceci:
Image
Et j'envoie les valeurs sur ma box domotique (un Pi avec Domoticz)
Il ne me reste plus qu'à acheter le capteur étanche

Répondre

Retourner vers « Que d'eau, que d'eau ! »