• 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
netatmo sensori controllo comando quot stato e antifurto temperature

controllo stato sensori "antifurto", temperature e comando NETATMO
#1
ciao a tutti

situazione attuale:

1) arduino yun che gestisce 2 sonde di temperatura situate: una in un puffer (serbatoio di acqua calda per i profani) per riscaldamento a pavimento e una nella bocca di aerazione del vano tecnico (temperatura quasi identica, + o - 0.5 gradi, a quella esterna)

Il puffer è riscaldato da:
  1. una caldaia a metano che si accende a 43,5 gradi.
  2. un sistema di 5 pannelli solari termici.
    quindi se lungo il giorno la temperatura supera i 45-46 gradi vuol dire che il sole sta facendo il suo lavoro, che non c'e' nebbia, non nevica, ecc ecc
  • solo durante gli orari diurni, se la temperatura del puffer supera x gradi (47.5) arduino manda un comando via email ad una casella che tramite ifttt aziona il termostato netatmo e mi accende il riscaldamento a prescindere dalle fasce programmate
  • solo durante gli orari diurni, se la temperatura del puffer scende sotto y gradi (46) arduino manda un comando via email ad una casella che tramite ifttt aziona il termostato netatmo e mi riattiva le fasce programmate
  • mi aggiorna una piccola pagina web su aruba con temperatura puffer, temperatura esterna, stato acceso/spento
in questo modo ho un totale disaccoppiamento tra l'impianto di riscaldamento e il mio accrocchio in modo da evitare casini elettrici o di blocchi incomprensibili (mi basterebbe disattivare da smartphone ifttt e il gioco è fatto). Dopo un anno di lavoro ho verificato di aver scaldato casa a inizio e fine stagione (e a volte anche a dicembre) gratis... zero gas... l'impianto si accende da solo di giorno a 23-24 gradi ambiente e mi fa trovare casetta calda alla sera....a zero spese

2) ho fatto una piccola esperienza per la casa al mare della suocera per renderla raggiungibile in remoto: un raspberry pi 3b  con le seguenti funzioni

  1. vpn server
  2. sistema di controllo indirizzo ip e comunicazione al suo variare via email (per non usare un ddns o altro... sono tirchio, lo so, ma quelli gratuiti a volte mi fanno cilecca)
DESIDERIO:
  1. la moglie si lamenta che a volte lasciamo il basculante del garage aperto
  2. arduino yun dopo un anno di attività ottima adesso si pianta spesso (penso sia colpa della card)
  3. ho quattro sensori perimetrali da esterno a doppia tecnologia che mi avanzano e volevo usarli per avvertirmi se qualcuno "passeggia" a mia insaputa in giardino (purtroppo una volta è già capitato...) ps. non ho cani o gatti e l'antifurto esistente non voglio toccarlo.
quindi con un unico raspberry pensavo di:

  1. attivare un cicalino se il basculante è aperto o se i sensori rilevano movimento (magari con ritmo differenziato e disattivabile)
  2. creare un sistema "visivo" che mi indichi in casa quale sensore si è attivato (sono in dubbio se usare un sistema con display raspberry o una paginetta web, vedremo poi...)
  3. far convergere le funzioni dello yun su raspberry (lo yun ha poca memoria per lo sketch ed è saturo... colpa mia.. è stato il mio primo esperimento e non ne comprendevo le limitazioni. Sono dovuto ricorrere a uno sketch + script python per ovviare)
  4. attivare il sistema "suocera" a casa (vpn + mail ip)
  5. Controllare le temperature di due freezer

Andiamo per gradi:

collegare un sensore magnetico per il basculante e i sensori di movimento:
  • collego direttamente al raspberry con resistenza pull o sarebbe meglio optare per contatti optoisolati (vivo nel terrore di friggere il raspberry)?
  • volendo comandare un rele' finder esistente (dovrebbe essere a 12 volt) che aziona il cicalino la scheda rele' per raspberry diventerebbe obbligatoria o sbaglio? ne trovo di tanti tipi diversi in giro....
ho una certa confusione su primo punto (sensori):
  • ho trovato schede con rele' da azionare come uscite del raspberry
  • ho trovato collegamenti con resistenze in pull su ingressi
  • ho trovato info sui vantaggi di contatti optoisolati in uscita dal raspberry (che mi sembra capire andrebbero in contro alla soluzione alle mie paure sul fritto di raspberry)
  • non ho trovato info sulle medesime protezioni sugli ingressi del raspberry (ma potri essere io ad essere ciuccio...)
ultimo ed ho finito: sono assolutamente una pippa a saldare a stagno... saldo lamiere, piastre, scatolato ecc ad arco, ma con lo stagno mi vengono sempre delle schifezze ed ho il terrore di saldare contatti su integrati.... ditemi che posso farne a meno e potrò usare contatti m-f sui circuiti.... per favore... (due fili insieme li saldo bene, ma se posso uso i morsetti...)... se qualcuno ride sappia che non ho usato la saldatrice ad arco con lo stagno... ho usato il saldatore elettrico classico.....  Smile

grazie in anticipo

PS il raspberry non l'ho ancora preso. Pensavo, visto che sembra scaldare meno (dalle recensioni viste) di prendere il nuovo 3 B+
Risposta
#2
Ciao, il 3B+ scalda meno del 3. O meglio, scalda in modo più diffuso, così che il sensore di temperatura nel SoC, segna una temperatura inferiore.
La scelta ora è tra 3B+ e zero, a meno di rivolgersi sull'usato.
Le tue paure su friggere il RaspberryPi, non sono (sempre) motivate : non lo friggi certo con un contatto (come il Reed magnetico), e se usi gli strumenti software corretti, le resistenze di pull-up o pull-down vengono inserite automaticamente (RaspberryPi le ha interne, attivabili o meno via software).
La scheda relè è bene che sia optoisolata, perché i relè possono comandare carichi anche a 250v, ed è meglio tenere separate elettricamente le due cose, in modo sicuro.
Comunque, complimenti per quanto hai realizzato, anche se ci sono delle cose che mi sono suonate un po' "strane", forse anacronistiche: usare le mail per inviare un comando, mi sembra un po' grezzo, sebbene funzionante. Potresti usare MQTT..
Un cicalino se la basculante resta aperta lo puoi fare usando un contatto. Con Raspberry puoi fare una notifica Telegram che ti avvisa "Hei!, la basculante", o un messaggio vocale, o entrambi.
Allo stesso modo, se i sensori perimetrali entrano in azione, potresti riprodurre l'abbaiare di un cane (tu che non lo hai), o il vociare di più persone..
non saldare cavi sul Raspberry! solitamente si usano cavetti dupont, che si infilano sui pin del GPIO. Ma per esperienza, non sono il massimo in caso di installazioni esterne, la scarsa corrente (pochi mA) continua li fa ossidare che è un piacere. Puoi usare una scheda di connessione con morsetti, come questa.
Vedi anche questo numero di MagPi, c'è anche uno speciale per contatti porte/finestre e simili
Risposta
#3
Grazie

Non conoscevo mqtt e quando ho iniziato il tutto con netatmo non volevo una soluzione con api (ifttt mi ha risolto tutto con pochi clic)... sono un tipo molto "semplice" .... Ho visto da poco che sono state pubblicate api per netatmo... ci proverò piu avanti.. tempo permettendo.. con un sistema ifttt é sicuramente artificioso... ma con pochi clic puó funzionare con quasi tutti i termostati smart "famosi".

Lo yun penso di averlo bloccato a forza di troppe scritture di log sulla sd...

infatti i passi successivi al cicalino sarebbero:

- "visualizzare" la situazione su un display/monitor/pagina web.... sia per quanto riguarda allarmi che temperature....
- magari con un sistema telegram o push o altro.. (la tua idea...)
- db seri e non csv...
ma tutto questo lo vedrei dopo

Dopo la parte hardware vorrei prima capire come gestire nel modo piu leggero e snello i programmi di "lettura" delle temperature e dei contatti... imparare a gestirli con irq e programmazione asincrona (spero di non aver detto castronerie).... insomma con un sistema che non tenda a piantarsi, sovraccaricare, ecc... ho gia' ottenuto molto con "la suocera" facendola riavviare ogni notte ed é un anno che gira senza problemi... ma vorrei qualcosa di "piu serioso"

Ho scoperto grazie a te i vantaggi dei moduli rtc... grazie...

Sto anche cercando di capire come gestire il tutto con un hdd/ssd (ne ho d'avanzo) e non con sd ma trovo opinioni discordanti sui vari siti.

Il modulo per i contatti che mi hai mandato è un piccolo sogno....

Adesso cerco un modulo rele'


'Notte a tutti

Inviato dal mio GT-N8000 utilizzando Tapatalk
Risposta
#4
Moduli relè in offerta
Prendilo da 8,per quel che costa, anche se te ne servono meno.. Se nel corso degli anni si impasta un relè, spiati due fili (con morsetto a vite!) e risolvi subito, senza ordinare un altro modulo relè (e attenderlo)
Risposta
#5
stavo mentalmente sviluppando la struttura del sistema ma mi scontro con una cosa che mi sa di assurdamnte banale

intoppo:

oggi ho ritirato raspberry, cavettini vari e scheda rele

- provo ad accendere un led: tutto ok
- provo ad attivare il rele: non sento lo scatto e con il tester non rilevo ne apertura ne chiusura...

ho letto e riletto e controllato gli schemi sul forum... non trovo il problema

Codice:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)    
GPIO.setwarnings(False)
GPIO.setup(17,GPIO.OUT)
print "LED on"
GPIO.output(17,GPIO.HIGH)
time.sleep(5)            
print "LED off"
GPIO.output(17,GPIO.LOW)
GPIO.cleanup()

ammetto di aver fatto un volgare copia-incolla... ma per verificare che funzionasse mi sembrava normale come procedura...

con pin di comando  n. 11 fisico (vedi foto)

ho dei seri dubbi sul fatto di aver trovato schemi che richiedono resistenze e altri no (non so nulla di elettronica avanzata, ma so leggere... e poi ci capisco ancora meno)

quando mi scontro con certe cose mi sento un idiota... aveva ragione il mio professore di elettrotecnica.. i meccanici capiscono come funziona un circuito... solo se prendono in mano fase e neutro insieme...

grazie... 



Allegati Anteprime
       
Risposta
#6
Intanto, usa Gpio Zero, per comandare il GPIO. È molto più comoda come libteria, e attiva le resistenze interne automaticamente quando servono. In modo da concentrarti sulla programmazione e non troppo sul circuito.
Vedi qui
Queste schede optoisolate lavorano solitamente con logica inversa (pin a livello basso = relè attivo).
C'è anche un ponticello per scegliere dove prendere alimentazione per i relè.
Risposta
#7
(03/10/2018, 10:21)Zzed Ha scritto: Intanto, usa Gpio Zero, per comandare il GPIO. È molto più comoda come libteria, e attiva le resistenze interne automaticamente quando servono. In modo da concentrarti sulla programmazione e non troppo sul circuito.
Vedi qui
Queste schede optoisolate lavorano solitamente con logica inversa (pin a livello basso = relè attivo).
C'è anche un ponticello per scegliere dove prendere alimentazione per i relè.

infatti, e' bastato invertire la logica e funziona... dovo ancora entrare bene nell'ottica.. 

ho appena terminato di collegare rele' e un pulsante con comando python basato  su 

GPIO.add_event_detect

funziona tutto!!!!!!! tranne che a random fa due cicli di attivazione del rele in sequenza, come se premessi due volte il pulsante... 

ma vado a dormire che forse e' meglio

notte a tutti
Risposta
#8
con Gpiozero:
qualcosa tipo:
Codice:
from gpiozero import Button, DigitalOutputDevice #importo le librerie
from signal import pause

rele = DigitalOutputDevice(4,active_high=False)    #pin che comanda il rele , attivo quando basso
pulsante = Button(25)                                                        # pin del pulsante

rele.source = pulsante.values                                       #lego il rele al pulsante
pause()
Risposta
#9
quando mi hai consigliato gpiozero avevo gia buttato giu un-idea senza, ma sto studiando le pagine che mi hai inviato... interessantissima la semplificazione per utilizzare rasberry remoti...

ho un paio di dubbi su gpiozero

con il "classico" loop "blocco raspberry" in attesa di un evento e, mi sembra di aver capito, anche viste le piccole basi di programmazione che avevo, che "caricherei di piu'" la cpu...

con GPIO.add_event_detect posso inserire n eventi in sequenza TUTTI IN ATTESA e con un While al fondo codice ottengo un sistema "leggero"

posso fare la stessa cosa con gpiozero?
in particolare mi sono arenato su una cosa: con gpiozero non ho ancora  trovato come settare la resistenza di pull interna.... 'cominciavo a sentire puzza di fritto'....

 

grazie
Risposta
#10
ecco la prima parte di programmino ripulita con gpiozero... un piccolo passo per l'umanita', un grande passo per il sottoscritto...

in base al contatto che si va a chiudere (magnetico del basculante o segnalazione da volumetrici) si attiva un cicalino (per il momento) con parametri differenti

Codice:
import gpiozero
from signal import pause
import time

magnetico = gpiozero.Button(4)
volum = gpiozero.Button(27)
cicalino = gpiozero.OutputDevice(17, active_high=False, initial_value=False)

def basculante():
   attivacicalino(tempo=.200,cicli=3)
   
def volumallarm():
   attivacicalino(tempo=.400,cicli=6)

def attivacicalino(tempo, cicli):
   for x in range(cicli):
       print "ok"
       cicalino.on()
       time.sleep(tempo)
       cicalino.off()
       time.sleep(tempo)


volum.when_pressed = volumallarm
magnetico.when_pressed = basculante

pause()


il prossimo passo sara' di fare un controllo ogni tot secondi se il magnetico sia ancora attivato e di ripetere la segnalazione relativa

notte a tutti
Risposta
  


Vai al forum:


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