• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
notificatore tramite relè

[Problema] Notificatore tramite relè
#11
Bene, sono felice di annunciare che il progetto è concluso e funzionante.
il codice è il seguente:
Codice:
#!/bin/usr/python
# /etc/init.d/notifica.py
###BEGIN INIT INFO
# Provides: notifica.py
# Required-Start:$remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description:Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO

from gpiozero import Button
import smtplib
import requests

fm = Button(16)
irr = Button(21)
all = Button(20)


fromaddr = 'mittente@gmail.com'
toaddr = 'destinatario@gmail.com'
msg = 'subject:monitoraggio avviato'
msg1 = 'subject:irrigazione on'
msg2 = 'subject:irrigazione off'
msg3 = 'subject:corrente ripristinata'
msg4 = 'subject:mancanza corrente'

username = 'user'
password = 'password'

contirr = 0
contfm = 0
contall = 0
def inviamail(a):
   server = smtplib.SMTP ('smtp.gmail.com:587')
   server.starttls()
   server.login(username, password)
   server.sendmail(fromaddr, toaddr, a)
   server.quit()
   print (a)

inviamail(msg)
while True:
   if (fm.is_pressed):
       if (contfm==0):
           inviamail(msg3)
           contfm=contfm+1
   elif (contfm==1):
       inviamail(msg4)
       contfm=contfm-1
   if (irr.is_pressed):
       if (contirr==0):
           inviamail(msg1)
           contirr=contirr+1
   elif (contirr==1):
       inviamail(msg2)
       contirr=contirr-1
   if (all.is_pressed):
       if (contall==0):
           requests.get('http://192.168.88.10/cm?cmnd=Power%20off')
           requests.get('http://192.168.88.11/cm?cmnd=Power%20off')
           requests.get('http://192.168.88.12/cm?cmnd=Power%20off')
           requests.get('http://192.168.88.13/cm?cmnd=Power%20off')
           requests.get('http://192.168.88.14/cm?cmnd=Power%20off')
           requests.get('http://192.168.88.15/cm?cmnd=Power%20off')
           requests.get('http://192.168.88.16/cm?cmnd=Power%20off')
           requests.get('http://192.168.88.17/cm?cmnd=Power%20off')
           requests.get('http://192.168.88.18/cm?cmnd=Power%20off')
           contall=contall+1
   elif (contall==1):
       contall=contall-1

già che c'ero ho integrato il controllo dell'inserimento dell'allarme di casa, al momento dell'inserimento dell'allarme mi spegne le luci di casa.
alla fine ho mantenuto i contatori, veloci e pratici. aggiungere un controllo di pressione ora è molto semplice.
Sto pensando a come realizzare il sistema di allarme di casa; alla fine la logica è semplice, se il contatto INSERIMENTO è chiuso ed uno dei sensori viene aperto/chiuso (in base alla logica di funzionamento) allora avvertimi e fai suonare la sirena...
Risposta
#12
Riapro la discussione per un'ulteriore domanda, cosa devo importare (immagino request) e che codice uso per far fare qualcosa al mio raspi inviando una http request da un altro apparecchio?

Inviato dal mio SM-A405FN utilizzando Tapatalk
Risposta
#13
Puoi usare request, o urlib, o httplib.
Qui esempi

Inviato dal mio A0001 utilizzando Tapatalk
Risposta
#14
Grazie, ho letto tutto ma cercavo qualcosa di diverso...
Il mio allarme ha la possibilità di lanciare http get per pilotare diversi device; nello specifico se scatta l'allarme mi accende le luci esterne e fa chiudere un relè sui contatti del gpio del raspi che invia una notifica telegram.
Mi chiedevo se esiste la possibilità di lasciare il raspi in "ascolto" di un get dell'allarme ed inviare una notifica ed evitare il passaggio del relè sui gpio....

Inviato dal mio SM-A405FN utilizzando Tapatalk
Risposta
#15
Si, un web server, uno script php che resta in attesa delle richieste e ne fa seguire una azione

Inviato dal mio A0001 utilizzando Tapatalk
Risposta
#16
Grazie mille@Zzed

Inviato dal mio SM-A405FN utilizzando Tapatalk
Risposta
  


Vai al forum:


Navigazione: 4 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect