<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHP Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/php/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Wed, 09 Dec 2015 16:12:38 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://logicaprogrammabile.it/wp-content/uploads/2017/11/cropped-logicaprogrammabile-logo-02-32x32.png</url>
	<title>PHP Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/php/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Memorizzare dati su un sito web con PHP e Mysql</title>
		<link>https://logicaprogrammabile.it/memorizzare-dati-server-remoto-php-e-mysql/</link>
					<comments>https://logicaprogrammabile.it/memorizzare-dati-server-remoto-php-e-mysql/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 29 Jul 2013 09:36:09 +0000</pubDate>
				<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Internet delle cose]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[MySql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Servizio web]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=3714</guid>

					<description><![CDATA[<p>Introduzione all&#8217;internet delle cose con Arduino, PHP e Mysql Il termine &#8216;internet delle cose&#8216; sta diventando sempre più popolare per due motivi fondamentali, il primo riguarda la grande diffusione dei dispositivi programmabili come Arduino e Netduino (senza tralasciare  il sistema OpenPicus e il RaspberryPI) con...</p>
<p>The post <a href="https://logicaprogrammabile.it/memorizzare-dati-server-remoto-php-e-mysql/">Memorizzare dati su un sito web con PHP e Mysql</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Introduzione all&#8217;internet delle cose con Arduino, PHP e Mysql</h3>
<p>Il termine &#8216;<strong>internet delle cose</strong>&#8216; sta diventando sempre più popolare per due motivi fondamentali, il primo riguarda la grande diffusione dei dispositivi programmabili come <strong>Arduino</strong> e <strong>Netduino</strong> (senza tralasciare  il sistema <strong>OpenPicus</strong> e il <strong>RaspberryPI</strong>) con la loro relativa semplicità di utilizzo, mentre il secondo motivo è dovuto alla necessità di conoscere in tempo reale cosa questo dispositivo sta facendo e come sia possibile controllarne le funzionalità, anche a distanza.<br />
Tutto questo è strettamente legato alla diffusione della<strong> rete 3G e degli smartphone</strong> che permettono di avere una <strong>connessione ad internet</strong> pressoché ovunque.</p>
<p>Questo scenario rende interessante lo <strong>sviluppo di nuove tipologie di applicazioni</strong> legate appunto al controllo e allo scambio dati tra dispositivi hardware collegati ad internet.</p>
<p>Esistono numerosi prototipi ma anche esempi reali che dimostrano come l&#8217;utilizzo di <strong>sistemi embedded+internet</strong> creino infrastrutture, anche complesse, controllabili. Il classico esempio riguarda la gestione del traffico che nelle nostre città viene gestito da semplici semafori che regolano il traffico in modo statico. Utilizzando <strong>dispositivi smart</strong> è possibile ottimizzare questo sistema migliorando la viabilità, evitando ingorghi e facendo risparmiare energia e carburante. Ma le applicazioni sono davvero notevoli e sono tutte orientate al risparmio energetico e al migliorare il nostro modo di vivere.</p>
<p><span id="more-3714"></span></p>
<p>Di seguito sono elencate le categorie dove maggiormente verranno sviluppati dispositivi riconducibili all&#8217;internet delle cose</p>
<ul>
<li>Domotica</li>
<li>Controllo inquinamento ambientale cittadino</li>
<li>Monitoraggio Ambientale</li>
<li>Energie rinnovabili, Smart Grid</li>
<li>Illuminazione pubblica intelligente</li>
<li>Sistemi per il rilevamento tempestivo degli incendi</li>
<li>Controllo delle acque, tra cui livello degli argini.</li>
<li>Controllo e gestione degli accessi con tecnologia RFID</li>
<li>Agricoltura, irrigazione intelligente.</li>
<li>Sorveglianza di pazienti e anziani in abitazioni isolate.</li>
<li>Miglioramento processi industriali, gestione magazzino.</li>
</ul>
<p><a href="http://www.gartner.com/newsroom/id/2209615" target="_blank">Gartner ha identificato l&#8217;IOT</a> come una delle <strong>10 tecnologiche trainanti</strong> per il 2013.</p>
<p>Per quello che ci riguarda dobbiamo dotarci di un dispositivo capace di connettersi ad internet, nel mio caso utilizzerò l&#8217;<strong>Arduino Ethernet</strong>, di una connessione internet e di un server web capace di elaborare le richieste inviate dall&#8217;Arduino.</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2013/07/SchemaIOT.png"><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-3730" src="https://logicaprogrammabile.it/wp-content/uploads/2013/07/SchemaIOT.png" alt="INTERNET DELLE COSE" width="600" height="250" srcset="https://logicaprogrammabile.it/wp-content/uploads/2013/07/SchemaIOT.png 600w, https://logicaprogrammabile.it/wp-content/uploads/2013/07/SchemaIOT-300x125.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></a><br />
Il progetto di questo tutorial permette di acquisire un segnale analogico, di inviarne il valore al server remoto che lo memorizzerà in una tabella del database MySql.<br />
L&#8217;invio dei dati avviene tramite <strong>architettura <a href="http://it.wikipedia.org/wiki/Representational_State_Transfer" target="_blank">REST</a></strong>. Praticamente i <strong>valori acquisiti da Arduino</strong> verranno <strong>inviati utilizzando l&#8217;URL</strong>.<br />
Lato server, uno <strong>script PHP</strong> recupererà i valori dall&#8217;url e li memorizzerà sul database.</p>
<blockquote><p>se non disponete di un server web remoto potete installarne uno nella vostra macchina locale utilizzando <a href="http://www.apachefriends.org/it/xampp-windows.html" target="_blank">XAMPP</a>. Il pacchetto installa automaticamente il server web Apache, l&#8217;interprete PHP ed il server MySql.</p></blockquote>
<p>Iniziamo subito con il codice che ho caricato sull&#8217;Arduino:</p>
<pre class="lang:arduino decode:true ">#include &lt;SPI.h&gt;
#include &lt;Ethernet.h&gt;

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//indirizzo server web (locale)
IPAddress server(192, 168, 0, 140);

//indirizzo ip dell'Arduino
IPAddress ip(192, 168, 0, 200);

EthernetClient client;

String strURL = "";
float temp = 0;

void setup()
{
Serial.begin(9600);

if (Ethernet.begin(mac) == 0)
{
Serial.println("Configurazione DHCP fallita!");
Ethernet.begin(mac, ip);
}

delay(1000);

}

void loop()
{
UpdateTemp();

while(client.available())
{
char c = client.read();
Serial.print(c);
}

if (!client.connected())
{
Serial.println();
Serial.println("Disconnesso.");
client.stop();
}

//esegui la richiesta ogni 10 secondi
delay(10000);
}

void UpdateTemp()
{
Serial.println("Connessione...");

if (client.connect(server, 80))
{
Serial.println("Connesso");
//acquisisco il valore analogico dal sensore MCP9700
//vedi questo articolo
//logicaprogrammabile.it/mcp9700a-netduino-sensore-temperatura-analogico
temp = analogRead(0);

//creo l'url utilizzanso una stringa
strURL = "GET /arduino/index.php?valore=";
strURL += (int)temp;
strURL += "&amp;localita=Sardegna HTTP/1.1";

//invio la richiesta al server
client.println(strURL);
client.println("Host: localhost");
client.println("Connection: close");
client.println();
//chiudo la connessione
client.stop();
}
else
{
Serial.println("Errore Connessione");
}
}</pre>
<p>&nbsp;</p>
<p>Il codice esegue una connessione al server locale e, dopo aver acquisito il segnale proveniente dal sensore analogico, costruisce l&#8217;indirizzo URL inserendo due parametri, il valore analogico acquisito e la località:</p>
<p style="text-align: center;">/arduino/index.php?valore=120&amp;localita=Sardegna</p>
<p>La pagina index.php ha il compito di recuperare i parametri e di caricarli sul database. Questo è il codice <strong>PHP</strong>:</p>
<pre class="lang:php decode:true ">&lt;?php
//controllo se sono presenti i parametri valore e localita
if(isset($_GET['valore']) &amp;&amp; isset($_GET['localita']))
{
//Recupero il valore del parametro "valore"
$valore = $_GET['valore'];

//Recupero il valore del parametro "localita"
$localita = $_GET['localita'];

//eseguo la connessione al database sul server locale
//inserendo nome utente e password
$link = mysql_connect('localhost', 'root', 'root');

//gestione degli errori
if (!$link) {die('Impossibile connettersi: ' . mysql_error());}

//seleziono il databse di nome arduino
mysql_select_db("arduino") or die( "Impossibile selezionare il database.");

//creo una stringa sql di inserimento con i valori
//recuperati dall'url
$sql = "INSERT INTO `arduino`.`tbl_temperature`
(
`ID` ,
`Tempo_Server` ,
`Tempo_Locale` ,
`Valore` ,
`Localita`
)
VALUES
(
NULL , CURRENT_TIMESTAMP , NULL , '" . $valore . "', '" . $localita . "'
);";

//eseguo la query
$retval = mysql_query( $sql, $link );

//gestione degli errori
if(! $retval ){die('Impossibile eseguire la query: ' . mysql_error());}

//chiudo la connessione al db
mysql_close($link);
}
?&gt;</pre>
<p>Tramite <strong>phpMyAdmin</strong> ho creato un database di nome <strong>Arduino</strong> e una tabella di nome <strong>tbl_Temperature</strong>. Il codice sql per creare la tabella è il seguente:</p>
<pre class="lang:mysql decode:true ">CREATE TABLE `tbl_temperature` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Tempo_Server` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Tempo_Locale` datetime DEFAULT NULL,
`Valore` int(11) NOT NULL,
`Localita` varchar(50) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;</pre>
<p>Utilizzando Arduino, PHP e Mysql siamo riusciti a realizzare un piccolo sistema IOT. Certamente bisogna imparare ad utilizzare anche le tecnologie lato server per far interagire Arduino, ma con un po di impegno è possibile realizzare applicazione molto interessanti.</p>
<p>In questo tutorial non ho approfondito l&#8217;installazione e la configurazione di <strong>XAMPP</strong>, ne l&#8217;uso di <strong>PHP e MySql</strong> perché sarebbe stato necessario un tutorial dedicato, molto più lungo e forse dispersivo.</p>
<p>The post <a href="https://logicaprogrammabile.it/memorizzare-dati-server-remoto-php-e-mysql/">Memorizzare dati su un sito web con PHP e Mysql</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/memorizzare-dati-server-remoto-php-e-mysql/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
	</channel>
</rss>
