Comunicazione fra Arduino e Android

Penso di aver fatto tutte le prove con i componenti fisici per poter realizzare il mio progetto, adesso è il momento dell’ultimo elemento e cioè il computer che gestirà tutte le periferiche e quindi controllerà il clima in casa.

Il mio primo pensiero è stato per il personal computer, scrivere un programma in Delphi (ex turbo pascal)  usando l’ambiente di sviluppo Lazarus; ma tenere un computer acceso 24 ore non è la soluzione migliore, meglio un tablet o uno smartphone e così ho deciso di scrivere un’APP Android che può essere eseguita su smartphone o tablet.

Ho iniziato negli anni 80 a programmare in basic con uno ZX81, successivamente con il commodore 64 e poi ho iniziato a lavorare in un centro elaborazione dati in Cobol, mentre per i miei passatempi utilizzavo il TurboPascal e il Clipper. Ho scritto programmi in PHP combinato al MYSql, utilizzato db2 e db3 e ambienti di sviluppo strani tipo il VSE/esa della ibm; ho anche scritto routine in assembler e studiato come funziona nel dettaglio il processore Z80 ma un ambiente di sviluppo così strano, enorme e (forse) dispersivo come Android Studio non mi era mai capitato.

Android studio?

Di solito comincio a scrivere un programma e aggiusto mano mano, complicandomi la vita in funzione degli obiettivi ma con Android ogni singolo passo richiede lo studio del manuale per valutarne le conseguenze. Comunque ho deciso di scrivere un APP e scriverò un APP.

Il programma/APP che girerà su smartphone si collegherà tramite wifi ad un Arduino in posizione centrale, probabilmente quello che controlla i termosifoni, e riceverà tutte le informazioni dai vari dispositivi e darà i relativi ordini, essendo un’applicazione permetterà l’intervento dell’utente per la modifica dei parametri di funzionamento ma anche per la gestione manuale; iniziamo.

Scarichiamo Android Studio

Puoi scaricare Android Studio da qui, e installarlo. Una volta avviato per creare la tua prima App clicca su Create Android Project (dal menu File) e inserisci nel primo campo il nome che vuoi dare all’app, io ho inserito ProvaTcp, nel secondo campo il tuo dominio(è un modo per associare a te tutte le tue APP, tipo il nome di un sito) io ho inserito la parte iniziale del mio nome/cognome un punto (almeno uno è’ obbligatorio) e la parola programmazione; il terzo campo indica dove verrà salvato il progetto e tutte le sue risorse, puoi lasciarlo invariato.

Clicca su next, la videata successiva permette di impostare il livello di api(funzionalità) da utilizzare, più è basso e minori sono le funzionalità ma maggiore la compatibilità fra i vari dispositivi; lascia tutto com’è. Clicca su Next e ti appare una videata che ti permette di scegliere il tipo di attività che l’app deve svolgere, seleziona Empty Activity per creare un APP vuota e clicca su Next, anche qui lascia invariato il nome dell’attività e del layout e clicca su next, lascia che Android Studio aggiorni i componenti necessari e poi clicca su Finish: APP vuota creata.


Scriviamo le istruzioni

Descrivere e commentare tutti i passaggi per l’inserimento di elementi nell’APP è fuori dalla mia portata, troppo complicato e lo lascio alla tua volontà di imparare, mi limiterò a descrivere quali controlli ho inserito e quale codice per quale scopo.

Come prima cosa per poter effettuare il collegamento ho bisogno di conosce l’indirizzo ip dello smartphone, quindi ho semplicemente inserito un’immagine di una palla verde e un campo, avviando l’APP quando si fa un tap sulla palla esce l’indirizzo IP.

L’immagine si chiama immagine1 e il campo di testo si chiama testo1 (il nome si mette nel campo ID), questo e’ il sorgente:


Importante

Ricordati di inserire nel file manifest i permessi per accedere alla rete.

Collaudo

Per collaudare l’App ho bisogno di un server e sto facendo la prova con un NodeMcu programmato come Arduino, una prova banalissima ma che mi sta creando un po’ di problemi per il continuo riavvio del modulo. Dopo diverse prove e ricerche ho scoperto il problema: la corrente fornita dalla porta usb del computer non è sufficiente e quando il NodeMcu attiva il WIFI si resetta.

La presenza di altre periferiche che non posso eliminare dalle porte USB ha ridotto la corrente che viene erogata. Ho ordinato un cavo USB con due terminazioni in modo che posso utilizzare un’alimentatore esterno per avere tutta la corrente che mi serve. Appena arriva il cavo proseguo con l’articolo.

3 commenti su “Comunicazione fra Arduino e Android”

  1. Salve, volevo capire se era possibile utilizzare un bot di telegram creato da me all’interno di una applicazione android (anche questa creata da me) per poter comunicare con un’esp32 a distanza tramite la rete internet.
    Spero sia chiara la domanda. Grazie

    Rispondi
    • Ciao, la domanda è chiara ma la soluzione è molto complessa. Premetto che non conosco i bot di telegram, però se hai scritto il bot in python puoi utilizzare l’interprete su android come spiegato in questo articolo Python su Android. Con questo interprete puoi eseguire su android le istruzioni python. Suppongo che anche su esp32 hai utilizzato il python quindi non dovrebbe essere un problema farli comunicare. Ho intenzione di fare un pò di prove proprio in questa direzione ma non avrò tempo prima di un mesetto.
      Se hai urgenza puoi guardare questo articolo che ti spiega come usare il python per le comunicazioni tcp/ip, avendo lo stesso linguaggio su android(tramite l’app interprete) e su esp32 non dovresti avere grosse difficoltà.

      Rispondi

Lascia un commento