29/03/2016, 11:26
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§ion=actions&ah2_arming=enable").read()
content = urllib.urlopen("http://admin:password@192.168.0.103/control/control?set§ion=actions&ah2_arming=enable").read()
content = urllib.urlopen("http://admin:password@192.168.0.104/control/control?set§ion=actions&ah2_arming=enable").read()
content = urllib.urlopen("http://admin:password@192.168.0.105/control/control?set§ion=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§ion=actions&ah2_arming=disable").read()
content = urllib.urlopen("http://admin:password@192.168.0.103/control/control?set§ion=actions&ah2_arming=disable").read()
content = urllib.urlopen("http://admin:password@192.168.0.104/control/control?set§ion=actions&ah2_arming=disable").read()
content = urllib.urlopen("http://admin:password@192.168.0.105/control/control?set§ion=actions&ah2_arming=disable").read()
p.digital_write(4,0)
p.digital_write(5,0)
Grazieeeeeee
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§ion=actions&ah2_arming=enable").read()
content = urllib.urlopen("http://admin:password@192.168.0.103/control/control?set§ion=actions&ah2_arming=enable").read()
content = urllib.urlopen("http://admin:password@192.168.0.104/control/control?set§ion=actions&ah2_arming=enable").read()
content = urllib.urlopen("http://admin:password@192.168.0.105/control/control?set§ion=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§ion=actions&ah2_arming=disable").read()
content = urllib.urlopen("http://admin:password@192.168.0.103/control/control?set§ion=actions&ah2_arming=disable").read()
content = urllib.urlopen("http://admin:password@192.168.0.104/control/control?set§ion=actions&ah2_arming=disable").read()
content = urllib.urlopen("http://admin:password@192.168.0.105/control/control?set§ion=actions&ah2_arming=disable").read()
p.digital_write(4,0)
p.digital_write(5,0)
Grazieeeeeee