Nell’articolo di Lunedì hai provato l’uso della ibreria Bridge dal browser ma potresti usare l’Arduino Yun Bridge curl da linea di comando ( CLI ssh ) ed oggi scoprirai come fare.
Cos’è CURL ?
La definizione presa da Wikipedia:
Curl è un linguaggio di programmazione orientato agli oggetti per applicazioni web interattive. L’obiettivo principale del linguaggio è quello di integrare la formattazione e la programmazione web. Curl rende possibile includere oggetti complessi all’interno di semplici documenti senza dover utilizzare diversi linguaggi di programmazione o piattaforme di sviluppo.
sull’Arduino Yun Bridge curl è già installato e disponibile da linea di comando.
La sintassi da linea di comando è molto semplice:
#> curl url
da cui avrai già capito come la utilizzarla con la Yun:
#> curl localhost/arduino/digital/13/1
Come posso usare Arduino Yun Bridge curl
Per usare la libreria Bridge con il CURL il primo passo è disabilitare la richiesta password per REST, puoi leggere come fare in questo articolo.
Seleziona tra le reti wifi disponibili la rete creata dall’arduino yun:
usando un client ssh ( per windows puoi usare putty, per Mac il Terminale che trovi nelle Utility ) collegati all’indirizzo arduino.local:
inserisci la password che hai impostato per l’accesso alla tua arduino yun e ti si presenterà la schermata di login:
ed il prompt della shell, in cui puoi scrivere il primo comando:
#> curl localhost/arduino/digital/13/1
l’effetto che ottieni è:
la risposta del server è identica a quella che hai ricevuto nel browser visto nel precedente articolo ed anche l’effetto sarà il medesimo:
i prossimi comandi hanno come effetto il medesimo del browser, ossia spegni il led collegato al pin 13:
accendi in modalità analogica il led collegato al pin 11 fino alla sua massima luminosità ( 255 ):
diminuisci la luminosità del led a 128 ( circa la metà della precedente ):
e quindi spegni il led collegato al pin 11:
Fino a questo punto è tutto simile a quello che già avevi ottenuto con il browser, per cui cosa ti da in più l’uso del arduino yun bridge curl?
La potenza di una hell linux per creare i tuoi script da eseguire sul sistema.
Esempio della arduino yun bridge curl con Linux
Se immagini una centralina domotica realizzata con l’arduino yun bridge curl potresti ottenere che a un determinato orario le luci del giardino si accendano o che quando uno dei sensori collegati rileva la presenza di qualcuno accensa le luci in casa o ti avvisi via email o twitter …
La fantasia ti aiuta a immaginare scenari automatici a casa e non solo, il vantaggio è che la Yun ti mette a disposizione Linux per fare tutto questo.
Un esempio che mi piacerebbe realizzare è ad esempio la possibilità di ricevere una immagine da una webcam collegata alla Yun se non sono in casa e un sensore Pir rileva la presenza di qualcuno alla porta, questo è abbastanza semplice se usi la webcam come descritto dall’amico Luca e usi uno script linux che periodicamente controlla il sensore PIR collegato alla Arduino Yun Bridge curl.
Un esempio di script linux con curl
Ho realizzato un semplice script linux, direttamente sulla linea di comando che accende gradualmente il led collegato ail pin analogico 11, per farlo ho utilizzato un ciclo for:
alla pressione dell’invio ( enter ) ottieni questo:
ed il led pian piano si accende passando da 0 a 250 di intensità.
Buona domotica !!!
4 commenti
Vai al modulo dei commenti
Riguardo al ritardo tra ricezione comando e ed esecuzione dall’ ATmega 21u4, usando curl direttamente dalla riga di comando di Linino le cose migliorano?
Autore
Ciao Utente,
Un po’ si ma non in modo significativo, direi nell’ordine dei millisecondi in meno rispetto ai secondi di risposta, quindi quasi impercettibilmente 🙂
Mauro
Bell’articolo! Complimenti!
Però ti vorrei chiedere: se devo invece comunicare con Arduino ad un altra piattaforma tramite curl, come si può fare?
O meglio, sto cercando di inviare dei dati da Arduino/nodemcu a Tasker senza passare per il server Brasiliano ma direttamente tramite il wifi di casa. Grazie se puoi darmi una mano.
Saluti
Autore
Ciao Roberto,
non ho compreso cosa mi chiedi, forse perché non conosco Tasker, ma se vuoi usare CURL puoi farlo con la Yun usando la parte Linux come interfaccia.