Questo forum utilizza i cookies
Questo forum fa uso di cookie per migliorare l'esperienza utente. I cookie sono piccoli file di testo memorizzati sul tuo browser. I cookie impostati dal forum possono essere utilizzati solo su questo sito e non costituiscono rischio per la sicurezza, vengono utilizzati unicamente per memorizzare le tue preferenze. Navigando sul sito accetti che RaspberryItaly installi i cookie sul tuo browser.
Per maggiori informazioni consulta l'informativa sui Cookie di RasberryItaly

Un cookie verra memorizzato nel browser indipendentemente dalla scelta per evitare che questa domanda ti venga posta di nuovo. Sarai in grado di modificare le impostazioni dei cookie in qualsiasi momento utilizzando il link nel footer.
  • 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
piface telecamere antifurto

[Problema] Piface, antifurto, telecamere
#1
Buongiorno a tutti, questo è il mio primo post. Mi chiamo Stefano, scrivo dalla provincia di Brescia e sono alle prese con un pi "capriccioso" (o meglio, con un programmatore assolutamente inesperto ... io ...)

Ho una piface collegata al pi e con un contatto pulito proveniente dall'antifurto che le dice se lo stesso è inserito oppure no.

Ho creato un listener che lancio al boot e sta in ascolto. Se l'antifurto si inserisce chiama le telecamere via web, le "arma" e quindi accende due led sulla piface.

Primo problema: se una delle telecamere non è raggiungibile per qualche motivo si blocca tutto.

Secondo problema: se tolgo l'antifurto spesso accade che dopo aver spento i led ... li riaccenda ... e non mi spiego il motivo. Qualche anima pia mi da una dritta?

Questo lo script che lancio al boot:

#importo la libreria piface
import pifacedigitalio
#importo la libreria per aprire gli url
import urllib
import subprocess

def allarme_inserito(event):
execfile("/stefano/antifurto/allarme_on.py")

def allarme_disinserito(event):
execfile("/stefano/antifurto/allarme_off.py")

def allarme_suona(event):
execfile("/stefano/antifurto/allarme_suona.py")

# attenzione, sono lo script che parte al boot, quindi se parto io devo inizializzare la scheda a quanto pare, non metto init_board=False tra le parentesi tonde
pifacedigital = pifacedigitalio.PiFaceDigital()
listener = pifacedigitalio.InputEventListener(chip=pifacedigital)
#il primo numero rappresenta il contatto da monitorare, RISING o FALLING dice se quando si apre o quando si chiude, poi dice cosa fare
listener.register(0, pifacedigitalio.IODIR_RISING_EDGE, allarme_inserito)
listener.register(0, pifacedigitalio.IODIR_FALLING_EDGE, allarme_disinserito)
listener.register(1, pifacedigitalio.IODIR_RISING_EDGE, allarme_suona)
#listener.register(2, pifacedigitalio.IODIR_RISING_EDGE, alimentazione_assente)
#listener.register(2, pifacedigitalio.IODIR_FALLING_EDGE, alimentazione_presente)
#listener.register(3, pifacedigitalio.IODIR_RISING_EDGE, batteria_problema)
#listener.register(3, pifacedigitalio.IODIR_FALLING_EDGE, batteria_ok)
listener.activate()


Questo lo script allarme_on.py

#importo la libreria piface
import pifacedigitalio as p
#importo la libreria per aprire gli url
import urllib
import subprocess
#resetto il led che segnala movimento retro
subprocess.call(['/stefano/./kill_notifica_retro_led.sh'])
#resetto led e telecamere, questo file si usa visto che lo script monitor non sembra andare correttamente purtroppo
p.init(init_board=False )
content = urllib.urlopen("http://admin:password@192.168.0.102/control/control?set&section=actions&ah2_arming=enable").read()
content = urllib.urlopen("http://admin:password@192.168.0.103/control/control?set&section=actions&ah2_arming=enable").read()
content = urllib.urlopen("http://admin:password@192.168.0.104/control/control?set&section=actions&ah2_arming=enable").read()
content = urllib.urlopen("http://admin:password@192.168.0.105/control/control?set&section=actions&ah2_arming=enable").read()
p.digital_write(4,1)
p.digital_write(5,1)


e questo allarme_off.py

#importo la libreria piface
import pifacedigitalio as p
#importo la libreria per aprire gli url
import urllib
import subprocess
#resetto il led che segnala movimento retro
subprocess.call(['/stefano/./kill_notifica_retro_led.sh'])
#resetto led e telecamere, questo file si usa visto che lo script monitor non sembra andare correttamente purtroppo
p.init(init_board=False )
content = urllib.urlopen("http://admin:password@192.168.0.102/control/control?set&section=actions&ah2_arming=disable").read()
content = urllib.urlopen("http://admin:password@192.168.0.103/control/control?set&section=actions&ah2_arming=disable").read()
content = urllib.urlopen("http://admin:password@192.168.0.104/control/control?set&section=actions&ah2_arming=disable").read()
content = urllib.urlopen("http://admin:password@192.168.0.105/control/control?set&section=actions&ah2_arming=disable").read()
p.digital_write(4,0)
p.digital_write(5,0)

Grazieeeeeee
Risposta
#2
Ciao Stefano,
non sono esperto di pyton ma il primo problema potrebbe essere relativo al timeout e l'eccezione generata dalla mancata raggiungibilità della telecamera via http.
Prova a gestire sia il timeout che l'eccezione come l'esempio riportato qui
http://stackoverflow.com/questions/87634...n-python-3
Risposta
  


Vai al forum:


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