DomoticHome – Accendere e spegnere un led con un terminale Android

19 aprile 201117 commenti
Da un po' di tempo sul nostro forum è presente un thread, raggiungibile cliccando su questo link, riguardante l'automazione domestica ed Android. L'interesse e la curiosità sono stati da subito molti, ed oggi, grazie a Mattia Lipreri e Mareika Giacobbi di NerdyDog.it possiamo fornirvi in questo articolo un primo tutorial riassuntivo in modo da coinvolgere sempre più persone possibili nel progetto. L'obiettivo è accendere e spegnere un led con il proprio terminale Android; ad alcuni potrà sembrare banale ed inutile ma, come afferma il nostro amico Mattia, capito questo sarà poi facile riuscire ad interagire con la maggior parte degli oggetti presenti in casa: luci, prese, porte, ecc..


Ma bando alle ciancie. Veniamo alla spiegazione di questo progetto e all’obiettivo sopracitato.

Il sistema è basato su un controllore chiamato Arduino programmabile in C/C++; esso offre una serie di I/O, è facilmente espandibile attraverso moduli chiamati shield. Iniziamo con la lista della spesa:

  1. Arduino: la domanda che mi è stata fatta più volte è: “Quale tipo di Arduino devo comprare?”. La risposta è: “Quello che volete”. È possibile costruirsi il proprio prototipo anche su un pezzo di cartone in quanto tutto quello che bisogna conoscere è rilasciato in modo open source. Ma andate sul sicuro e prendete un Arduino Uno.
  2. Ethernet shield: questo modulo aggiunge ad Arduino la possibilità di collegarsi ad internet offrendo pieno supporto allo stack ip.
  3. Router WiFi: quello che avete in casa va più che bene.
  4. Un led
  5. Cavetteria varia: se non ne avete prendete una cavo di rete e spelatelo, all’interno troverete 8 fili, usate quelli.

Questo è quello che vi serve. Alla domanda: “Mi consigli uno shop online?”, rispondo, invece, sempre dicendo “Comprate dove volete”; Arduino è uguale in tutti gli shop.

Ora veniamo a DomoticHome. Il progetto è in continua evoluzione, è disponibile sul Market l’applicazione ufficiale e non manca un applicazione web che vi permette di generare automaticamente il codice in C per Arduino in base a cosa volete collegargli, e di salvare al volo i dati provenienti dai sensori (temperatura, pinza amperometrica, ecc…) e visualizzare in real-time grafici statistici.

In questo modo una volta generato il codice per Arduino dovrete solo copiarlo nella sua IDE e caricarlo. Per chi è alle prime armi dia un occhio al seguente indirizzo: Arduino.cc.

Finita l’introduzione, vediamo di far accendere questo led. Registratevi sul sito DomoticHome e fate il login; appariranno delle nuove voci nel menù, tra cui:

• Masters: rappresenta un Arduino + Ethernet shield, ad esso vanno assegnate le configurazioni di rete per fare in modo che comunichi correttamente con il router e il vostro device Android

• Devices: rappresenta qualsiasi cosa sia connesso al master cioè relays, led, sensori, ecc…

Creiamo un Master

Prima di crearlo dovete conoscere alcuni parametri della vostra rete:

• l’ip del vostro router
• la subnet della vostra rete

Detto questo, cliccate su “Master” e successivamente su “Create a new master”. Vi troverete davanti ad una schermata simile:

Compilate i seguenti campi:

  • Name: nome descrittivo del master. Es: “my home”
  • IP: l’indirizzo ip di Arduino, usate un indirizzo che non è assegnato a nessun dispositivo sulla vostra rete e fuori dal range DHCP
  • MAC: MAC address di Arduino, usate pure questo “0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xBE”, il MAC address deve essere univo per ogni dispositivo sulla vostra rete
  • Subnet: la vostra subnet
  • Gateway: l’indirizzo ip del vostro router
  • Port: usate pure la porta 80

Aggiungiamo un device

Cliccate sul pulsante “Add device”: in questo modo andrete a dire al sistema che volete pilotare un led ed il codice C verrà generato per supportare tale funzione. Dovreste vedere una schermata simile:

Compilate i seguenti campi:

  • Name: questo è il nome che verrà mostrato sul vostro terminale Android
  • Pin out: il pin di Arduino al quale verrà collegato il led
  • Device Type: selezionate “light”, in questo modo l’applicazione mostrerà la corrispondente icona
  • Chibi Support: non usato
  • Chibi address node: non usato

Premete il pulsante “Create” e verrà mostrato un riassunto del master con i relativi devices creati. Come potete vedere c’è un link chiamato “click to show the code”: cliccate e vedrete il relativo codice per Arduino; copiatelo ed incollatelo nell’IDE, compilatelo e caricatelo su Arduino.

Collegamenti

Ora che il codice è stato caricato dovete collegare il vostro bel led al pin inserito nella configurazione del device. Ogni led ha 2 connettori (anodo il più lungo e il catodo il più corto), collegate il catodo a GND e l’anodo al pin di uscita indicato nella configurazione del device.

Fatto questo, prendete un cavo di rete e collegate Arduino al vostro router.

Sync

STEP 1:

Prima di iniziare a smanettare con il telefono e dire “perchè non va?”, verificate che Arduino sia in rete. Per farlo fate un semplice ping all’ip di Arduino. Se Arduino risponde andate al prossimo step altrimenti verificate la connessione di rete e i parametri inseriti.

STEP 2:

Aprite il vostro browser e digitate:

http://yourarduinoip/?out=all

una stringa JSON dovrebbe essere stampata sul vostro browser, qualcosa di simile a:
{“ip” : “192.168.10.23”, “devices” : [{ “type” : “light”, “name” : “led”, “out” : “5”}]}

Essa rappresenta la lista dei devices collegati ad Arduino, quando farete il sync dal vostro dispositivo Android verrà popolato il database dell’applicazione in base a questa stringa JSON.

STEP 3:

Tutto dovrebbe essere correttamente configurato. Scaricate dal Market l’applicazione DomoticHome:


DomoticHome with Arduino
NERDYDOG s.n.c.
Gratuito
10.000-50.000
Link Google Play Store

Andate nella pagina della configurazione e inserite l’indirizzo ip di Arduino. Premete poi il tasto menù e selezionate l’icona Sync: in tal modo il vostro terminale interrogherà Arduino e creerà la lista dei devices. Precisamente, questa a seguire sarà la lista dei device che apparirà.

Premete sull’icona a fianco e troverete questa schermata:

Le due icone “lucchetto aperto” e “lucchetto chiuso” vi permettono di accendere e spegnere il led!

Alla prossima. Ringraziamo ancora una volta Mattia Lipreri e Mareika Giacobbi per averci gentilmente fornito il tutorial. Per maggiori info visitate NerdyDog.it.

  • Giacomo Traballoni

    Se avessi il tempo mi ci ingegnerei veramente.
    Controllare casa dal cellulare è una delle cose che aspetto con più trepidazione da questi smartphone..

  • Nick

    Bello, però non lo vedo arduino collegato direttamente alle luci di casa… ci vuole un relè e il tutto va messo poi alle luci di casa…. mmmm piuttosto lo userei per spegnere la ciabatta della tv la sera….
    arduino collegato con relè al tasto della ciabatta,quando ho sonno:
    cell->wifi->arduino->ciabatta off-> zzzzzzzzzzz…..
    :D

  • ciao attacca e stacca quello che vuoi basta che non fai bruciare la casa :) come colleghi un led puoi collegare un relay che ti pilota un carico.

    • Mirpaolo81

      ciao programmo in android ma non ho mai provato ad interfacciarmi ad arduino…
      mi date qualche dritta su cosa mi servirebbe per magari accendere e spegnere un led con arduino+android?
      quale arduino devo comprare e come lo collego al pc?
      posso emulare il programma android sull’emulatore eclipse se non ho il cellulare cosa devo avere come hardware e software per fare questo  e per programmare arduino

      • Stefano

        Ciao a tutti ho realizzato uno sketch che permette, dopo essersi loggati mediante password, di comandare n uscite monitorate, per prova tre bistabili e una monostabile. Volendo e’ possibile visualizzare la temperatura, la luminosita’ dell’ambiente e con una scheda microfonica se il rumore presente supera la soglia impostata. Naturalmente funziona anche da remoto, vivo a Roma e sto scrivendo da Sharm El Seikh, a patto di evere un ip statico o un servizio ddns. Stefano

  • Pensavo tempo fa a una soluzione del genere da utilizzare come telecomando della saracinesca del garage :)

  • Tommytom82x

    Caiao sto seguendo anche io il progetto ma in nessun modo riesco a far comunicare arduino+ethshield con il mio router conceptronics wifi-lan uso un cavo no cross , ma ci sono delle particolari funzioni che devo settare nel router ? ho inserito l’indirizzo ip di arduino in mdz per indirizzare internet verso questo ho attivato e disattivato dhcp ma niente dove sbaglio secondo te ? grazie mille in anticipo

  • Jsdomus

    Buona notte già installato tutto correttamente, ma quando si scarica il software da Android Market e l’installazione appare un messaggio Attenzione! You Should DomoticHomesincronizzazione con il tuo Arduino. Chiunque può aiutare per favore.

  • Patrik Mercante

    Ciao a tutti.. Sono nuovo ad android ed arduino, volevo sapere se al posto della Ethernet Shield prendo una WiFi Shiend dovrei riucire a comandare arduino senza collegargli il cavo di rete, ma da principiante a cosa vado in contro? Come dovrei fare per configurare la scheda WiFi? Riesco a farlo sempre da DomoticHome?
    Grazie dell’aiuto!!

  • giuseppe

    ciao, qualcuno puo darmi una dritta? quando inserisco il codice nell’ ide sotto mi compare una scritta arancione: the server has been renamed ethernet server. cosa dovrei fare? 

    • Flavioprattico

       devi fare questi cambiamenti:
      Server server(80); -> EthernetServer server(80);
      void ListFiles(Client client, uint8_t flags) -> void ListFiles(EthernetClient client, uint8_t flags)
      Client client = server.available(); -> EthernetClient client = server.available();

  • alb.boratto

    Ciao, io ho seguito tutta la procedura ma ho un problema con la configurazione dell’ip di arduino perchè quando faccio il ping non ottengo alcuna risposta. Inoltre in fase di upload mi viene riscontrato il seguente errore:”avrdude: stk500_getsync(): not in sync: resp=0x00″. Secondo voi quale può essere il problema? Grazie mille

  • Pingback: Android contro iPhone: vince la fotocellula()

  • Pingback: DomoticHome – Accendere e spegnere un led con un terminale Android - Android Blog()

  • peppe

    Ciao sono Giuseppe ho un dubbio.

    Funziona sia in wi-fi che da remoto? Ho lo stato delle uscite sullo smatphone?

    es. sono al lavoro e voglio vedere se ho dimenticato la luce accesa.

    La posso spegnere ho devo essere nell’area wi-fi del mio modem?
    GRAZIE 1000

  • pierluigi iannotta

    Scusate ma questo progetto è ancora attivo?
    Non mi riesce di capire come registrarmi sul sito domotichome, si apre un altro sito.
    Grazie a tutti dell’aiuto.
    Pier