• 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
un di comanda sh esecuzione file che pulsante

pulsante che comanda esecuzione di un file.sh
#1
Salve a tutti scusatemi se il post non è nella sezione giusta

Allora avrei bisogno di una mano nel risolvere la mia problematica

premetto che ho appena iniziato a mettere mano sul raspberry pi 3

ho creato una serie di file.sh 
ognuno di questi file contiene l'istruzione per mandarmi un messaggio su telegram
ad esempio il file campanello.sh se lo avvio con ./campanello.sh mi invia su telegram dello smartphone il messaggio "Campanello"

ora quello che desidero fare è che quando  premo un pulsante (fisico) mi arrivi la notifica

quindi avrei bisogno dell'istruzione che fa capire al raspberry che se premo il pulsante(fisico) deve mandarmi la notifica

lo stesso procedimento lo dovrei fare per tutti gli altri file.sh che ho creato , devo insomma mettere 10 pulsanti fisici connessi alla gpio ed a ognuno collegare il relativo file.sh

Help non riesco a farlo

Grazie
Risposta
#2
(20/07/2017, 13:32)tony Ha scritto: Salve a tutti scusatemi se il post non è nella sezione giusta

Allora avrei bisogno di una mano nel risolvere la mia problematica

premetto che ho appena iniziato a mettere mano sul raspberry pi 3

ho creato una serie di file.sh 
ognuno di questi file contiene l'istruzione per mandarmi un messaggio su telegram
ad esempio il file campanello.sh se lo avvio con ./campanello.sh mi invia su telegram dello smartphone il messaggio "Campanello"

ora quello che desidero fare è che quando  premo un pulsante mi arrivi la notifica

quindi avrei bisogno dell'istruzione che fa capire al raspberry che se premo il pulsante deve mandarmi la notifica

lo stesso procedimento lo dovrei fare per tutti gli altri file.sh che ho creato , devo insomma mettere 10 pulsanti ed a ognuno collegare il relativo file.sh

Help non riesco a farlo

Grazie

Ciao, ho fatto qualcosa di simile con cayenne, ti invia una email ad ogni azione

Inviato dal mio SM-N9005 utilizzando Tapatalk
Risposta
#3
C'è RpiNotify... Non ho capito però se intendi un pulsante fisico connesso al GPIO o un pulsante in una interfaccia..
Risposta
#4
si devo mettere un pulsante fisico che mi attiva un file.sh

il file.sh all'interno contiene l'istruzione per inviarmi la notifica

se premo il pulsante del citofono voglio che raspberry mi invii la notifica

Ho provato come da questa guida https://rpinotify.it/uses/buttonpressed.php ma non mi funziona
Risposta
#5
prova qualcosa tipo
Codice:
import subprocess
from gpiozero import Button

button = Button(2) #numero del pin a cui è connesso il tasto
button.when_pressed = subprocess.call("./nomescriptdinotifica.sh")
Risposta
#6
(21/07/2017, 00:34)Zzed Ha scritto: prova qualcosa tipo
Codice:
import subprocess
from gpiozero import Button

button = Button(2) #numero del pin a cui è connesso il tasto
button.when_pressed = subprocess.call("./nomescriptdinotifica.sh")

Grazie per l'aiuto , ma perdonami non so dove inserire cio che hai scritto

devo usare python?

sono alle prime armi e sto cercando di capire piano piano ... sorry

gentilemente puoi spiegarmi passo passo cosa devo fare

grazieee
Risposta
#7
si è python, ma va installato prima gpiozero per la gestione delle porte GPIO
Codice:
sudo apt-get install python3-gpiozero
nano programmaTuo.py
e ci copi dentro il programma di Zzed
poi va impostato con avvio automatico tramite crontab
Codice:
sudo crontab -e
e scrivi
Codice:
@reboot /usr/local/bin/python3 /home/pi/programmaTuo.py
poi riavvia
Heart Libro  | Blog EnricoSartori.it | Idea YouTube
Se un utente ti è stato utile, aumenta la sua reputazione! premi il Pollicione! 
Risposta
#8
Se sei alle prime armi, torno al consiglio iniziale: usa RpiNotify!
Altrimenti, se vuoi usare gli script .sh che hai già creato, visto che li hai già resi eseguibili, devi inserire il controllo del tasto. Per comodità, te lo ho proposto in Python.
Fai un file di testo, che chiamerai come vuoi .py (esempio pippo.py). Poi lancialo con python pippo.py
Te lo spiego velocemente: le prime due righe importano le librerie che ti servono: suprocess per lanciare comandi batch/shell o script sh, e gpiozero per controllare il GPIO in modo semplicissimo.
button = Button(2) istruisce il programma che il tasto è collegato al pin 2 (o quello che vuoi) del GPIO (l'altro pin del pulsante, al pin di massa sul GPIO).
[Immagine: button.png]
Poi dice "quando il bottone viene premuto manda il comando che esegue lo script sh (nel tuo caso dovrai mettere ". /campanello.sh"

PS: GPIOZERO è preinstallata sulle versioni recenti di Raspbian
Risposta
#9
grazie per gli aiuti veramente gentili nel guidarmi

Sto effettuando le prove ma con scarsi risultati

Ho provato rpinotify ma non mi funziona ,non capisco il motivo , forse devo installare qualche libreria?
ho notato che pure il comando "print" sotto python non mi funziona come se fosse mancante

bho , piano piano ,vediamo cosa imparo

di nuovo grazie per gli aiuti
Risposta
#10
attenzione che python esiste in 2 "rami": python 2.x e python 3.x
il motivo per cui il 2.x non è soppiantato dalla 3, è che il 3 non è un semplice aggiornamento, ma si è ripensato concettualmente qualche aspetto, il che ha introdotto delle differenze (in realtà non poi molte).
la maggioranza delle guide, libri e tutorial sono fatti su python 2.x , e per il 3 non è mai stata portata la totalità delle librerie, motivo per cui il 2 è ancora vivo e vegeto. print è l'esempio classico delle differenze:
print "pippo" su Python2.x
print ("pippo") su Python3.x

Comunque, il mio esempio dovrebbe funzionare con entrambe le versioni.
Certamente python non si impara in un'ora, a mio parere occorre leggere qualche libro.

Se invece vuoi usare RpiNotify, il lavoro complicato lo fa sul suo server, tu devi solo aggiungere una chiamata (tipicamente una sola riga di codice, che puoi inserire anche in script pre-esistenti), che puoi effettuare in qualsiasi linguaggio, tra i più diffusi.
Visto che hai già fatto degli script .sh, presuppongo che tu te la cavi meglio in bash, rispetto a python.
Per me è il contrario, per cui ti ho fatto l'esempio con Python (anche perchè le librerie gpiozero semplificano moltissimo interfacciare il RaspberryPi con il mondo fisico reale). Ma basterebbe inserire il controllo del tasto premuto nel tuo script in bash ( .sh).

in bash il tuo script potrebbe essere qualcosa tipo:
Codice:
#!/bin/bash

setup ()
{
  echo Setup
  gpio mode 2 in ;
}
setup
while :
do
        result=`gpio read 2`
        if [ $result -eq 0 ]; then
                ******qui il tuo script, o perlomeno l'azione da compiere***
        fi
        sleep 0.1
done
Risposta
  


Vai al forum:


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