«

»

Apr 22

Stampa Articolo

Irrigazione arduino – prima parte

Inizio oggi un nuovo progetto di irrigazione arduino in attesa della primavera e del momento in cui dovrai irrigare e monitorare lo stato del tuo giardino.

irrigazione arduino

Hai letto bene monitorare lo sttao del terreno e le attività eseguite dall’impianto.

E’ proprio da questo aspetto che inizia il progetto irrigazione arduino che puoi realizzare seguendo questa serie di articoli.

Il progetto irrigazione arduino raccogliere i dati

Questa prima parte ti mostro come inviare i dati raccolti dai sensori e le informazioni dell’impianto ad un DataBase Web in cui registrarli per poterli visualizzare in seguito sottoforma di tabella o grafico secondo le tue esigenze.

Il materiale necessario

I componenti iniziali per la prima parte del progetto sono:

  • n.1 arduino (Uno,Due,Leonardo,Mega)
  • n.1 ethernet shield
  • n.1 cavo di rete ethernet
  • n.1 connessione a internet con DHCP
  • n.1 server LAMP (  Linux Apache MySql Php )

Nella foto ho inserito volontariamente due sensori che utilizzerai per le prossime evoluzioni del progetto, si tratta di un sensore per misurare temperatura ed umidità:

irrigazione arduino sensore umidita

e di un sensore che misura l’umidità del terreno:

irrigazione arduino sensore terreno

ci sono molti altri sensori che potrai aggiungere al tuo progetto e per questo ho deciso di collezionare 16 valori nel mio progetto, inizialmente ne userai meno di quelli previsti per registrare temperatura, umidità dell’aria e del terreno, ma in seguito potrai aggiungere sensori di luminosità, vento, pioggia o di controllo di funzionamento dell’impianto, e i 16 input ti saranno molto utili.

La tabella di raccolta dati MySql

Parti dalla creazione della tabella che registrerà i dati, per farlo utilizza questa istruzione SQL:

DROP TABLE IF EXISTS `monitoraggio_irrigazione`;
CREATE TABLE IF NOT EXISTS `monitoraggio_irrigazione` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `data_time` datetime NOT NULL,
  `ip_remote` varchar(16) NOT NULL,
  `codice_impianto` varchar(32) NOT NULL,
  `sensoreA` float DEFAULT NULL,
  `sensoreB` float DEFAULT NULL,
  `sensoreC` float DEFAULT NULL,
  `sensoreD` float DEFAULT NULL,
  `sensoreE` float DEFAULT NULL,
  `sensoreF` float DEFAULT NULL,
  `sensoreG` float DEFAULT NULL,
  `sensoreH` float DEFAULT NULL,
  `sensoreI` float DEFAULT NULL,
  `sensoreL` float DEFAULT NULL,
  `sensoreM` float DEFAULT NULL,
  `sensoreN` float DEFAULT NULL,
  `sensoreO` float DEFAULT NULL,
  `sensoreP` float DEFAULT NULL,
  `sensoreQ` float DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `codice_impianto` (`codice_impianto`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Monitoraggio Irrigazione' AUTO_INCREMENT=1;

il risultato visto con PhpMyAdmin dovrebbe essere simile al seguente:

irrigazione arduino tabella

Ho aggiunto nella tabella alcuni valori che non passerai da arduino, per non sovraccaricare il progetto ma che lasceremo aggiungere al server, tali valori sono:

  • data_time
  • ip_remote

Il primo valore colleziona la data e l’ora del record inserito in tabella, il secondo valore ti riporta l’IP del client che ha inserito il dato, l’arduino.

Le colonne da A a Q memorizzeranno i valori dei 16 sensori.

Lo script Php del progetto irrigazione arduino

Sul server LAMP su cui è presente il DataBase MySql che utilizzi per raccogliere i dati dovrai aggiungere anche una pagina Php con il seguente codice:

<?php
/*****************************************************/

/** Nome utente del database MySQL */
define('DB_USER', 'USERNAME');
/** Password del database MySQL */
define('DB_PASSWORD', 'PASSWORD');
/** Hostname MySQL  */
define('DB_HOST', 'localhost');
/** DataBase MySQL  */
define('DB_NAME', 'DATABASE');
/** Table MySQL  */
define('DB_TABLE', 'monitoraggio_irrigazione');

/*****************************************************/

$_path_info = array();

/*****************************************************/

if ( !empty($_SERVER['PATH_INFO'])) {
        $_path_info = explode( '/',$_SERVER['PATH_INFO'] );
} else {
        die( "ERROR001" );
}

/*****************************************************/

$codice         = $_path_info[1];
$sensoreA       = $_path_info[2];
$sensoreB       = $_path_info[3];
$sensoreC       = $_path_info[4];
$sensoreD       = $_path_info[5];
$sensoreE       = $_path_info[6];
$sensoreF       = $_path_info[7];
$sensoreG       = $_path_info[8];
$sensoreH       = $_path_info[9];
$sensoreI       = $_path_info[10];
$sensoreL       = $_path_info[11];
$sensoreM       = $_path_info[12];
$sensoreN       = $_path_info[13];
$sensoreO       = $_path_info[14];
$sensoreP       = $_path_info[15];
$sensoreQ       = $_path_info[16];

/*****************************************************/

@mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die( "ERROR002" );
@mysql_select_db(DB_NAME) or die( "ERROR003" );

/*****************************************************/

$sql="INSERT INTO " . DB_TABLE . "(
                                                                        data_time,
                                                                        ip_remote,
                                                                        codice_impianto,
                                                                        sensoreA,
                                                                        sensoreB,
                                                                        sensoreC,
                                                                        sensoreD,
                                                                        sensoreE,
                                                                        sensoreF,
                                                                        sensoreG,
                                                                        sensoreH,
                                                                        sensoreI,
                                                                        sensoreL,
                                                                        sensoreM,
                                                                        sensoreN,
                                                                        sensoreO,
                                                                        sensoreP,
                                                                        sensoreQ
                                                                  ) VALUES (
                                                                        NOW(),
                                                                        '" . $_SERVER['REMOTE_ADDR'] . "',
                                                                        '" . $codice . "',
                                                                        '" . $sensoreA . "',
                                                                        '" . $sensoreB . "',
                                                                        '" . $sensoreC . "',
                                                                        '" . $sensoreD . "',
                                                                        '" . $sensoreE . "',
                                                                        '" . $sensoreF . "',
                                                                        '" . $sensoreG . "',
                                                                        '" . $sensoreH . "',
                                                                        '" . $sensoreI . "',
                                                                        '" . $sensoreL . "',
                                                                        '" . $sensoreM . "',
                                                                        '" . $sensoreN . "',
                                                                        '" . $sensoreO . "',
                                                                        '" . $sensoreP . "',
                                                                        '" . $sensoreQ . "'
                                                                  )";

@mysql_query($sql) or die( "ERROR004" );

/*****************************************************/

@mysql_close();
die( "SUCCESS" );
?>

la cui funzione è di salvare i valori passati dal progetto irrigazione arduino nella Url del browser.

In pratica dopo aver salvato la pagine con il nome saveData.php nel path del server che ritieni opportuno richiamala dal browser con l’Url:

http://www.mauroalfieri.it/progetto_irrigazione/saveData.php/123456/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0

dovrai sostituire il nome a dominio “mauroalfieri.it” con il nome del tuo server ed il percorso “progetto_irrigazione” con il percorso della tua pagina sul server.

irrigazione arduino url test

Dopo aver richiamato la pagina di test dal browser dovresti ottenere in tabella il seguente record:

irrigazione arduino primo valore in tabella

ora sai che la tua pagina funziona e che i valori passati nell’Url vengono correttamente salvati nella tabella sul server.

Lo sketch di irrigazione con Arduino

In questo primo sketch ti concentrerai solo sulla connessione di Arduino al sito web e l’invio dei valori, tralascerai i valori passati che saranno fissati nello sketch e non misurati da veri sensori.

Ho scritto molti altri tutorial su come leggere valori da sensori di differente natura e potrai integrare gli sketch di lettura con questo di comunicazione ethernet.

 /*
  * Progetto Irrigazione Arduino - prima parte
  *
  * Autore: Alfieri Mauro
  * Twitter: @mauroalfieri
  *
  * Tutorial su: http://www.mauroalfieri.it
  *
  */

#include <SPI.h>
#include <Ethernet.h>

#define TIME_MISURA 60000

byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char server[] = "www.mauroalfieri.it";
char buffer[150];

char codiceImpianto[32] = "1234567890123456789012345678901";
int sensoreA = 0;
int sensoreB = 0;
int sensoreC = 0;
int sensoreD = 0;
int sensoreE = 0;
int sensoreF = 0;
int sensoreG = 0;
int sensoreH = 0;
int sensoreI = 0;
int sensoreL = 0;
int sensoreM = 0;
int sensoreN = 0;
int sensoreO = 0;
int sensoreP = 0;
int sensoreQ = 0;

EthernetClient client;

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    for(;;)
      ;
  }
  delay(1000);
}

void loop() {
  sensoreA = 1;
  sensoreB = 1;
  sensoreC = 1;
  sensoreD = 1;
  sensoreE = 1;
  sensoreF = 1;
  sensoreG = 1;
  sensoreH = 1;
  sensoreI = 1;
  sensoreL = 1;
  sensoreM = 1;
  sensoreN = 1;
  sensoreO = 1;
  sensoreP = 1;
  sensoreQ = 1;

  send2server();
  delay( TIME_MISURA );
}

void send2server() {
  Serial.println("connecting...");

  if (client.connect(server, 80)) {
    Serial.println("connected");
    sprintf(buffer, "%s%s%s/%s/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d %s", "GET http://", server, "/progetto_irrigazione/saveData.php", codiceImpianto, sensoreA, sensoreB, sensoreC, sensoreD, sensoreE, sensoreF, sensoreG, sensoreH, sensoreI, sensoreL, sensoreM, sensoreN, sensoreO, sensoreP, sensoreQ, "HTTP/1.1" );
    Serial.println( buffer );

    client.println(buffer);
    client.println();
  }

  while (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
  }
}

Ci sono alcune parti dello sketch che riguardano la configurazione:

byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char server[] = "www.mauroalfieri.it";

La linea 16 contiene il Mac Address che devi sostituire con il Mac della tua scheda, lo trovi scritto sull’adesivo attaccatto sotto la Ethernet Shield;

linea 17: è il nome del server su cui hai inserito la pagina php che accetta i dati da salvare sul sever;

Ci sono anche altre 2 righe da personalizzare:

char codiceImpianto[32] = "1234567890123456789012345678901";

linea 20: è un parametro che ti permette di utilizzare il progetto di irrigazione arduino con più centraline dislocate in giardino ad ognuna potrai assegnare un codice composto da 33 digit che lo contraddistingue.

L’altra linea dello sketch da personalizzare è la linea 80:

sprintf(buffer, "%s%s%s/%s/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d %s", "GET http://", server, "/progetto_irrigazione/saveData.php", codiceImpianto, sensoreA, sensoreB, sensoreC, sensoreD, sensoreE, sensoreF, sensoreG, sensoreH, sensoreI, sensoreL, sensoreM, sensoreN, sensoreO, sensoreP, sensoreQ, "HTTP/1.1" );

in cui dovrai sostituire il path ( percorso ) presente: /progetto_irrigazione/saveData.php con il percorso su cui è presente la pagina php sul tuo server.

Delle altre linee voglio sottolineare la funzione delle seguenti:

linea 14: impostazione del TIME_MISURA ossia il tempo che deve trascorrere tra una misurazione e la successiva, si traduce nello sketch nel tempo di attesa tra un loop() ed il successivo.

linea 37: inizializzazione del client ethernet necessario a creare la connessione ed inviare i dati di irrigazione arduino alla pagina web;

linee 55-69: è la parte dello sketch in cui tutti i 16 valori dei sensori sono impostati a 1, serve solo per testare la parte di invio del dato al server, non legge nessun valore reale dai sensori;

linea 71: richiami la funzione send2server() che ha il compito di connettersi, gestire la connessione ed il risultato e trasmettere i valori dei 16 sensori alla pagina Php e quindi al server;

linea 72: imposta il tempo di attesa tra un eseguzione del loop() ed il successivo;

linea 78: l’oggetto client esegue la connessione al server mediante il metodo connect( server, porta );

linea 80: componi la linea che invierà i dati del progetto irrigazione arduino al server;

linea 83: invia la stringa composta alla linea 80 al server grazie al metodo client.prinln( buffer );

linea 87: gestisci il ritorno proveniente dalla connessione al server, il ciclo while ti garantisce di leggere tutti i valori presenti nella risposta proveniente dal server;

linea 92: gestisci la disconnessione del client dopo aver salvato i parametri dei sensori sul server e ricevuto i dati di risposta;

linea 95: chiusi la connessione tra il progetto irrigazione arduino ed il server.

Avrai già capito che indipendentemente da questo progetto irrigazione arduino potrai utilizzare questo progetto in tutti quei casi in cui vorrai trasmettere ad un web server LAMP i valori di 16 sensori o 16 azioni che rilevi con arduino.

Se il tuo sketch è correttamente configurato dovresti aver ottenuto sul database questo risultato:

irrigazione arduino record in tabella

Buona irrigazione arduino !!!

Permalink link a questo articolo: http://www.mauroalfieri.it/elettronica/irrigazione-arduino-prima-parte.html

105 comments

2 pings

Vai al modulo dei commenti

  1. Sean

    Mauro,
    Ho letto il tuo articolo di oggi, e mi sembra un pezzo essenziale del puzzle che avevo in mente io:).
    Una curiosità, posso sostituire la componente Ethernet, con il modulo gsm?

    Sean

    1. Mauro Alfieri

      Ciao Sean,
      si, puoi sostituire la Ethernet con una GSM/GPRS shield, dovrai modificare lo sketch e le librerie incluse.
      Ho scritto un articolo sull’uso di questa shield:
      http://www.mauroalfieri.it/elettronica/gprs-shield-arduino.html
      Prova a consultarlo 🙂

      Mauro

  2. Gabriele

    Salve,
    Sto provando da ore a mandare i valori nel database di altervista, ma niente da fare. Se i dati li mando direttamente io dall’URL, tutto bene (es http://www.sito.it/data.php/23/14). Se ci provo dall’arduino, niente. il buffer che mi spunta nel seriale è giusto:
    GET http://www.sito.altervista.org/data.php/254/116 HTTP/1.1
    Ho provato a levare le scritte GET ed HTTP, ma niente. Cosa devo fare?

    1. Mauro Alfieri

      Ciao Gabriele,
      ho provato da Browser entrambi i link che hai incluso nel tuo commento.
      Mi restituiscono “404 Page not Found” sei sicuro che gli indirizzi siano scritti in modo corretto?

      Hai già provato a inviare i valori alla mia pagina? è a disposizione proprio per i test e per verificare se il problema sia nello sketch, nella comunicazione o nella pagina che attende i valori.

      Mauro

  3. Gabriele

    Ah si scusa hai ragione, avevo messo “sito così per fare un esempio. Il sito vero e proprio è:
    provarduino.altervista.org

    1. Mauro Alfieri

      Ciao Gabriele,
      crea una pagina in cui dopo aver preso i valori li riscrivi a video, così che io possa vederlo, ed anche tu.

      Hai eseguito il test che ti ho consigliato?

      Mauro

      1. Gabriele

        Cosa assurda che mi è successa. Da casa il codice me lo scrive una volta ogni mille mai. Oggi ho portato l’arduino a scuola e magicamente tutto il DB pieno mi sono trovato. Non riesco a capire dove sta il problema allora. Perchè da cassa mia no e da scuola si?
        Guarda tu stesso: http://provarduino.altervista.org/data.php/

        1. Mauro Alfieri

          Ciao Gabrilele,
          é certamente un problema di connessione, a casa hai un proxy, firewall o altro sistema che blocca l’uscita su internet se non sei un Pc? Magari non tu ma il tuo provider (Telecom,Fastweb,ecc..)

          Mauro

          1. Gabriele

            Ok, niente da fare, l’importante è che funziona a scuola. 🙂 Comunque avevo un’ultima domanda da farti.
            Praticamente essendo una tesina di fine anno, devo fare entrare in questo progetto elettronica e informatica. Quindi elettronica è tutta la parte di collegamenti ecc.. informatica i database e php. I valori li prendo da una porta analogia, tramite il collegamento del pannello alla breadboard e l’uso di una resistenza che trasforma la corrente in tensione. Per non fare bruciare l’arduino, che caratteristiche deve avere questo pannello?
            Grazie mille 🙂

          2. Mauro Alfieri

            Ciao Gabriele,
            di che pannello stai parlando?
            Ti riferisci forse ad un quadro elettrico?

            Mauro

  4. Gabriele

    Nono fotovoltaico.

    1. Mauro Alfieri

      Ciao Gabriele,
      leggi l’articolo sul partitore di tensione o prova un chip che adatti il segnale, io ne ho comprato uno da robot-domestici in settimana e arriverà presto.

      Mauro

      1. Gabriele

        Ok 🙂 Ultima domanda e non la assillo più 🙂 Per ogni porta analogica, quanti volt posso far entrare (sia V che A)? Perchè ovviamente ho due pannelli da collegare in due porte analogiche e sul sito di arduino ho letto che le analogiche leggono dai 0 ai 5 v, ma non ho capito se per ogni porta o in totale!
        Grazie mille 🙂

        1. Mauro Alfieri

          Ciao Gabriele,
          non mi stresso affatto.
          Ogni porta arduino uno legge 0-5v vuol dire che non devi dargli più volt o rischi di fonderlo.
          Per gli Ampere servono solo in erogazione, non penso che nel tuo progetto siano coinvolti 🙂

          Mauro

  5. Gabriele

    Grazie mille pernla tua disponibilità 🙂 Se avro altri problemi scriverò ancora :))

  6. Gabriele

    Rieccomi.
    Ho cambiato modem. Adesso si connette subito senza fare capricci ma quando manda il buffer mi compare scritto:
    HTTP/1.1 400 Bad Request
    Date: Mon, 20 May 2013 22:23:51 GMT
    Server: Apache
    Content-Length: 226
    Connection: close
    Content-Type: text/html; charset=iso-8859-1

    400 Bad Request

    Bad Request
    Your browser sent a request that this server could not understand.

    1. Mauro Alfieri

      Ciao Gabriele,
      la risposta del server Apache indica che hai inviato una richiesta che il server non è in grado di interpretare, penso si tratti del protocollo o del tipo di chiamata che stai effettuando.

      Mauro

      1. Gabriele

        Problema risolto.
        Ho messo HTTP/2.0 ed è partito 🙂

  7. Gianluca

    ciao scusa il disturbo ma e da due giorni che provo a gestire il mio database come fai tu in questa guida ma non ci riesco ho riscontrato dei problemi dopo aver scritto il file .PHP praticamente dopo che lo apro mi dice SUCCES però se vado a guardare nel MYSQL non trovo i numeri che invio ma solo degli 0 qualche consiglio x farlo funzionare?
    Grazie in anticipo

    1. Mauro Alfieri

      Ciao Gianluca,
      collegandoti dal browser alla pagina e passando dei valori di test sul l’url cosa trovi nel Db?

      Mauro

  8. gianluca

    Allora nella colonna sensori 0 e in quella del codice impianto niente

    1. Mauro Alfieri

      Ciao Gianluca,
      Ti riferisci alla test da browser?
      Che valori hai inserito?

      Mauro

      1. Gianluca

        ok ci sono riuscito era un errore con php era sbagliata la versione graze
        lo stesso del aiuto 🙂

        1. Mauro Alfieri

          Ottimo Gianluca !!!

  9. Gianluca

    sisi alla prova dal browser inserivo valori a caso ma qualunque valore inserivo nella colonna del codice impianto non trovo niente e nei vari sensori compare 0

    1. Mauro Alfieri

      Ciao Gianluca,
      ad occhio direi che si tratta di un errore nella pagina Php.
      Prova a verificare.

      Mauro

  10. Antonello

    Per tutti coloro che hanno problemi con un messaggio di errore “No input file specified” su Aruba (dovuto all’uso di $_SERVER[‘PATH_INFO’] ) io ho risolto grazie a queste info ( http://www.sen-seo.it/2012/03/aruba-joomla-e-no-input-file-specified.html ), nella sezione in cui parla di cgi.fix_pathinfo.

    1. Mauro Alfieri

      Grazie Antonello !!!

  11. lucio

    Ciao Mauro,ho letto il tuo interessante articolo,ma non cerco in irrigatore ma cercavo un datalogging per inviare i valori rilevati ad un database mysql sempre tramite pagina php.
    è possibile modificare per rendere specificoil tuo script arduino?
    per esempio:data ,ip,codice impianto va bene,
    temperatura.umidità con dei semplici sensori su arduino e poi avrei bisogno di inserire dei valori di radioattività rilevati da altre schede arduino.
    pensi che sia possibile dette modifiche?

    grazie

    1. Mauro Alfieri

      Ciao Lucio,
      il progetto è fattibile a mano dell’incognita degli altri sensori che vorresti utilizzare perché dovrei provarli per esserne certo.
      Gli sketch sul sito sono a libera disposizione per cui puoi modificarli come desideri.

      Mauro

      1. lucio

        Mauro la modifica che non sò fare è trasformare un sensore in un contatore di clic.
        esempio prendiamo il sensore P del codise e farlo diventare un contatore di impulsi CPM (counter x minute)
        se ho capito bene attualmente si possono inserire sui sensori A-Q solo carichi resistivi…..
        quindi la domanda è come posso modificare il sensore Q in un contatore di impilsi.

        grazie Mauro

        1. Mauro Alfieri

          Ciao Lucio,
          deve essermi sfuggito qualcosa dall’ultimo tuo commento.
          Avevo inteso che tu volessi inviare dati ad una pagina php e salvarli in un DB MySql, il tpo di dato che invii è necessario che sia compatibile solo con il tipo di valore atteso dal DB.

          Se invii un valore preso da un sensore resistivo,capacitivo,hall,contaimpulsi o altro è indifferente dall’invio vis GPRS è solo legato al codice arduino.

          Se non sai come leggere il valore ti consiglio di studiarti uno degli articoli specifici per sensori simili a quelli che vuoi utilizzare nel tuo progetto, il valore dei sensori A-Q sono solo valori numerici che devi già aver acquisito con arduino prima di inviarli.

          Mauro

          1. lucio

            scusami non sono molto pratico ma non riesco a farlo funzionare.
            no GPRS non mi serve.
            si devo acquisire dati e inviarli al database.mysql cominciamo da questo 🙂
            allora ho cambiato il nome del server ,il nome della cartella e ho programmato arduino.
            e niente non invia nulla.
            ho chiamato la pagina sul server http://miosito.it/progetto/saveData.php/123456/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0
            e mi dice success mi scrive il database correttamente.
            l’unica cosa che non ho cambiato è il mac che sulla scheda non è segnato.
            insomma arduino non invia nulla al database e non capisco il perchè.

          2. Mauro Alfieri

            Ciao Lucio,
            potrebbe essere un problema di configurazione network, hai verificato che arduino sappia come raggiungere il tuo server?

            Mauro

          3. lucio

            scusa così forse sono più preciso
            prove fatte
            test da browser
            http://testsito/progetto/savedata.php/123456/1/2/3/4/5/5/6/7/8/9/10/11/12/10/14/15
            success

            cambiato
            HTTP/1.1 in
            HTTP/2.0

          4. Mauro Alfieri

            Ciao Lucio,
            nel monitor seriale cosa leggi?

            Mauro

          5. lucio

            dove lo trovo il monitor seriale?

          6. Mauro Alfieri

            Ciao Lucio,
            Il monitor serale lo trovi in alto a destra dell’IDE Arduino, la lente di ingrandimento, mi preoccupa di più il fatto che tu non lo conosca come sistema di debug perché non é uno strumento che funziona da solo, devi dirgli tu come funzionare.

            Ti consiglio di leggere un po’ di lezioni del mio corso base arduino che trovi on-line sul blog per apprender quel minimo di nozioni che in un progetto come questo determinano la riuscita o il fallimento 🙂

            Mauro

          7. lucio

            potrebbe essere un problema di configurazione network, hai verificato che arduino sappia come raggiungere il tuo server?

            arduino è collegato al router…ip risulta collegato al router

          8. Mauro Alfieri

            Ciao Lucio,
            é un buon inizio ma non sufficiente a dire che tutto debba funzionare certamente.
            L’IP é compatibile con la tua rete ?
            Il router matta tutte le connessioni ?

            Prima di tutto io verificherei che tutta la parte di comunicazione network sia correttamente configurata e che arduino riesca a scambiare informazioni con il web e con il tuo sito.

            Il router potrebbe avere degli strumenti di debug network che risultano molto utili.

            Mauro

          9. lucio

            trovato monitor seriale

            GET http://miosito.it/progetto/saveData.php/123456/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0 una serie di caratteri strani e finisce con connecting…

          10. Mauro Alfieri

            Ciao Lucio,
            prima di tutto concentrati sui caratteri strani, non devono esserci.
            In secondo luogo l’indirizzo che vedo (miosito.it/progetto…) é una modifica del vero indirizzo che vedi nel monitor seriale? Perché non penso tu possieda il dominio miosito.it anche se potrei sbagliare.

            Mauro

          11. lucio

            il sito è questo ,http://testsito/progetto/savedata.php/123456/1/2/3/4/5/5/6/7/8/9/10/11/12/10/14/15
            è sui post precedenti ,e vedo che lo stanno “cliccando”….
            il mio indirizzo email è sul post se mi mandi il tuo ti invio la schermata così comprendi meglio.

          12. Mauro Alfieri

            Ok Lucio,
            questo indirizzo lo hai inserito nello sketch?
            Scrivimi cosa leggi sul monitor seriale quando avvii lo sketch.

            Mauro
            P.S.: cancello il tuo indirizzo dai commenti in modo che altri utenti non ci clicchino su.

      2. lucio

        mandami la tua email
        grazie

        1. Mauro Alfieri

          Ciao Lucio,
          non mettere più l’email nei commenti o ti potretsi trovare superspammato, il blog raggiunge 1700 persone al giorno.
          La tua email la vedo dall’amministrazione.

          La mia casella la trovi nella pagina contatti ma è riservata alle richieste di preventivo.
          Tutto l’aiuto che posso darti in forma gratuita è sul blog con i commenti, considera sempre che siete 1700 al giorno e non è facile rispondere a tutti.

          Il miglior aiuto che posso darti è di studiarti lo sketch e la sintassi arduino, aggiungere tutti debug che puoi come monitor seriale e cercare il problema tra la connessione del tuo arduino ed il sito.

          Mauro

  12. Massimo

    Ciao Lucio,
    mi spiegheresti meglio la funzione

    sprintf(buffer, “%s%s%s/%s/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d %s”, “GET ….

    Non riesco a capire come funziona la parte relativa alla formattazione con %s%s%s ecc.

    Mi aiuti?

    Grazie in anticipo.

    Max

    1. Mauro Alfieri

      Ciao Massimo,
      non so chi sia Lucio 🙂
      Detto questo è una funzione derivata dal linguaggio C, se cerchi sul Web trovi il dettaglio di tutte le opzioni con cui puoi formattare la stringa, ossia la spiegazione dei vari %s %d ecc…

      Mauro

  13. Christophe

    Bonjour Mauro,

    Je souhaite à partir d’un arduino YUN connecté en WIFI, interroger une base MySQL distante (serveur visible sur Internet) pour récupérer des valeurs qui me serviront ensuite en local pour les envoyer vers le port USB de l’arduino lui même connecté à un PC (cette seconde partie fonctionne). En revanche, je n’ai pas encore démarré la partie récupération des données au travers de la partie réseau IP ver la table SQL.

    Aurais-tu moyen de m’indiquer comment faire cela ?

    Merci d’avance

    Christophe

    1. Mauro Alfieri

      Bonjour Christophe,
      vouz pouvez récupérer les données MySQL avec de nombreux langage, je utiliser PHP, mais vous pouvez utiliser les langage vous savez.

  14. Christophe

    Bonjour Mauro,

    Merci de la réponse.

    Cela signifie que l’ARDUINO embarque nativement le langage PHP ?

    Effectivement, si tel est le cas, je ne devrais pas avoir de problème.

    Christophe

    1. Mauro Alfieri

      Oui Christophe,
      arduino yùn intègre an Linux ( Linino ) avec php.
      Vous pouvez lire mes articles sur arduino yun

      1. Christophe

        Merci Mauro.

        Serais-tu disposé à participer à la mise au point de notre programme en cas de besoin ?
        Nous démarrons de zéro sur le développement ARDUINO !!!

        Par avance merci de ta positive réponse 😉

        Christophe

        1. Mauro Alfieri

          Oui Christophe, je travaille sur des projets payés.

  15. Christophe

    Super …

    Tu travailles au forfait ou bien au temps passé ?

    Quel est ton tarif de base ?

    Merci

    Christophe

  16. Christophe

    Bonjour Mauro,

    Je n’ai pas reçu de réponses quant à ta grille tarifaire ?

    Je pourrais te confier le développement de la partie interrogation PHP vers BASE MySQL avec génération d’un fichier sur la carte SSD de l’ARDUINO pour que l’autre partie puisse l’exploiter.

    J’attends ta réponse.

    Merci d’avance

    Christophe

    1. Mauro Alfieri

      Bonjour Christophe,
      Je n’ai pas de prix fixe dépend du projet, si vous êtes intéressé s’il vous plaît écrire à info du blog et je vais essayer de vous obtenir un devis.

  17. Christophe

    Merci Mauro.

    Je ne trouve pas ton adresse email sur le site pour t’envoyer un cahier des charges ?

    Cdlt,
    Christophe

    1. Mauro Alfieri

      Je vous ai envoyé un e-mail d’info blogue

  18. Walter S.

    Ciao Mauro, complimenti prima di tutto per i tuoi progetti molto interessanti e ottima base per sviluppare applicazioni “personal”.
    Sono purtroppo ignorante in materia di webserver per cui ti chiedo se possibile dove posso trovare un tutorial per inserire lo script php nel mio website; ho scaricato wampserver ma lo script mi restituisce Error 1 e non so come trasferirlo poi sul mio sito (creato con one.com).

    Grazie mille e complimenti ancora per il sito.

    1. Mauro Alfieri

      Ciao Walter,
      il trasferimento degli script php sui server web si fa principalmente in 2 modi:
      1. ftp, io uso Filezilla come client
      2. scp se hai accesso ssh al server ( per windows esiste WinScp )

      Sul come fare e dove mettere gli script devi leggere la documentazione del tuo provider perché cambia da server a server.

  19. Gabriele

    Ciao !

    Io sto provando il tuo sketch; il php funziona, perchè se metto i numeri nell url manualmente li visualizzo nel database.
    Ma quando compilo lo sketch arduino non mi invia i dati.. e sul serial monitor compare una stringa errata..
    questo l’output:
    GET http://dimatech.altervista.org/saveData.php/12/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/367 ­µ#£±½òN;–Ï_ðš0Û´üwóî˜_Þæ殟ØÀ§Hžeìå½lW¾¼ï=ÏýŘî{*ÌÈ»GçòQíÆϏþ«—ïE?Ò;Èÿoö{>ý>ÝÃ~¿áÿÅϜ›
    ¯”®ž÷;ú~Ðûî:Ô~è{?¯½þO)jÓûë½‘ö¾ÚR?›ý·üú’‹ÍÿîÒx»«äVè—vë©¿¹/èg˲6†ÓÿƟ{ß>¹OP‡gݶyÿ_?Gé½./_©T¯WØßd^3÷ó^ýþ¿–þsê¿Ï
    ÷ýÕ2³+~§<Ù

    ovviamente questi simboli non dovrebbero esserci !
    dove sbaglio?

    1. Mauro Alfieri

      Ciao Gabriele,
      non saprei risponderti, i caratteri che vedo mi fanno pensare ad un errore di copia e incolla che ha aggiunto caratteri invisibili nell’IDE ma incomprensibili che si vedono solo durante l’esecuzione del codice.

  20. Gabriele

    Ciao !

    Sono riuscito a risolvere il mio problema inserendo la libreria #include ! Grazie ciao

    1. Mauro Alfieri

      Ottimo, diagnosi errata la mia 🙂

    2. alessandro

      ho lo stesso problema puoi spiegarmi meglio come hai risolto grazie.
      Ciao

      1. Mauro Alfieri

        Ciao Alessandro,
        prova a controllare gli #include come ha fatto gabriele.

  21. Andrea

    Buonasera, navigando in internet mi sono imbattuto nel suo blog in cui tratta della piattaforma arduino.
    Mi sto occupando dello sviluppo di un progetto che prevede di trasferire dei dati dall’arduino ad un database mysql.
    Ho letto alcuni articoli da lei scritti sull’argomento.
    Il problema che sto incontrando, utilizzando hosting linux, è un errore 400 bad request se invio la GET da arduino mentre scrivendo la GET da browser l’errore non si verifica.
    Appoggiandosi a un hosting windows il tutto funziona correttamente.
    Mi può consigliare gentilmente una soluzione al problema?!
    La ringrazio fin d’ora del tempo che mi vorrà dedicare e la saluto cordialmente.

    Andrea Colombini

    1. Mauro Alfieri

      Ciao Andrea,
      che shield stai usando per la connessione?
      WiFi shield arduino originale o la Ethernet shield arduino originale?

      1. Andrea

        Sto utilizzando la Ethernet shield arduino.
        Il server è un hosting linux Apache + PHP 5.3.29:
        Il fatto strano è che con l’hosting vecchio tutto funzionava correttamente.
        Con questo invece da quest’errore, come se sbagliassi il protocollo di invio o la richiesta GET:

        1. Mauro Alfieri

          Ciao Andrea,
          nei log apache vedi arrivare la chiamata dall’IP arduino?
          Che pagina cerca di chiamare ?

          1. Andrea

            Purtroppo per questi test non abbiamo acquistato un server proprietario ma ho solo il servizio di hosting su un server virtuale; Anche chiamando il servizio clienti mi hanno detto che non è possibile visionare il log di apache.
            Non so più che strada prendere.

          2. Mauro Alfieri

            Ciao Andrea,
            fai dei test con un server locale magari sul tuo pc o nella tua rete aziendale.

  22. simone

    ciao,spero tu mi possa aiutare… sto cercando di usare questa guida come base per aggiornare la mia tabella sul server…
    ma curiosità sul mio server per accedere devo inserire user e la password, come faccio a fare la verifica di connessione e mettere il buffer dei dati?
    grazie 1000

    1. Mauro Alfieri

      Ciao Simone,
      non penso di aver capito la domanda … cosa intendi per “come faccio a fare la verifica di connessione e mettere il buffer dei dati?”
      Questa guida spiega riga per riga cosa fa il codice arduino e come creare una pagina php da richiamare su un server per memorizzare i dati raccolti.

      Mauro

  23. Alessandro

    Ciao Mauro,
    tra gli innumerevoli siti su Arduino il tuo è quello che frequento più spesso per la chiarezza e la disponibilità di risorse. Io sono partito da zero con poche nozioni da elettronico smanettone. Ultimamente mi sto divertendo a realizzare un sistema per l’invio di dati di temperatura sul web e ci sono riuscito imparando tante cose, anche grazie a te, sulle tabelle mySQL e sul PHP. In pratica il mio Arduino munito di Ethernet shield comunica ad una tabella MySQL i dati di temperatura, attualmente tre sensori, inserendo la data tramite la funzione TIMESTAMP. In pratica ho realizzato un datalogger senza RTC che mi registra i dati su una tabella sul server con grosso risparmio di righe di codice; il tutto si limita a millis() per il conteggio dell’intervallo di datalogging e POST per l’invio dei dati al webserver. L’unico limite è che bisogna essere sempre connessi altrimenti addio dati.
    Qui veniamo al dunque, potrei mettere un RTC e una scheda SD per salvare tutto in locale, però ho provato a scrivere il codice è mi viene sempre immenso, supera il limite dei 32000, allora ho pensato se metto solo una micro SD e prendo la data da internet ho fatto un passo avanti, non mi serve più RTC.
    Ma i modi trovati per prelevare la data sono troppo complessi e occupano troppe righe di codice. C’è una soluzione per prendere la data da un sito i maniera semplice ? Io pensavo, una volta lo facevo con Excel, a pescare una riga di una comune pagina web (es. televideo) e prendere la data, è una cosa possibile?
    Grazie
    Alessandro

    1. Mauro Alfieri

      Ciao Alessandro,
      hai provato ad ottimizzare il codice leggendo uno dei miei articoli sui datalogger?
      La sola parte relativa alla lettura dell’RTC e scrittura su file cuba una decina di righe, probabilmente hai aggiunto dei controlli o delle subriutine di codice che puoi eliminare per rientrare nei 32K.
      Purtroppo l’RTC via web richiede complessi protocolli client come l’ntp complessi e con molte righe di codice; inoltre la soluzione con RTC preso dal Web ti costringe cmq ad essere connesso.

  24. adriano

    CIao mauro trovavo difficoltà su queste due linee di codice

    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    char server[] = “www.mauroalfieri.it”;

    Come faccio a capire qual’è l’indirizzo mac della ethernet shield?(sotto la scheda non c’è nessun arduino)
    Poi visto che io uso un server locale con apache, nella dichiarazione del server che indirizzo devo mettere?

    1. Mauro Alfieri

      Ciao Adriano,
      il mac address della scheda, per la ethernet originale, è scritto sotto la shield stessa, se non trovi tale tagliando puoi verificare con il tuo router dopo l’assegnazione dell’IP.
      Il server se è locale dovrai mettere l’IP del tuo server ed usare le istruzioni di collegamento mediante IP e non mediante server, trovi numerosi esempi nel blog.

  25. adriano

    Credo di aver risolto questa parte…Con la pagina in php, come faccio a richiamare le variabili che ho utilizzato in arduino? Ho provato con il metodo get, ma non funziona

    1. Mauro Alfieri

      Ciao Adriano,
      hai provato come descritto nel file php riportato nell’articolo ?

      1. adriano

        SI mauro. Mi esce l’errore 001

        1. Mauro Alfieri

          Ciao Adriano,
          accade se la variabile $_SERVER[‘PATH_INFO’] è vuota, accertati che il php.ini abbia abilitato la modalità che ti permette di ricevere le variabili come $_SERVER

          1. adriano

            Ciao Mauro, come faccio ad abilitare la modalità?

          2. Mauro Alfieri

            Ciao Adriano,
            controlla nella documentazione del php.ini non lo ricordo a memoria.

  26. luciano

    Ciao Mauro ,una domanda anzi una miglioria,non si potrebbe fare una piccola modifica a questo progetto inserendo :
    1-pressostato presenza acqua da acquedotto
    2-pressostato presenza acqua da serbatoio di accumulo

    su arduino un semplice contatto aperto/chiuso in modo da controllare da remoto se manca acqua perchè spesso nelle case di campagna le piante si seccano per questo motivo.
    una sorta di allarme…via web , se ci sono problemi di memoria anche togliendo qualche sensore……nelle mie zone sarebbe molto utile per la scarsità di acqua.

    Grazie

    1. Mauro Alfieri

      Ciao Luciano,
      certo puoi togliere ed aggiungere qualsiasi cosa tu voglia a questo progetto, modificando il codice a tuo piacimento.
      Pubblico i miei codici e la descrizione linea per linea proprio per consentire a chiunque lo desideri di effettuare le modifiche ed eventualmente ripubblicarle.

      1. luciano

        Si ho capito che si può modificare …ma il problema è che non conosco il codice.
        se qualcuno dei ragazzi che lo conoscono ci possono dare una mano ,
        oppure sew ne conoscete uno già scritto e ci possono indirizzare.
        ringraziamo anticipatamente.

        Luciano

        1. Mauro Alfieri

          Ciao Luciano,
          lo scopo di questo blog è permettere a chiunque lo desideri di imparare per questo il codice è spiegato linea per linea ed ho anche pubblicato un corso arduino on-line gratuito con cui imparare tutto quello che ti potrebbe servire.

  27. Alessandro Achille Rossi

    Buongiorno,
    sto provando questo programa con IIS di Microsoft, la verisone di IIS è IIS 8.5 su Windows Server 2012 R2.
    Attualmente il programma è fatto per funzionare in questo modo:
    Database mySql su 192.168.1.3 con Windows server 2008.
    Web server su 192.168.1.2 con Windows Server 2012 R2 e IIS 8.5 .
    Se faccio il test (http://192.168.1.2/progetto_irrigazione/saveData.php/123456/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0 ) mi da “SUCCESS” , mentre se uso Arduino ho diversi problemi: ad esempio, se funziona ci mette un sacco di tempo prima di stamparmi sul seriale “SUCCESS” . Ciè, mi stampa quasi subito GET http:/ ….. ma prima che scriva su database e mi stampi success passa più di un minuto. Cosa posso fare?

    1. Mauro Alfieri

      Ciao Alessandro,
      prova averificare nei log del server quando fai la chiamata da browser e quando la esegui da arduino cosa accade e se si verificano errori.
      Poi puoi provare l’esempio presente sul mio sito dal tuo arduino per verificare che funzioni prima di usarlo sul tuo server.

  28. Davide

    Ciao MAuro e complimenti per il tuo sito. Ho realizzato una stazione meteo con Arduino uno e wifi shield originali che inviano i dati ad altervista e questi vengono pubblicati su web. Il tutto funziona per alcuni giorni, a volte anche 5 settimane, quando ad un tratto si inchioda tutto, sul router non vedo piu collegato arduino e non mi rimane che resettarlo manualmente disalimentandolo. Mi sai dire quale potrebbe essere il problema.

    Ciao

    1. Mauro Alfieri

      Ciao Davide,
      hai eseguito l’update Fw della wifi-shield ?
      Ho scritto un articolo in merito se non ricordo male.

  29. riccardo

    salve, ti stimo molto per il lavoro che metti a disposizione di tutti e devo dire che ho imparato moltissime cose grazie ai tuoi articoli/blog.
    vorrei chiederti un aiuto per quanto riguarda un progetto in cui devo inviare dati da un arduino ad un server.
    per ora sto utilizzando il tuo sketch per fare delle prove. vole chiederti se a posto del nome del server volessi inserire l’indirizzo ip come posso fare? ma soprattutto,come vedo se arduino e il mio server comunicano e si scambiano anche qualche stringa cosi a caso ?
    alla riga 80:
    “GET http://“, server, “/progetto_irrigazione/saveData.php”

    io invece dovrei scriverci: “GET xxx.xxx.xx.xx “/progetto_irrigazione/saveData.php”?

    scusa per la domanda da ignorante ma mi sto affacciando da pochissimo nel mondo dell’informatica.
    grazie mille e spero tu possa aiutarmi

    1. Mauro Alfieri

      Ciao Riccardo,
      la tua domanda non è affatto errata e dimostra che hai letto e compreso quello che scrivo oltre che aver provato da solo a risolvere i tuoi dubbi, credimi che tra le centinaia di commenti che leggo ogni giorno è una cosa rara.
      Meriti una spiegazione ulteriore della riga 80: usando il comando sprintf ( oroginario del linguaggio C ) puoi comporre delle stringhe uniche da inserire in una variabile, in questo esempio è “baffer” ad ogni simbolo tipo %s o %d sostituisci un valore definito dal 3° parametro in poi; è più complesso da spiegare che da fare, ad esempio se scrivi:
      sprintf( buffer, “%s %s”, “Ciao”, “Riccardo” ) il risultato sarà che nella variabile buffer avrai “Ciao Riccardo” ossia la sostituzione del parametro %s con il corrispondente valore definito dalla terza posizione in poi.

      Nel caso dell’IP puoi sostituire la variabile “server” ( 4° posizione ) con l’IP che vuoi in formato testo “192.168.1.1” ad esempio ed otterrai l’invio della stringa con l’Ip e non con il nome del server.
      Ricorda solo che devi anche eseguire la connessione con l’Ip e non con il “DNS name”, trovi dei miei articoli su come fare.

  30. Luigi

    Salve prof. Sono un collega che però si sta avvicinando alla domotica da poco. Le spiego il mio problema: Stiamo realizzando una Casa Domotica a scuola, con gli studenti e mi trovo difronte a questo problema: ho usato Arduino per leggere valori di alcuni sensori e inviarli ad un sito internet dove vengono salvati in un database e visualizzati a schermo se richiesto (fase di monitoraggio). Poi ho usato Arduino per collegarmi ad una pagina web da dove premendo su un link sono in grado di accendere e spegnere un led (quindi in teoria una caldaia, un condizionatore…). Ora il problema è: è possibile fondere i due sketch in un unico sketch così da poter fare entrambe le cose?
    Grazie per l’aiuto e Buon Anno.
    Prof. Luigi Maselli [[ Link a social network rimosso in automatico ]]

    [[ codice rimosso in automatico ]]

    1. Mauro Alfieri

      Ciao Luigi,
      grazie per il complimento ma non sono un professore.
      Come ha letto certamente in fondo ad ogni sketch non è consentito incollare codice e link a portali di varia natura, chiedo, come a tutti, di rispettare le 2 semplici regole poste in ogni articolo.
      Il codice è rimosso in automatico.

      Restando sulla domanda si è certamente possibile farlo.

  31. Luigi

    Ti chiedo scusa. Non ci avevo fatto caso. Comunque per quanto riguarda il mio problema è il seguente: non riesco a fondere i due sketch in un unico sketch che possa monitorare i sensori e inviare i dati al server dove una pagina PHP scrive i dati in una tabella e contemporaneamente richiamare una pagina da cui accendere o spegnere un led collegato ad un ingresso digitale di Arduino, led che potrebbe essere sostituito da un relè che comandi una ventola o una caldaia.

    1. Mauro Alfieri

      Ciao Luigi,
      che errore ricevi?

      1. Luigi

        Il problema è che la parte relativa all’invio dei dati al mio server su internet funziona, nel senso che ho dei sensori che vengono rilevati ogni minuto e i dati vengono inviati al server e poi da lì io li memorizzo in una tabella database e li visualizzo su pagine web.
        La parte invece in cui devo permettere la visualizzazione dello stato dei led e la possibilità di cambiarlo, funziona come sketch singolo, ma se lo inglobo nell’altro quando viene richiamata la pag. nel mio caso 192.168.**.**, questa non viene caricata. Ho letto da qualche parte che devo chiudere la comunicazione per un verso per poter aprire quella nell’altro verso. Ma non capisco come si fa

        1. Mauro Alfieri

          Ciao Luigi,
          si, hai letto bene.
          Arduino può fare da Server e da Client, sei tu a decidere quando fa una e quando fa l’altra.
          In applicazioni come la tua io preferisco che faccia sempre da client per cui è lui a spedire i dati dei sensori al server ed è sempre lui a chiamare un servizio ce gli dica come impostare i led, in polling se non ricordo male. Tu imposti lo stato dei led sempre sul server e non cambi da server a client.

      2. Luigi

        Sono riuscito a farla funzionare. Grazie comunque e scusami per il primo commento in cui avevo postato lo sketch.

        1. Mauro Alfieri

          Bene Luigi, sono contento

  32. Michele

    Salve
    sto realizzando una stazione meteo con fishino che integrava già il modulo wifi esp8266 ed ho già un sito per caricare e visualizzare i dati raccolti (temperatura, umidità, pressione, pioggia, neve) su altervista. Utilizzando gli esempi da lei messi ho creato una tabella su phpmysql e il file che sono inviati dal fishino vengono salvati correttamente. Il mio problema si presenta quando provo a rimuovere l’ ip remoto, il codice dell’ impianto e cambiare il nome della tabella: mi restituisce continuamente error004 anche se modifico lo sketch di fishino e il file .php nel server.
    Preferirei (se possibile) tenerci in contatto via e-mail e se il problema verrà risolto risponderò a questo post, cosi chiunque avrà il mio stesso problema, avrà una risposta.

    Grazie

    1. Mauro Alfieri

      Ciao Michele,
      premetto due cose:
      1. le email sono riservate ai progetti su commissione, per i consigli il modo migliore sono i commenti al blog;
      2. l’articolo in cui hai inserito il commento non è inerente il tipo di centralina che stai realizzando, ci sono articoli dedicati alle centraline meteo.

      Fatte le dovute premesse, non comprendo cosa intendi con “rimuovere l’ ip remoto” nel mio sketch uso il nome del server, l’URL per capirci non l’IP.
      Inoltre non comprendo perché fai tutti quei cambi in una sola volta, se già uno non funziona prova applicando un cambio alla volta, verificalo, comprendi se non funziona le motivazioni e poi procedi al cambio successivo.

  1. Irrigazione arduino sensore terreno - seconda parte - Mauro Alfieri

    […] precedente articolo dedicato all’irrigazione arduino hai imparato a condividere i valori rilevati da arduino su […]

  2. Mini orto da Irrigare con Arduino Mauro Alfieri Bricolage Elettronica

    […] settimane fa ho pubblicato il progetto Irrigazione arduino che si collega al precedente: irrigazione con arduino ma a cosa serve un progetto di irrigazione […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag ed attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>