• 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
a comandi gpio raspberry tramite mandare bash

[Risolto] Mandare comandi bash a raspberry tramite GPIO
#1
Ciao ragazzi... è da un po' che sto rendendo smart la mia casa con vari Pi 0W... Volevo sapere se ci fosse un modo per mandare comandi specifici collegando a terra o tra loro alcuni PIN GPIO... Per esempio vorrei eseguire un file bash (.sh) che manda un input di accensione manuale in caso di mancata connessione...
Spero ci sia un modo...
Grazie mille in anticipo  Angel
Risposta
#2
mandare comandi di qualsiasi tipo e natura sulla massa e/o terra (sono queste "entità" completamente differenti tra loro, da non confondere) non è possibile, a meno che proprio la terra (il filo giallo/verde negli impianti domestici e non) rappresenti il secondo filo, cosa possibile, ma con segnali di elevata potenza, potenza che i GPIO del RPi non dispongono (e neanche la necessaria separazione galvanica ed interfacciamento). Sui pin del GPIO puoi mandare qualsiasi tipo di segnale, purchè non superi i 3,3V, riferito ovviamente alla massa (il negativo dell'alimentatore) e gestito da un qualsiasi linguaggio.L'esecuzione dell'applicazione determinerà cosa fare del segnale di input, è una tua scelta. In caso di tensioni in ingresso più elevate dei 3,3V sarà opportuno utilizzare dei traslatori di livello come partitori resistivi o meglio ancara fotoaccoppiatori. L'addove un qualcosa che rappresenti un input è distante dal RPi, l'impiego di un fotoaccoppiatore è risolutivo.
Risposta
#3
Grazie mille della risposta ippogrifo... Mi sono spiegato un po male... non capendoci molto avrò sicuramente mischiato le cose... A prescindere della messa a terra, c'è un modo che permette di interaggire mandando comandi al pi tramite le gpio che sia tramite collegamento tra loro o anche di un qualcosa esterno... il mio obbiettivo è quello di interagire col pi dall'esterno senza interfacce che siano desktop o riga di comando e nel mio caso particolare possibilmente senza internet.
Risposta
#4
Assolutamente si. Ovviamente la gestione degli input ed output è compito dell'applicazione, scritta in qualsiasi linguaggio. Se desideri controllare il RPi tramite GPIO senza alcun protocollo di comunicazione, dovrai giocoforza utilizzare la presenza od assenza di una tensione (3,3V) su un qualsiasi pin del GPIO. Se per esterno intendi controllo tramite linea telefonica, ADSL, ecc. questo non sarà possibile (a mia conoscenza). Qualcosa è comunque realizzabile su linea telefonica utilizzando un decoder di toni che abbia una uscita decimale o esa con cui interfacciarsi pin-to-pin con il RPi. Se per esterno intendi giardino o comunque aree al servizio dell'abitazione, utilizzando dei fotoaccoppiatori da collegare ai pin del GPIO, risolvi. Nel caso di collegamento diretto tra pin del GPIO configurati come input-output, una resistenza posta in serie da 2,2K, per ciascun pin, può scongiurare qualche problema connesso ad errori HW e/o SW.
Risposta
#5
sul GPIO c'è una porta seriale, puoi usare quella.
Oppure, se ho capito bene, vuoi semplicemente che al segnale su un determinato pin, corrisponda un comando. Quello è semplicissimo e assai diffuso, come quando alla pressione di un pulsante collegato al GPIO fai eseguire una azione (dai un comando bash, esegui uno script python, spegniti ecc)
Risposta
#6
Grazie mille per la risposta Zzed... Quindi posso seguire la stessa guida del pulsante cambiando i comandi, eventualmente? Oppure è meglio capire il meccanismo per scriverci un programmino sopra?
Risposta
#7
Entrambe le cose. Il GPIO può essere gestito con qualsiasi linguaggio. anche con Scratch, in forma visuale.
Python ti dà molta più flessibilità, e a mio modo di vedere è molto più accessibile di altri (come il C).
Per esempio puoi , con lo stesso pin, dire: se c'è un contatto su questo pin, lancia la funzione A, se il contatto dura tra 2 e 5 secondi, lancia la funzione B, se dura più di 5 secondi, lancia la finzione C
oppure se c'è il contatto sul PIN A, lancia la funzione A; se c'è sul pin B, lancia la funzione B, se c'è su entrambi, lancia la funzione C. ecc.
con python e gpiozero, non è così difficile. puoi usare la funzione Button (che è per i pulsanti), anche se esiste apposita funzione DigitalInputDevice oltre a tutte quelle per i sensori..
Risposta
#8
Grazie mille per le risposte
Risposta
  


Vai al forum:


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