tag:blogger.com,1999:blog-78053188524664169832024-02-19T03:13:31.017+01:00Oasi LUGUna speranza di sopravvivenza nel deserto informatico locale.Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.comBlogger22125tag:blogger.com,1999:blog-7805318852466416983.post-39450851280777389962017-02-03T21:35:00.000+01:002017-02-03T21:40:23.599+01:00NodeMCU: controllare un modellino d'auto via APP<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/HCrteUPTO8E" width="560"></iframe><br /></div>
Sulla falsa riga del <a href="http://oasilug.blogspot.it/2016/08/nodemcu-controllo-di-4-rele-tramite-app.html">progetto precedente</a> ho realizzato un semplice progetto per comandare un modellino d'auto. Il controllore è montato su una <a href="https://it.aliexpress.com/store/product/Free-shipping-NodeMCU-Motor-Shield-Board-L293D-for-ESP-12E-from-ESP8266-esp-12E-kit-diy/535576_32383474150.html?detailNewVersion=&categoryId=400103">motor shield</a> dedicata. Utilizzando i PIN che vanno da D1 a D4 è possibile controllare le ruote a destra o a sinistra permettendo entrambe le direzioni di marcia e la svolta o a destra o a sinistra più o meno decisa. Per passare il comando via WEB al NodeMCU, come nel progetto precedente, non faccio altro che modificare l'indirizzo della pagina, il controllore analizzerà il testo e si comporterà di conseguenza.<br />
<a name='more'></a><br />
Di seguito i link al progetto dell'<a href="http://ai2.appinventor.mit.edu/?locale=en#6683743258148864">App realizzata con AI2</a> ed il <a href="https://www.dropbox.com/s/83et7m8ozkj0x7y/NodeMCU_CAR_V02.ino?dl=0">codice da caricare sul NodeMCU</a>.<br />
Prima di caricare il codice sul controllare inserite il nome della vostra rete WIFI e la password di accesso, mentre una volta ottenuto l'indirizzo IP dal vostro router modificatelo nell'App caricata su AI2.<br />
Buon divertimento.<br />
<br />
PS: se avete problemi a scaricare il progetto AI2 lo potete scaricare anche da <a href="https://www.dropbox.com/s/0p0jcj6licla5ai/NodeMCu_AUTO_02S_OasiLUG.aia?dl=0">qui</a>, poi caricatelo sul sito del <a href="http://www.ai2.appinventor.mit.edu/">Mit App Inventor</a>.Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com0tag:blogger.com,1999:blog-7805318852466416983.post-68398134395107492132016-10-18T13:05:00.000+02:002016-10-18T13:05:01.305+02:00Linux Day: sabato 22 ottobre 2016<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRr1c8sdvvG8SG02ZstoN-mYxxMyLye5hySSH4Z9u1AkXtJkRh6Rh31rEZsOw0dpynab_zBLCF-Tf1lX4QIgdVwEEat_kIwCl2z9fV6q49eQwwAjk34C1T0Ss_Z7l_9dLWyGnBx-xjE3fD/s1600/banner_linuxday2016.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRr1c8sdvvG8SG02ZstoN-mYxxMyLye5hySSH4Z9u1AkXtJkRh6Rh31rEZsOw0dpynab_zBLCF-Tf1lX4QIgdVwEEat_kIwCl2z9fV6q49eQwwAjk34C1T0Ss_Z7l_9dLWyGnBx-xjE3fD/s1600/banner_linuxday2016.png" /></a></div>
<b>Sabato 22 ottobre 2016</b> si svolgerà in tutta Italia la consueta manifestazione dedicata al SO del pinguino. Attualmente, nel sito ufficiale <a href="http://www.linuxday.it/">http://www.linuxday.it/</a> risultano in Regione FVG tre sedi che accoglieranno l'evento, Pordenone Tolmezzo e Trieste.<br />
Di seguito il comunicato stampa del Team del Linux Day.<br />
<br />
Italian Linux Society<br />
Team Linux Day<br />
web: http://www.linuxday.it/<br />
mail: info@linuxday.it<br />
telefono: +39 3487254214<br />
<br />
Sabato 22 ottobre si svolgerà in tutta Italia il Linux Day, la più nota e popolare manifestazione nazionale<br />
per la promozione di Linux e del software libero: per il sedicesimo anno consecutivo decine di eventi<br />
organizzati in altrettante città da gruppi di volontari permetteranno di scoprire e approfondire il mondo<br />
della tecnologia aperta, condivisa e consapevole, nonché le numerose tematiche parallele e trasversali quali<br />
privacy, diritti digitali e cultura libera.<br />
Laddove il sistema operativo Linux, e più in generale il software libero e opensource, sono diventati un<br />
solido punto di riferimento tecnologico nel mondo dell’impresa ed ottengono sempre più rilevanza nella<br />
scuola e nella pubblica amministrazione, il Linux Day offre una occasione sia per gli approfondimenti tecnici<br />
che per discutere in modo critico delle implicazioni sociali, economiche e politiche del modello di sviluppo<br />
collaborativo e dell’accesso agli algoritmi che sempre più regolano ed alterano, nel bene o nel male, il<br />
mondo che ci circonda.<br />
Tema di riferimento nazionale dell'edizione 2016 del Linux Day è il coding e l’educazione al pensiero<br />
computazionale. L’idea di insegnare i fondamenti della programmazione a bambini e ragazzi in età scolare,<br />
al fine di renderli partecipi dei principi logici su cui si basa il funzionamento dei computer e dei dispositivi<br />
elettronici sempre più presenti nelle loro stesse vite, si è negli ultimi anni ampiamente diffusa in Italia grazie<br />
anche all’attività di gruppi locali tra cui moltissimi Linux Users Groups, già affini ai medesimi princìpi di<br />
condivisione, educazione e consapevolezza digitale. In occasione del Linux Day – quest’anno concomitante<br />
con la Code Week, la settimana del coding promossa dalla Commissione Europea – verranno ribaditi tali<br />
valori, convergenti con quelli propri del software libero, e nel corso della giornata verranno proposti in<br />
diverse città workshop di programmazione elementare ed esperienze educative per i più giovani ma anche<br />
talk di introduzione alla programmazione per adulti.<br />
Non mancheranno inoltre gli “Install Party”, presso cui portare il proprio computer per ricevere assistenza da<br />
parte degli esperti nell’installazione di Linux, e gadgets distribuiti al pubblico.<br />
La mappa degli eventi registrati, distribuiti su tutto il territorio nazionale ed in costante aggiornamento fino<br />
a metà ottobre, da cui accedere ai dettagli ed al programma di ogni manifestazione locale, è disponibile sul<br />
sito http://www.linuxday.it/<br />
La partecipazione a tutti i Linux Day è libera è gratuita.<br />
Il Linux Day è coordinato da<br />
Italian Linux Society – la maggiore associazione italiana per la promozione al software libero<br />
Quest’anno con il sostegno di<br />
Linux Professional Institute Italia – il più popolare ente di certificazioni su Linux<br />
Carrara Computing International – società di consulenza informatica opensource<br />
Yocto Project – organizzazione internazionale per Linux su piattaforma embedded<br />
Koan – società di consulenza specializzata in Linux embedded<br />
E con il supporto di<br />
Free Software Foundation Europe – associazione europea per il software libero<br />
LibreItalia – community italiana degli utenti LibreOffice<br />
<br />
Torino, 13/10/2106Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com0tag:blogger.com,1999:blog-7805318852466416983.post-3382608227734050452016-08-16T17:04:00.000+02:002016-08-16T17:13:14.676+02:00NodeMCU: controllo di 4 relè tramite APP e WEB<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/QzMNCxHpoCg" width="560"></iframe>
</div>
<div style="text-align: center;">
<br /></div>
Con questo post spero di dare delle indicazioni di base su come utilizzare questo piccolo dispositivo nato per "l'Internet delle cose". Ho avuto le mie belle difficoltà a capire come riuscire ad utilizzarlo in modalità bidirezionale: in Internet trovate l'esempio per il controllo di un singolo relè senza la possibilità di capire se effettivamente il segnale è stato ricevuto dal dispositivo da remoto o meglio tramite un APP.<br />
Partendo da questo esempio base sono riuscito ad utilizzare più uscite ma in particolar modo ho trovato un sistema che mi permette di ricevere un messaggio dal NodMCU che mi indichi che "ha capito" cosa deve fare.<br />
Per programmare il NodeMCU basato sul chip WiFi ESP8266 è sufficiente l'IDE per Arduino, in molti casi però va sostituito il firmware e l'IDE va integrato con il plugin per l'ESP8266.<br />
<br />
<a name='more'></a>In questo post non entrerò nel dettaglio di come farlo, in rete trovate di tutto di più come ad esempio <a href="https://nodemcu.readthedocs.io/en/dev/en/flash/">qui</a> o <a href="https://hackerstribe.com/2015/esp8266-flashare-il-firmware-nodemcu/">qui</a>.<br />
Per la programmazione dell'APP per Android ho usato la programmazione a blocchi messo a disposizione dal MIT a questo indirizzo <a href="http://ai2.appinventor.mit.edu/">http://ai2.appinventor.mit.edu/.</a><br />
<br />
<b>Passiamo ora al listato per "Arduino".</b><br />
<br />
<br />
<i>#include <ESP8266WiFi.h></i><br />
<br />
<i>const char* ssid = "<span style="background-color: yellow;">SSH NETWORK</span>"; // <span style="color: red;">Nome della rete alla quale collegarsi</span></i><br />
<i>const char* password = "<span style="background-color: yellow;">PASSWORD</span>"; // <span style="color: red;">Password della rete</span></i><br />
<i><br /></i>
<i><br /></i>
<i>// Mappatura dei PIN digitali e analogico del NodeMCU</i><br />
<i><br /></i>
<i>#ifndef Pins_Arduino_h</i><br />
<i>#define Pins_Arduino_h</i><br />
<i><br /></i>
<i>#include "../generic/common.h"</i><br />
<i><br /></i>
<i>static const uint8_t SDA = 4;</i><br />
<i>static const uint8_t SCL = 5;</i><br />
<i><br /></i>
<i>static const uint8_t LED_BUILTIN = 16;</i><br />
<i>static const uint8_t BUILTIN_LED = 16;</i><br />
<i><br /></i>
<i>static const uint8_t D0 = 16;</i><br />
<i>static const uint8_t D1 = 5;</i><br />
<i>static const uint8_t D2 = 4;</i><br />
<i>static const uint8_t D3 = 0;</i><br />
<i>static const uint8_t D4 = 2;</i><br />
<i>static const uint8_t D5 = 14;</i><br />
<i>static const uint8_t D6 = 12;</i><br />
<i>static const uint8_t D7 = 13;</i><br />
<i>static const uint8_t D8 = 15;</i><br />
<i>static const uint8_t D9 = 3;</i><br />
<i>static const uint8_t D10 = 1;</i><br />
<i><br /></i>
<i>#endif /* Pins_Arduino_h */</i><br />
<i><br /></i>
<i> // Inizializzazione delle variabili riguardanti i PIN di controllo della scheda relè</i><br />
<br />
<i>int ledPin_A = D1; // A = PIN D1</i><br />
<i>int ledPin_B = D2; // B = PIN D2</i><br />
<i>int ledPin_C = D3; // C = PIN D3</i><br />
<i>int ledPin_D = D5; // D = PIN D5</i><br />
<i><br /></i>
<i>int value_A = LOW;</i><br />
<i>int value_B = LOW;</i><br />
<i>int value_C = LOW;</i><br />
<i>int value_D = LOW;</i><br />
<i><br /></i>
<i>String stato_led1;</i><br />
<i>String stato_led2;</i><br />
<i>String stato_led3;</i><br />
<i>String stato_led4;</i><br />
<i><br /></i>
<i>WiFiServer server(<span style="background-color: yellow;">8888</span>); // <span style="color: red;">Attivazione del Server sulla porta 8888</span></i><br />
<i><br /></i>
<i> // Setup </i><br />
<i>void setup() {</i><br />
<i> Serial.begin(115200); // Apertura della comunicazione seriale</i><br />
<i> delay(10);</i><br />
<br />
<i> // Configurazione dei PIN come uscita digitale</i><br />
<i><br /></i>
<i> pinMode(ledPin_A, OUTPUT);</i><br />
<i> digitalWrite(ledPin_A, LOW);</i><br />
<i> </i><br />
<i> pinMode(ledPin_B, OUTPUT);</i><br />
<i> digitalWrite(ledPin_B, LOW);</i><br />
<i> </i><br />
<i> pinMode(ledPin_C, OUTPUT);</i><br />
<i> digitalWrite(ledPin_C, LOW);</i><br />
<i> </i><br />
<i> pinMode(ledPin_D, OUTPUT);</i><br />
<i> digitalWrite(ledPin_D, LOW);</i><br />
<br />
<i> // Connessione alla rete WiFi</i><br />
<i> Serial.println();</i><br />
<i> Serial.println();</i><br />
<i> Serial.print("Connesso a ");</i><br />
<i> Serial.println(ssid);</i><br />
<br />
<i> WiFi.begin(ssid, password);</i><br />
<br />
<i> while (WiFi.status() != WL_CONNECTED) {</i><br />
<i> delay(500);</i><br />
<i> Serial.print(".");</i><br />
<i> }</i><br />
<i> Serial.println("");</i><br />
<i> Serial.println("WiFi connesso");</i><br />
<br />
<i> // Avvio server</i><br />
<i> server.begin();</i><br />
<i> Serial.println("Server avviato");</i><br />
<br />
<i> // Stampa IP address</i><br />
<i> Serial.print("Usa questo URL per connetterti: ");</i><br />
<i> Serial.print("http://<span style="background-color: yellow;">192.168.1.104</span>"); // <span style="background-color: red;">indirizzo IP assegnato dal router</span></i><br />
<i> Serial.print(WiFi.localIP());</i><br />
<i> Serial.println("/");</i><br />
<br />
<i>}</i><br />
<br />
<i>void loop() {</i><br />
<i> // Controllo se il server è connesso</i><br />
<i> WiFiClient client = server.available();</i><br />
<i> if (!client) {</i><br />
<i> return;</i><br />
<i> }</i><br />
<br />
<i> // Attendo l'invio di dati dal server</i><br />
<i> Serial.println("nuovo client");</i><br />
<i> while(!client.available()){</i><br />
<i> delay(1);</i><br />
<i> }</i><br />
<br />
<i> // Leggo la prima linea di richiesta</i><br />
<i> String request = client.readStringUntil('\r');</i><br />
<i> Serial.println(request);</i><br />
<i><br /></i>
<i> </i><br />
<i> client.flush();</i><br />
<i><br /></i>
<i> // Verifico la richiesta di attivazione dell'uscita "A"</i><br />
<br />
<i> if (request.indexOf("/LED=ON_A") != -1) {</i><br />
<i> digitalWrite(ledPin_A, HIGH);</i><br />
<i> value_A = HIGH;</i><br />
<i> }</i><br />
<i> if (request.indexOf("/LED=OFF_A") != -1) {</i><br />
<i> digitalWrite(ledPin_A, LOW);</i><br />
<i> value_A = LOW;</i><br />
<i> }</i><br />
<i><br /></i>
<i> // Verifico la richiesta di attivazione dell'uscita "B"</i><br />
<i><br /></i>
<i> if (request.indexOf("/LED=ON_B") != -1) {</i><br />
<i> digitalWrite(ledPin_B, HIGH);</i><br />
<i> value_B = HIGH;</i><br />
<i> }</i><br />
<i> if (request.indexOf("/LED=OFF_B") != -1) {</i><br />
<i> digitalWrite(ledPin_B, LOW);</i><br />
<i> value_B = LOW;</i><br />
<i> }</i><br />
<i><br /></i>
<i> // Verifico la richiesta di attivazione dell'uscita "C"</i><br />
<i> </i><br />
<i> if (request.indexOf("/LED=ON_C") != -1) {</i><br />
<i> digitalWrite(ledPin_C, HIGH);</i><br />
<i> value_C = HIGH;</i><br />
<i> }</i><br />
<i> if (request.indexOf("/LED=OFF_C") != -1) {</i><br />
<i> digitalWrite(ledPin_C, LOW);</i><br />
<i> value_C = LOW;</i><br />
<i> }</i><br />
<i> </i><br />
<i> // Verifico la richiesta di attivazione dell'uscita "D"</i><br />
<i> </i><br />
<i> if (request.indexOf("/LED=ON_D") != -1) {</i><br />
<i> digitalWrite(ledPin_D, HIGH);</i><br />
<i> value_D = HIGH;</i><br />
<i> }</i><br />
<i> if (request.indexOf("/LED=OFF_D") != -1) {</i><br />
<i> digitalWrite(ledPin_D, LOW);</i><br />
<i> value_D = LOW;</i><br />
<i> }</i><br />
<br />
<i> // Assegno i valori LOW o HIGH ai 4 PIN</i><br />
<i> // digitalWrite(ledPin, value);</i><br />
<br />
<i> // Return the response</i><br />
<i> // Pagina WEB di risposta</i><br />
<i> client.println("HTTP/1.1 200 OK");</i><br />
<i> client.println("Content-Type: text/html");</i><br />
<i> client.println(""); // do not forget this one</i><br />
<i> client.println("<!DOCTYPE HTML>");</i><br />
<i> client.println("<html>");</i><br />
<br />
<i> client.print("Led A pin is now: ");</i><br />
<br />
<i> if(value_A == HIGH) {</i><br />
<i> client.print("On");</i><br />
<i> stato_led1="A1";</i><br />
<i> } else {</i><br />
<i> client.print("Off");</i><br />
<i> stato_led1="A0";</i><br />
<i> }</i><br />
<i> client.println("<br>");</i><br />
<i> client.println("<a href=\"/LED=ON_A\"\"><button>Turn On </button></a>");</i><br />
<i> client.println("<a href=\"/LED=OFF_A\"\"><button>Turn Off </button></a><br />"); </i><br />
<i> client.println("<br>");</i><br />
<i> client.println("</html>");</i><br />
<br />
<i> delay(10);</i><br />
<i><br /></i>
<i> client.print("Led B pin is now: ");</i><br />
<br />
<i> if(value_B == HIGH) {</i><br />
<i> client.print("On");</i><br />
<i> stato_led2="B1";</i><br />
<i> } else {</i><br />
<i> client.print("Off");</i><br />
<i> stato_led2="B0";</i><br />
<i> }</i><br />
<i> client.println("<br>");</i><br />
<i> client.println("<a href=\"/LED=ON_B\"\"><button>Turn On </button></a>");</i><br />
<i> client.println("<a href=\"/LED=OFF_B\"\"><button>Turn Off </button></a><br />"); </i><br />
<i> client.println("<br>");</i><br />
<i> client.println("</html>");</i><br />
<br />
<i> delay(10);</i><br />
<i> </i><br />
<i> client.print("Led C pin is now: ");</i><br />
<br />
<i> if(value_C == HIGH) {</i><br />
<i> client.print("On");</i><br />
<i> stato_led3="C1";</i><br />
<i> } else {</i><br />
<i> client.print("Off");</i><br />
<i> stato_led3="C0";</i><br />
<i> }</i><br />
<i> client.println("<br>");</i><br />
<i> client.println("<a href=\"/LED=ON_C\"\"><button>Turn On </button></a>");</i><br />
<i> client.println("<a href=\"/LED=OFF_C\"\"><button>Turn Off </button></a><br />"); </i><br />
<i> client.println("<br>");</i><br />
<i> client.println("</html>");</i><br />
<br />
<i> delay(10);</i><br />
<br />
<i> client.print("Led D pin is now: ");</i><br />
<br />
<i> if(value_D == HIGH) {</i><br />
<i> client.print("On");</i><br />
<i> stato_led4="D1";</i><br />
<i> } else {</i><br />
<i> client.print("Off");</i><br />
<i> stato_led4="D0";</i><br />
<i> }</i><br />
<i> client.println("<br>");</i><br />
<i> client.println("<a href=\"/LED=ON_D\"\"><button>Turn On </button></a>");</i><br />
<i> client.println("<a href=\"/LED=OFF_D\"\"><button>Turn Off </button></a><br />"); </i><br />
<i> client.println("<br>");</i><br />
<i><br /></i>
<i> //cambia url in funzione dello stato degli output</i><br />
<i> client.println("<meta http-equiv=\"refresh\" content=\"1;URL="+stato_led1+stato_led2+stato_led3+stato_led4+"\">");</i><br />
<i> </i><br />
<i> client.println("</html>");</i><br />
<br />
<i> delay(10);</i><br />
<i><br /></i>
<i> </i><br />
<i> Serial.println("Client disconnected");</i><br />
<i> Serial.println("");</i><br />
<br />
<i>}</i><br />
<i><br /></i>
<b>Per quanto riguarda invece la parte riguardante l'APP per Android potete collegarvi a <a href="http://ai2.appinventor.mit.edu/?locale=en#6392537146458112">questo link</a> oppure scaricarlo per poi importarlo da <a href="https://www.dropbox.com/s/xjbcrmj5grc705m/NodeMCu_4RELE_V06_OASILUG.aia?dl=0">qui</a>.</b><br />
<br />Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com25tag:blogger.com,1999:blog-7805318852466416983.post-27362070947320552142016-02-29T22:12:00.000+01:002016-02-29T22:12:40.534+01:00Installare OwnCloud: il nostro Cloud personale<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6Lq62ILPVQkJQCZ7eKkPGgNKy9D6G0Pkr6RvADCMno0MSyDKzASluoEUK_or17RUK09hJ7mlgqKZ9UD3KKJlVrdYuHaDdQeSJod3WLt0n_FrSyQqVZRRkHVfFnzdIgdeBWYW3YJWMTIeA/s1600/owncloud.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="127" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6Lq62ILPVQkJQCZ7eKkPGgNKy9D6G0Pkr6RvADCMno0MSyDKzASluoEUK_or17RUK09hJ7mlgqKZ9UD3KKJlVrdYuHaDdQeSJod3WLt0n_FrSyQqVZRRkHVfFnzdIgdeBWYW3YJWMTIeA/s320/owncloud.png" width="320" /></a></div>
Dopo un mesetto abbondante di prove e installazioni su diversi dispositivi mi sento pronto a spiegarvi come installare OwnCloud e configurare i parametri fondamentali per ottenere un server Linux stabile e performante.<br />
Se state leggendo questo post molto probabilmente avete avuto qualche problema con l'istallazione seguendo le indicazioni di altri siti o semplicemente non avete trovato alcuni dettagli che spero possiate trovare nel mio blog.<br />
Innanzitutto che senso può avere il possedere un proprio cloud personale residente in una macchina di vostra proprietà quando colossi come Google vi offrono un sacco di spazio e servizi gratuitamente? Beh, per quanto mi riguarda il fatto che altri possano accedere a miei file, documenti e foto personali mi può dar un po' fastidio. Secondo motivo per me più significativo è che da nerd/geek che sono ho sempre la volontà di sperimentare cose nuove, amo le sfide e nutrirmi di soddisfazioni nel raggiungimento gli obiettivi.<br />
Bando alle ciance e rimbocchiamoci le maniche.<br />
<br />
<a name='more'></a>Per prima cosa abbiamo molto probabilmente necessità di collegarci con i nostri dispositivi al nostro server anche fuori casa ma per far ciò dobbiamo conoscere l'IP che il nostro provider ci ha assegnato. Il sistema più pratico è quello di affidarci ad aziende che gestiscono i cosiddetti <b>Dynamic DNS </b>e che ci assegnano un dominio che punta costantemente al nostro IP di casa anche se quest'ultimo cambia spesso. Personalmente ho testato positivamente il servizio gratuito offerto da <b><a href="http://www.noip.com/">NO-IP.</a></b><br />
Una volta registrati al servizio, confermata la vostra email, scelto il nome del dominio e aggiunto il vostro host (addHost) procedete in questo modo (in verde i comandi fondamentali da inserire nel terminale, in giallo quelli ausiliari):<br />
<br />
<div style="text-align: center;">
<b>CONFIGURIAMO NO-IP</b></div>
<br />
1. <b>aprite il terminale</b><br />
2. <span style="background-color: lime;">mkdir /home/<b><i>nome_utente</i></b>/noip </span><br />
3. <span style="background-color: lime;">cd /home/<i><b>nome_utente</b></i>/noip</span><br />
4. <span style="background-color: lime;">wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz</span><br />
5. <span style="background-color: lime;">tar vzxf noip-duc-linux.tar.gz</span><br />
6. <span style="background-color: lime;">cd noip-2.1.9-1</span><br />
<br />
<u>Nel caso non fosse installato il comando <b>make</b> procedete con l'installazione di quest'ultimo, in caso contrario passate al punto 7:</u><br />
<br />
a) <span style="background-color: yellow;">sudo apt-get install make</span><br />
b) <span style="background-color: yellow;">sudo apt-get install build-essential</span><br />
<br />
7. <span style="background-color: lime;">make</span><br />
8. <span style="background-color: lime;">sudo make install </span><br />
<br />
<u>Quando vi verranno richiesti inserite <b>login</b> e <b>password</b> con i quali vi siete registrati su NO-IP.</u><br />
<u><br /></u>
<u>Creiamo ed editiamo il seguente file di testo con il seguente comando:</u><br />
<br />
9. <span style="background-color: lime;">sudo nano /etc/init.d/noip2</span><br />
<br />
<u>Incolliamo quanto segue (premendo SHIFT + CTRL + V contemporaneamente)</u><br />
<br />
#! /bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: noip2<br />
# Required-Start: $local_fs $remote_fs $network $syslog $named<br />
# Required-Stop: $local_fs $remote_fs $network $syslog $named<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
# Short-Description: Start/stop noip2<br />
### END INIT INFO<br />
<br />
case "$1" in<br />
start)<br />
echo "Starting noip2."<br />
/usr/bin/noip2<br />
;;<br />
stop)<br />
echo -n "Shutting down noip2."<br />
killproc -TERM /usr/bin/noip2<br />
;;<br />
*)<br />
echo "Usage: $0 {start|stop}"<br />
exit 1<br />
esac<br />
exit 0<br />
<br />
<u>A questo punto digitiamo:</u><br />
<u><br /></u>
10. <span style="background-color: lime;">sudo update-rc.d noip2 defaults</span><br />
11. <span style="background-color: lime;">sudo chmod 755 /usr/local/bin/noip2</span><br />
12. <span style="background-color: lime;">sudo chown root:root /usr/local/bin/noip2</span><br />
13. <span style="background-color: lime;">sudo chmod 755 /etc/init.d/noip2</span><br />
14. <span style="background-color: lime;">sudo chown root:root /etc/init.d/noip2</span><br />
15. <span style="background-color: lime;">sudo chmod 755 /usr/local/etc/no-ip2.conf</span><br />
16. <span style="background-color: lime;">sudo chown root:root /usr/local/etc/no-ip2.conf</span><br />
<span style="background-color: lime;"><br /></span>
17. <span style="background-color: lime;">sudo nano /etc/rc.local</span><br />
<br />
<div>
<u>Prima della riga "exit 0" incollate:</u><br />
<br />
/etc/init.d/noip2 start<br />
<br />
<u>Ora procediamo con l'installazione di <b>owncloud</b>:</u><br />
<br />
18. <span style="background-color: lime;">sudo apt-get install apache2 php5 php5-gd php-xml-parser php5-intl php5-sqlite php5-mysql smbclient curl libcurl3 php5-curl mysql-server mysql-client phpmyadmin</span><br />
<br />
<u>Scegliete il repository owncloud secondo la vostra distribuzione Linux</u> <a href="https://download.owncloud.org/download/repositories/stable/owncloud/">https://download.owncloud.org/download/repositories/stable/owncloud/</a><br />
<br />
19. <span style="background-color: lime;">sudo sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Ubuntu_15.10/ /' >> /etc/apt/sources.list.d/owncloud.list"</span><br />
20. <span style="background-color: lime;">sudo apt-key add - < Release.key</span><br />
21. <span style="background-color: lime;">sudo apt-get update</span><br />
22. <span style="background-color: lime;">sudo apt-get install owncloud</span><br />
23. <span style="background-color: lime;">sudo chown -R www-data:www-data /var/www/</span><br />
<br />
<u>riavviamo il PC</u><br />
<br />
24. <span style="background-color: lime;">sudo reboot</span><br />
<br />
<u>Nel caso siate interessati ad archiviare i dati in un HardDisk esterno seguite quanto segue altrimenti passate alla <span style="background-color: red;">configurazione.</span></u><br />
<u><br /></u>
<u>Montiamo HDD esterno</u><br />
a. <span style="background-color: yellow;">sudo blkid</span><br />
<span style="background-color: yellow;"><u><br /></u></span>
<u>Prendete nota dell'UUID</u><br />
b. <span style="background-color: yellow;">sudo mkdir /media/owncloud</span><br />
<span style="background-color: yellow;"><br /></span>
<u>Modificate il file /etc/fstab</u><br />
c. <span style="background-color: yellow;">sudo nano /etc/fstab</span><br />
<span style="background-color: yellow;"><u><br /></u></span>
<u>Inserite</u> <i><b>UUID_DELLA_PARTIZIONE /media/PUNTO_DI_MOUNT</b></i> ext4 rw,defaults 0 0<br />
<br />
d. <span style="background-color: yellow;">sudo mount -a</span><br />
<span style="background-color: yellow;"><u><br /></u></span>
<u>Verifichiamo se tutto funziona</u><br />
<br />
e. <span style="background-color: yellow;">sudo umount -a</span><br />
f. <span style="background-color: yellow;">sudo mount -a</span><br />
<span style="background-color: yellow;"><br /></span><u>
Creiamo la cartella data e cambiamo il proprietario della cartella</u><br />
<span style="background-color: yellow;"><br /></span>
g. <span style="background-color: yellow;">cd /media/owncloud</span><br />
h. <span style="background-color: yellow;">sudo mkdir data</span><br />
<span style="background-color: yellow;"></span><br />
i. <span style="background-color: yellow;">sudo chown -R www-data:www-data /media/owncloud/</span><br />
<span style="background-color: yellow;"><br /></span>
<br />
<u><span style="background-color: red;">Configuriamo</span> OwnCloud utilizzando il browser ed inserendo l'IP del server</u><b> </b><b>#</b><b>##.###.###.###</b><br />
<u><br /></u>
inserite nella barra degli indirizzi <span style="background-color: cyan;"><b>###.###.###.###</b>/phpmyadmin</span> e create il database <span style="background-color: cyan;">owncloud</span><br />
<br />
ora inserite <span style="background-color: cyan;"><b>###.###.###.###</b>/owncloud</span><br />
<br />
<span style="background-color: cyan;">impostate utente password</span><br />
<br />
percorso della cartella data se diversa da quella di default ad esempio se avete installato l'HDD esterno <span style="background-color: cyan;">/media/owncloud/data</span><br />
<span style="background-color: lime;"><br /></span>
il nome del <span style="background-color: cyan;">database mysql</span> poco prima creato<br />
<br />
<div style="text-align: center;">
<b>ORA IL VOSTRO È INSTALLATO MA NON ANCORA OTTIMIZZATO. SEGUENDO LE PROSSIME INDICAZIONI AVRETE UN SERVER OWNCLOUD MAGGIORMENTE PERFORMANTE.</b></div>
<div style="text-align: center;">
<br /></div>
<b>Per attivare SSL </b>-> <a href="http://www.chimerarevo.com/linux/guida-owncloud-cloud-personale-180906/">http://www.chimerarevo.com/linux/guida-owncloud-cloud-personale-180906/</a><br />
<br />
25. <span style="background-color: lime;">sudo apt-get install openssl</span><br />
26. <span style="background-color: lime;">sudo a2enmod ssl</span><br />
27. <span style="background-color: lime;">sudo mkdir /etc/apache2/ssl</span><br />
28. <span style="background-color: lime;">sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/apache2/ssl/owncloud.key -out /etc/apache2/ssl/owncloud.crt</span><br />
<span style="background-color: lime;"><br /></span>
<u>Ora inseriamo i nostri dati</u><br />
<u><br /></u>
29. <span style="background-color: lime;">sudo nano /etc/apache2/sites-available/default-ssl.conf</span><br />
<u>aggiungere o modificare con le righe seguenti:</u><br />
<u><br /></u>
ServerName <i><b>mycloud.ddns.net </b>(l'indirizzo del nostro cloud)</i><br />
SSLEngine on<br />
SSLCertificateFile /etc/apache2/ssl/owncloud.crt<br />
SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key<br />
<br />
30. <span style="background-color: lime;">sudo a2ensite default-ssl</span><br />
31. <span style="background-color: lime;">service apache2 reload</span><br />
32. <span style="background-color: lime;">sudo service apache2 restart</span><br />
<b><br /></b>
<b>Per risolvere l'avviso</b> <i><b>"L'intestazione HTTP "Strict-Transport-Security" non è configurata con un valore almeno di "15768000" secondi."</b></i><br />
<i><b><br /></b></i>
32. <span style="background-color: lime;">sudo nano /etc/apache2/sites-available/default-ssl.conf</span><br />
<br />
<u>inserite dopo la voce</u> <b>ServerName <i>...</i></b><br />
<br />
<IfModule mod_headers.c><br />
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"<br />
</IfModule><br />
<br />
33. <span style="background-color: lime;">sudo a2enmod headers</span><br />
34. <span style="background-color: lime;">sudo service apache2 restart</span><br />
<br />
<b>Per attivare la menchache</b><br />
<b><br /></b>
Per distribuzioni Debian/Ubuntu/Mint installate <b>php-apc </b>e riavviate il vostro Web server.<br />
<br />
35. <span style="background-color: lime;">sudo apt-get install php-apc</span><br />
36. <span style="background-color: lime;">sudo service apache2 restart</span><br />
<br />
37. <span style="background-color: lime;">nano /var/www/owncloud/config/config.php</span><br />
<span style="background-color: lime;"><br /></span>
<u>inserite:</u><br />
<br />
<br />
'memcache.local' => '\OC\Memcache\APC',<br />
<br />
<div style="text-align: center;">
<b>BENE. ORA DIVERTITI AD INSTALLARE APPLICAZIONI, CONFIGURARE SERVIZI AGGIUNTIVI, CREARE UTENTI ACCEDENDO COME AMMINISTARTORE NEL MENÙ ADMIN.</b></div>
<br />
Per accedere ai vostri dati anche da remoto potete installare i diversi client presenti negli store della maggior parte dei sistemi operativi. Per maggiori informazioni visitate <a href="https://owncloud.org/install/">https://owncloud.org/install/</a><br />
Credo di aver scritto tutto il necessario, buon cloud personale a tutti !!!<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com8tag:blogger.com,1999:blog-7805318852466416983.post-85253975120371466812016-01-07T13:31:00.001+01:002016-01-07T13:31:46.593+01:00Parte 6/6: colleghiamo l'igrometro<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIeJxo1MOd_tuN7xtLGbJUl8l48kyZQzB0Da4wCPMVCpGWzO-y0V4eQZrez2X2eizEjIXFlVZBhSYWQwsIvIw0VOM4OCKDVzxlBHzDE3IGQybJBY3JmV9jdjDlFZWu5tjY6SfvIQ_Wizl_/s1600/igrometro2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIeJxo1MOd_tuN7xtLGbJUl8l48kyZQzB0Da4wCPMVCpGWzO-y0V4eQZrez2X2eizEjIXFlVZBhSYWQwsIvIw0VOM4OCKDVzxlBHzDE3IGQybJBY3JmV9jdjDlFZWu5tjY6SfvIQ_Wizl_/s320/igrometro2.png" width="240" /></a></div>
Il modello che ho utilizzato e che vi consiglio è quello riportato in figura, purtroppo non è presente nessuna sigla per poterlo identificare.<br />
Il circuito che "controlla" la "forchetta" che misurerà l'umidità del terreno va collegata ai 5V oppure ai 3.3V, l'unica differenza è che nel primo caso avrete 1024 intervalli nel secondo caso un numero proporzionale alla tensione applicata.<br />
Vi consiglio di non usare la forchetta in dotazione perché nel giro di poche settimane il rame presente verrà completamente eroso, usate due viti o due chiodi e cambiateli quando particolarmente ossidati.<br />
Nel mio caso l'ho alimentato con i 3.3V e per calcolare l'ipotetica umidità del terreno ho utilizzato le seguenti righe di codice:<br />
<a name='more'></a><br />
<br />
val_igro = analogRead(<span style="color: blue;">in_igro</span>); <br /> val_igro = ((669-val_igro)/669)*100;<br />
<br />
Dove <span style="color: blue;">in_gro</span> nel mio caso è A2. Il valore 669 è empirico e corrisponde al valore del mio igrometro quando non è immerso nel terreno, alimentandolo a 5V probabilmente il valore è prossimo ai 1024.<br />
Dove posizionarlo e a che profondità rimane a voi sperimentarlo come il valore al disotto del quale far partire l'irrigazione del vostro giardino o porzione di giardino.<br />
Per completezza vi consiglio di analizzare il codice dell'intero progetto presente in <a href="http://oasilug.blogspot.it/2014/03/semplice-esempio-di-domotica-con.html">questo post.</a>Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com0tag:blogger.com,1999:blog-7805318852466416983.post-53177782262030461702016-01-05T21:37:00.002+01:002016-01-05T21:41:25.435+01:00Parte 5/6: il modulo modulo RTC DS1307<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioHKzzvE7UpKdAiphDUeD75h2haFkBV4rD8y252NaBLhRTcCHSnYJwBs4QBc7cMAmRvE0hfhAGWzZGxvZSNThcnTLNi4q2xfQbpdDWTJpPF4CpSGawuMVpEvPQJooBf3-0cyIH_lZBlFYi/s1600/RTC_connection.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioHKzzvE7UpKdAiphDUeD75h2haFkBV4rD8y252NaBLhRTcCHSnYJwBs4QBc7cMAmRvE0hfhAGWzZGxvZSNThcnTLNi4q2xfQbpdDWTJpPF4CpSGawuMVpEvPQJooBf3-0cyIH_lZBlFYi/s320/RTC_connection.jpg" width="320" /></a>Di fianco il collegamento del modulo RTC DS1307 ad Arduino. Questo economico dispositivo, completo di batteria a tampone, è un orologio completo di calendario.<br />
<b>Con Arduino possiamo modificare la data e l'ora mediante il seguente codice:</b><br />
<br />
<br />
<br />
<br />
<a name='more'></a><br />
<br />
<br />
<br />
<br />
//includo la libreria per la<br />
//comunicazione su bus I2C<br />
#include <Wire.h><br />
<br />
void setup()<br />
{<br />
//inizializzo la seriale<br />
Serial.begin(9600);<br />
<br />
//inizializzo la libreria<br />
Wire.begin();<br />
<br />
//attivo la comunicazione con il DS1307<br />
//l'indirizzo dell'RTC è 0x68<br />
<br />
Wire.beginTransmission(0x68);<br />
<br />
//il primo byte stabilisce il registro<br />
//iniziale da scivere<br />
<br />
<span style="color: blue;">Wire.write((byte)0x00);</span><br />
<br />
//specifico il tempo e la data<br />
<br />
<span style="color: blue;">Wire.write((byte)0x00); //1° byte SECONDI da 0x00 a 0x59</span><br />
<span style="color: blue;"> Wire.write((byte)0x05); //2° byte MINUTI da 0x00 a 0x59</span><br />
<span style="color: blue;"> Wire.write((byte)0x80 | 0x08); //3° byte ORE da 0x00 a 0x24</span><br />
<span style="color: blue;"> Wire.write((byte)0x06); //4° byte GIORNO della settimana da 0x01 a 0x07</span><br />
<span style="color: blue;"> Wire.write((byte)0x07); //5° byte GIORNO del mese da 0x00 a 0x31</span><br />
<span style="color: blue;"> Wire.write((byte)0x06); //6° byte MESE da 0x00 a 0x12</span><br />
<span style="color: blue;"> Wire.write((byte)0x14); //7° byte ANNO 0x00 a 0x99</span><br />
<span style="color: blue;"> Wire.endTransmission();</span><br />
}<br />
<br />
<br />
<b>Il programma, quando viene eseguito da Arduino, regolerà data e ora del RTC DS1307 quindi per evitare che ad ogni riavvio memorizzi gli stessi valori vi consiglio di ricaricare il programma ed eliminare o commentare il codice in blu.</b><br />
<br />
<b>Di seguito il codice per leggere e stampare data e ora.</b><br />
<b><br /></b>
<br />
void loop()<br />
{<br />
//inizzializza la trasmissione partendo<br />
//dall'indirizzo 0x00<br />
Wire.beginTransmission(0x68);<br />
Wire.write((byte)0x00);<br />
Wire.endTransmission();<br />
<br />
//richiedo 7 byte dal dispositivo con<br />
//indirizzo 0x68<br />
Wire.requestFrom(0x68, 7);<br />
//regupero i 7 byte relativi ai<br />
//corrispondenti registri<br />
byte secondi = Wire.read();<br />
byte minuti = Wire.read();<br />
byte ora = Wire.read();<br />
byte giorno_sett = Wire.read();<br />
byte giorno_mese = Wire.read();<br />
byte mese = Wire.read();<br />
byte anno = Wire.read();<br />
<br />
Serial.print("Orario corrente: ");<br />
Serial.print(ora, HEX);<br />
Serial.print(":");<br />
Serial.print(minuti, HEX);<br />
Serial.print(":");<br />
Serial.println(secondi, HEX);<br />
<br />
Serial.print("Giorno della settimana: ");<br />
Serial.println(giorno_sett, HEX);<br />
<br />
Serial.print("Data corrente: ");<br />
Serial.print(giorno_mese, HEX);<br />
Serial.print("/");<br />
Serial.print(mese, HEX);<br />
Serial.print("/");<br />
Serial.println(anno, HEX);<br />
Serial.println();<br />
<br />
delay(1000);<br />
}<br />
<br />
<br />
<b>Per poter regolare successivamente il modulo mediante variabili dovete trasformare quest'ultime in valori binari tramite la seguente funzione:</b><br />
<b><br /></b>
<br />
// Convert normal decimal numbers to binary coded decimal<br />
byte decToBcd(byte val)<br />
{<br />
return ( (val/10*16) + (val%10) );<br />
}<br />
<br />
<b><br /></b>
<b>Per convertire un valore binario in decimale invece:</b><br />
<b><br /></b>
<br />
// Convert binary coded decimal to normal decimal numbers<br />
byte bcdToDec(byte val)<br />
{<br />
return ( (val/16*10) + (val%16) );<br />
}<br />
<br />Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com1tag:blogger.com,1999:blog-7805318852466416983.post-42190528532188213812016-01-05T13:05:00.000+01:002016-01-05T13:05:52.576+01:00Parte 4/6 : Tensione ed Intensità di corrente sotto controlloPer realizzare il controllo della potenza assorbita dall'impianto di casa avevo necessità di tenere sotto controllo Volt ed Ampere.<br />
Per realizzare ciò ho realizzato due circuiti indipendenti.<br />
<b>Per rilevare la tensione </b>ho preso spunto dallo schema seguente:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtHkelE0b90JjpmrQLehNu3NLtqAD-DQU43kNj5SUS0cO_CLbwd1WJtGa1EqgvCCAfiIWVYc7VK9jblaUs207LDWHAbq5xO0JaWDTZ2jQcqkKqdOjQ6aiXr-7uU871CCxBky_19taRxaUp/s1600/voltage.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtHkelE0b90JjpmrQLehNu3NLtqAD-DQU43kNj5SUS0cO_CLbwd1WJtGa1EqgvCCAfiIWVYc7VK9jblaUs207LDWHAbq5xO0JaWDTZ2jQcqkKqdOjQ6aiXr-7uU871CCxBky_19taRxaUp/s320/voltage.jpg" width="227" /></a></div>
<br />
<b>Voltage sensing electronics:</b><br />
1x 9V AC-AC Power Adapter<br />
1x 100kOhm resistor for step down voltage divider.<br />
1x 10kOhm resistor for step down voltage divider.<br />
2x 470kOhm (for voltage divider, any matching value resistor pair down to 10K)<br />
1x 10uF capacitor<br />
<br />
<b>Current sensing electronics</b>:<br />
1x CT sensor SCT-013-000<br />
1x Burden resistor 18 Ohms if supply voltage is 3.3V or 33 Ohms if supply voltage is 5V.<br />
2x 470kOhm (for voltage divider, any matching value resistor pair down to 10K)<br />
1x 10uF capacitor<br />
<a name='more'></a><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigsD3HWXM5PpjNsRSB_eo795PMeQghcaUWoXK1seqF5lUd0YyqMaVeV6yn0poycLVUob6bub70wcJXQ85TvigFuf1a1fgkKTqPZl799y0JkYbjP3780LOAQmOf8GjjpYev1dVAVppAzHs6/s1600/ACS712_Ampere.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="261" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigsD3HWXM5PpjNsRSB_eo795PMeQghcaUWoXK1seqF5lUd0YyqMaVeV6yn0poycLVUob6bub70wcJXQ85TvigFuf1a1fgkKTqPZl799y0JkYbjP3780LOAQmOf8GjjpYev1dVAVppAzHs6/s320/ACS712_Ampere.gif" width="320" /></a></div>
<br />
<b>Per rilevare l'assorbimento della corrente</b> ho utilizzato questo circuito con un sensore invasivo <b>ACS712</b> anche se nulla vi vieta di usare lo schema precedente con il <b>SCT-013-000</b> non invasivo.<br />
<br />
<br />Per la logica di programmazioni vi invito a scaricarvi il codice dell'intero progetto da <a href="http://oasilug.blogspot.it/2014/03/semplice-esempio-di-domotica-con.html">QUI</a>.Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com0tag:blogger.com,1999:blog-7805318852466416983.post-43626260499119758132015-12-31T15:53:00.002+01:002015-12-31T15:53:53.005+01:00Corso di informatica per bambini / ragazzi<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtXZl8HDLLziIgdAhGbtAvqojCUhMT1iE6Cn4oAqdDUCZInUt7Sf8b_iMLDC9c_Kk0NNZ-Aft9gvSeSqB73Z43GrABd4Oldf1tejPZIJMiEhPBX-b5WtezWTLtKSzhmr6u3U_96Yew4zRq/s1600/CORSO_12_2015.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtXZl8HDLLziIgdAhGbtAvqojCUhMT1iE6Cn4oAqdDUCZInUt7Sf8b_iMLDC9c_Kk0NNZ-Aft9gvSeSqB73Z43GrABd4Oldf1tejPZIJMiEhPBX-b5WtezWTLtKSzhmr6u3U_96Yew4zRq/s320/CORSO_12_2015.jpg" width="320" /></a></div>
<b>Tra il 28 e il 31 dicembre 2015</b> ci siamo cimentati nel <b>nostro primo corso di informatica per ragazzini </b>(8 - 13 anni) a Palazzolo dello Stella. Il "corso accelerato" aveva la presunzione di fornire una serie di nozioni base e impartire alcune terminologie informatiche in sole 4 ore distribuite in 4 giorni.<br />
L'impresa è avvenuta solo parzialmente ma ce lo aspettavamo visto il poco tempo a disposizione.<br />
Di seguito le slide proiettate nelle diverse giornate del corso (clicca sul titolo della lezione per visualizzarle).<br />
<a name='more'></a><br />
<br />
<a href="https://docs.google.com/presentation/d/1u1LTAN-uG1x7i62ikrgktB7ZVQIA1v_VENfyj2AYtOE/edit?usp=sharing"><b>#1 Cos'è un COMPUTER</b></a><br />
In questa fase sono stati forniti i concetti base di cos'è e come è fatto un computer.<br />
Software e Hardware. Scheda madre, CPU, RAM ecc.<br />
<br />
<a href="https://docs.google.com/presentation/d/1Gdpe-gbTXVyB52EJIlse84LUpl8PjPLntYtyOfnTgFs/edit?usp=sharing"><b>#2 Il SISTEMA OPERATIVO.</b></a><br />
A cosa serve e come può essere suddiviso. I principali SO e la loro diffusione sia a livello Server, Desktop che nel Mobile. Prove pratiche su cartelle e file.<br />
<br />
<a href="https://docs.google.com/presentation/d/1tmvQ7Quxn5F_424kbDYnQFe6q1EZPogS72-AEtW-pfE/edit?usp=sharing"><b>#3 Lavorare con LIBREOFFICE.</b></a><br />
L'alternativa multi-piattaforma a Office della Microsoft. Brevi esempi pratici su Writer, Calc ed Impress.<br />
<br />
<a href="https://docs.google.com/presentation/d/1BMhfu3xjQVsr0E-UVW7y_iGgUpGNJLJPSnmJl6hwJTM/edit?usp=sharing"><b>#4 Introduzione alla PROGRAMMAZIONE.</b></a><br />
Fondamentalmente la lezione si è concentrata su prove pratiche e sulla proiezione di video istruttivi presenti su <a href="http://code.org/">code.org</a><br />
Breve spiegazione iniziale su cosa significa programmare e quali sono i Linguaggi di programmazione più diffusi.<br />
<br />Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com0tag:blogger.com,1999:blog-7805318852466416983.post-21789020696734267662015-11-12T12:43:00.003+01:002015-11-12T12:49:34.706+01:00OrangePi-PC - Un "Raspberry PI" economico ma performante<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmwXLSTHQhEDngyCn-xQjTmeFE8rElRyVYpQUUM-BuVEOzcqxZKPyifBz3bQFIm1Grod2l4uBQ5kIyQMV0njY_H9pvbX3rkp3RITp8gjC3KY6BFCBY4uESqc9pgdgJlkpAoAOONDCrBmO0/s1600/orangepipc_info.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmwXLSTHQhEDngyCn-xQjTmeFE8rElRyVYpQUUM-BuVEOzcqxZKPyifBz3bQFIm1Grod2l4uBQ5kIyQMV0njY_H9pvbX3rkp3RITp8gjC3KY6BFCBY4uESqc9pgdgJlkpAoAOONDCrBmO0/s320/orangepipc_info.jpg" width="237" /></a></div>
Nel mese di settembre sono venuto a conoscenza di un mini PC dello stesso formato e con il GPIO (general purpose input/output) compatibile con <a href="https://www.raspberrypi.org/products/raspberry-pi-2-model-b/">Raspberry PI 2</a>. Ne ho acquistati due completi di case trasparente e alimentatore su <a href="http://it.aliexpress.com/">Aliexpress</a>, sito cinese gestito dal colosso Alibaba.<br />
<b>Il costo per un singolo <a href="http://www.orangepi.org/orangepipc">Orange PI PC</a>? 15$ per la sola scheda!</b><br />
<br />
Traducendo tutto in Euro ho speso:<br />
- 16.20€ per l'OrangePi PC (spese spedizione incluse)<br />
- 5.90€ per il case (spese spedizione incluse)<br />
- 6.60€ per l'alimentatore (spese spedizione incluse)<br />
- 9€ per una SD SanDisk Classe 10 da 16 GByte (spese spedizione incluse)<br />
<br />
<div style="text-align: left;">
<b>TOTALE = 37.7 €</b></div>
<br />
Per intenderci con questa cifra riuscite ad acquistare solo un Raspberry PI B+ nudo e crudo.<br />
<br />
Detto questo, elenco di seguito le caratteristiche tecniche del mini PC.:<br />
<a name='more'></a><br />
- <b>CPU</b> AllWinner H3 (<b>Arm A7 QuadCore a 1.6 GHz</b>)<br />
- <b>1 GByte di RAM</b><br />
- <b>GPU</b> <b>Mali400</b>MP2 a <b>600MHz</b><br />
- 3 USB<br />
- 1 USB OTG<br />
- 1 Uscita HDMI<br />
- Ethernet 10/100 MBit<br />
- 1 Uscita Video/Audio Analogica<br />
- Sensore ad infrarossi<br />
- Microfono<br />
- Alimentazione 5V 2A<br />
- Interfaccia per WEBCAM<br />
- 40 PIN GPIO compatibile Raspberry PI<br />
<br />
Ai fini pratici non ci troviamo un mostro per le mani ma sicuramente ha <b>un ottimo rapporto prezzo/prestazioni.</b> Potete usarlo per navigare in Internet, lo scrolling delle pagine è discreto mentre la visualizzazione dei filmati su Youtube è appena sufficiente. Purtroppo non si può pretendere molto da un comparto video pari a quello presente negli smartphone economici.<br />
Non lo consiglio come Media Center piuttosto come WEB Server in quanto in questo contesto le prestazioni sono decisamente più performanti di un Raspberry B+.<br />
Stiamo parlando di un prodotto destinato ai makers, usatelo principalmente per realizzare i vostri progetti, magari interfacciatelo ad uno o più Arduino.<br />
Di seguito il video che ho realizzato per chiarire la procedura corretta di installazione dell'Orange PI PC.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/PxNTDgVUhHE" width="560"></iframe>
<br />
Qui, invece, una serie di link utili per la corretta installazione del sistema operativo, vi ricordo che se non utilizzate la distribuzione Linux specifica per questo prodotto il led rosso non si accenderà e quindi non verrà eseguito alcun codice.<br />
<div style="text-align: center;">
<br /></div>
<a href="http://www.orangepi.org/quickstart/start_3dd156157e45feb8b482004d81ddbe.html">http://www.orangepi.org/quickstart/start_3dd156157e45feb8b482004d81ddbe.html</a> (Guida rapida in Inglese)<br />
<a href="http://www.orangepi.org/orangepipc">http://www.orangepi.org/orangepipc</a> (specifiche tecniche)<br />
<a href="http://www.orangepi.org/downloadresources/">http://www.orangepi.org/downloadresources/</a> (download SO Linux)<br />
<a href="http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=342">http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=342</a> (altri SO Linux disponibili)<br />
<a href="http://www.7-zip.org/">http://www.7-zip.org/</a> (7Zip programma per estrarre il file immagine dal file scaricato - per Windows)<br />
<a href="https://www.sdcard.org/downloads/formatter_4/">https://www.sdcard.org/downloads/formatter_4/</a> (SD Card Formatter - per Windows)<br />
<a href="http://sourceforge.net/projects/win32diskimager/">http://sourceforge.net/projects/win32diskimager/</a> (Win32 Disk Imager - per Windows)<br />
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com7tag:blogger.com,1999:blog-7805318852466416983.post-35942962580530699082015-09-27T09:44:00.001+02:002015-09-27T09:44:08.194+02:00Sintesi dell'incontro del 24.09.2015: I miei dati. Dove sono? Chi li usa? Come?<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNWdD0pNviMBOVltD2MQ8HIHYz1oJMYn1ZRe0_AVdzuhfSKDU4YhSVpaHxuUYmIkNLXCGXhO9JCqT8sGAZCAWwxlkIZyGNxFw0-zUAm5Y58PsqfUl6c4i-HSFukFaCa34q_H1wIWzNzBbq/s1600/partecipazione-confermata.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNWdD0pNviMBOVltD2MQ8HIHYz1oJMYn1ZRe0_AVdzuhfSKDU4YhSVpaHxuUYmIkNLXCGXhO9JCqT8sGAZCAWwxlkIZyGNxFw0-zUAm5Y58PsqfUl6c4i-HSFukFaCa34q_H1wIWzNzBbq/s320/partecipazione-confermata.png" width="320" /></a></div>
Il <b>24 settembre </b>si è tenuto al "Polo scientifico Luigi Danieli" un convegno intitolato "<b>I miei dati. Dove sono? Chi li usa? Come?</b>" organizzato da "Friuli Innovazione". Moderatore Piergiorgio Paladin, relatori Guido Nassibeni, Andrea Bertoni e Paolo Attivissimo.<br />
<u><i>Quanto segue è una mia sintesi pertanto contiene reinterpretazioni, arricchimenti e omissione di argomenti da me ritenuti non rilevanti.</i></u><br />
<br />
Innanzitutto l'incontro è stato molto interessante, di molte cose ne ero a conoscenza ma non di tutte. Il fatto che certe leggerezze nella conservazione o nella diffusione dei nostri dati sia palesemente nocivo per noi stessi, spesso ci nascondiamo dietro al pensiero "<i>perché dovrebbe capitare a me...</i>". L'incontro ha avuto una conduzione condita da un sano "terrorismo" che non guasta mai.<br />
<a name='more'></a><br />
Si è parlato degli <b>IOT</b> (Interne Of Things = internet delle cose) ossia di quei congegni, indossabili o meno, che fanno sempre più parte della nostra vita e connessi alla rete: smart-watch, smart-TV, ciclo-computer, braccialetti fitness, lavatrici, condizionatori, auto, apparecchi medicali, termostati intelligenti ecc. Insomma <b>un mondo in cui le macchine parlano tra di loro.</b><br />
Per quanto belli e affascinati molti di questi prodotti, se intercettati, potrebbero nuocere in quanto inviano dati sensibili come i nostri bio-dati (battito cardiaco, pressione, temperatura) oppure le nostre abitudini, geo-dati (le nostre posizioni GPS) e tanto altro. La sicurezza molto spesso viene messa in secondo piano, talvolta è addirittura assente. Chi progetta questi prodotti molto spesso non ha una conoscenza approfondita di sicurezza informatica. Nel recente passato si è dimostrato che è possibile prendere il controllo di alcune automobili connesse ad internet, disabilitando i freni, bloccando lo sterzo o spegnendo il motore. Se stiamo guidando in autostrada non è cosa simpatica essere vittima di qualche burlone... oppure ci sono delle pompe di insulina o pacemaker controllabili da remoto dal nostro medico di fiducia che se intercettate da un malintenzionato potrebbe ucciderci.<br />
Si è discusso molto dei "<b>Big Data</b>" ossia quella mole di dati dell'ordine dei <a href="https://it.wikipedia.org/wiki/Zettabyte">Zettabyte </a>(miliardi di TeraByte) che vengono gestiti da webfarm o datacenter collocati nei luoghi più disparati nel mondo e che contengono i dati del nostro cloud o dei nostri social network. Aziende di grosso calibro, come Facebook, Google, Apple ecc., offrono servizi gratuiti in cambio dei nostri dati personali. E' noto che Facebook rivende le nostre foto, contatti, preferenze al fine di profilazione commerciale, ossia creare un nostro profilo per la pubblicità mirata. Ci sono software che analizzano le nostre foto alla ricerca di marchi ed abitudini e leggono la nostra posta per questo fine.<br />
<b>Chi ha autorizzato queste aziende ad utilizzare i nostri dati? Noi!</b> Abbiamo accettato l'<a href="https://it.wikipedia.org/wiki/EULA">EULA</a> (il contratto che dobbiamo accettare per l'attivazione del servizio).<br />
Un'informazione che mi ha lasciato a dir poco sbalordito è che WhatsApp sembra che invii due volte al giorno la nostra rubrica telefonica a Facebook.<br />
Skype, da quando è stata acquistata da Microsoft, trasmette in chiaro ossia senza l'utilizzo della crittografia. Idem WhatsApp tra IPhone mentre tra Android è protetta. Paolo Attivissimo lo ha ripetuto più volte: <b>la privacy non è opzionale ma un diritto fondamentale. </b>Quando usiamo questi prodotti dobbiamo renderci conto che è come parlare in piazza, chiunque ci può ascoltare.<br />
<div>
<b>A livello aziendale è fondamentale dividere la vita privata da quella lavorativa</b>, nel senso che non bisogna utilizzare i dispositivi aziendali per accedere ai propri social o usare i dispositivi personali connettendosi alla rete aziendale.<br />
Per quanto riguarda il cloud è sempre meglio mantenere i dati sensibili o segreti industriali nei propri server e non affidarsi ad aziende esterne che potrebbe avere delle falle di sicurezza o semplicemente più esposte a furto e rivendita di dati. Va "di moda" il <b>cloud ibrido</b>.<br />
I ricatti o le estorsioni sono all'ordine del giorno. Spesso per accedere ai segreti aziendali non si affrontano le "barricate digitale" erte dall'azienda per difendersi dagli attacchi via Internet ma si colpisce il "ventre molle", il dipendente. Si colpisce l'impiegato che ha qualcosa da nascondere, magari per preferenze sessuali o segreti personali o ancora foto che non vorrebbe fossero diffuse. Mettere a rischio i dati personali con leggerezza potrebbe mettere a rischio anche l'azienda per cui si lavora perché facilmente ricattabili.<br />
<b>Aprire anche email contenenti allegati ZIP o PDF da mittenti dubbi potrebbe nascondere delle insidie</b>: diverse aziende aprendo semplicemente un allegato, fattura.pdf, si sono ritrovate tutti i dati dei loro server inaccessibili perché criptati da un software maligno nascosto nel codice del file di Adobe. <b><i>O paghi o non rivedi più i tuoi dati...</i></b><br />
A livello di sicurezza aziendale è consigliabile affidarsi ad un consulente informatico mentre a livello personale è auspicabile"studiare" sistemi che ci permettano di comunicare in sicurezza usando chat alternative alle più diffuse o criptando i dati più sensibili. Anche viaggiare utilizzando finestre del browser in anonimo è una buona pratica.<br />
<u>Se volete viaggiare in piena sicurezza vi consiglio di utilizzare una distribuzione Linux creata ad hoc che utilizza reti <a href="https://www.torproject.org/">TOR</a> e svariate tecniche informatiche per non renderci identificabili. Vi ricordo, inoltre, che Linux è un Sistema Operativo immune ai virus di Windows. Vedi </u><a href="http://tails./"><b>Tails.</b></a></div>
Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com0tag:blogger.com,1999:blog-7805318852466416983.post-30308384972612724122015-09-23T22:58:00.005+02:002015-09-25T12:28:17.881+02:00Pen drive e SD cinesi contraffatte<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVlyiSQV4usknstD4fLAW8rBzKEXLJgFfDPFrU5XAncewQ-L3FvJIwvK099-UOFWlSrnBN19gwr65YgyBR6ultEvuG4IgUUFob4zZ1MaH00tq7MMdnujJ_3nMHi0fA_jboYGzx0XZkuzUH/s1600/fake_sd.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVlyiSQV4usknstD4fLAW8rBzKEXLJgFfDPFrU5XAncewQ-L3FvJIwvK099-UOFWlSrnBN19gwr65YgyBR6ultEvuG4IgUUFob4zZ1MaH00tq7MMdnujJ_3nMHi0fA_jboYGzx0XZkuzUH/s320/fake_sd.png" width="320" /></a></div>
<br />
Fake = falso, contraffatto insomma FREGATURA.<br />
Si, faccio anch'io parte di coloro che hanno acquistato quelle chiavette USB da capacità inverosimili pensando di fare un'affare.<br />
La provenienza è ovviamente cinese.
Sono svariati i siti dove potete trovare Micro SD o drive USB da 64, 128, 256, 512GB e addirittura 1, 2 TERABYTE !!!
Fortunatamente il sito a cui mi sono affidato garantiva gli acquisti per 30 giorni. Tranne il primo acquisto tutto il resto mi è stato rimborsato.<br />
<b>Ma come è possibile capire se si tratta di un falso?</b><br />
Ero ben consapevole che queste offerte nascondevano qualche insidia, però effettuando dei test pensavo a dei chip di memoria lenti o di "seconda qualità" con una quantità di memoria leggermente minore perché parzialmente difettosi. Il "controlla errori" di Windows non mi ha segnalato nulla di anomalo, la formattazione profonda neppure. Sembrava tutto ok fino a quando mi sono accorto che alcuni file appena inseriti risultavo subito dopo illeggibili. Ho cercato su Google "software per testare pen drive USB" e mi sono imbattuto su diversi articoli che trattavano l'argomento di questo post.<br />
Le truffe descritte erano datate dal 2009 in poi e tutt'ora continuano...<br />
<br />
<a name='more'></a><br />
Per capire se si tratta di memorie difettose o di chip riprogrammati ho utilizzato <a href="ftp://ftp.heise.de/pub/ct/ctsi/h2testw_1.4.zip">H2TESTW</a>, un programma leggero ed eseguibile senza installazione.<br />
Di seguito alcune schermate ottenute con le SD da me acquistate.<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" height="129" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb8U7s4Or38DOj6656mpTrFQe7Hn5DOYp0LI-oRltQmLR1_6f__HX6Hplg30yvIpvVhS4vDkal1ziwO80fsbYG3oPKCmphQNBEcavG4wD8n08SLKXBbOA5RkkvYFg9mo_4EVAvmYrBY64U/s320/sd64gbx2.jpg" width="320" /></div>
<div class="separator" style="clear: both; text-align: left;">
In questo caso solo 7.2Gb dei 64 dichiarati sono utilizzabili.</div>
<div class="separator" style="clear: both; text-align: left;">
Nel caso della chiavetta USB, invece l'analisi si è bloccata alla stessa quantità di memoria.</div>
<div class="separator" style="clear: both; text-align: center;">
<img border="0" height="261" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj63cBBDT9k6l-xPcbd7RVnSH5eulgdN-VxhP2ftfU5ARuVxYF6W_NAd4v9ezepkMEHZ_dpAQet71Q94U84RZfzoCXXbMs4qafDpz6ql-MfkO08iPk7ZAM154ZT1e5X_V5IEvNrR8ErXJk5/s320/1TB.jpg" width="320" /></div>
<div class="separator" style="clear: both; text-align: left;">
Per scoprire che chip si nasconde sotto il metallo della chiavetta ho utilizzato <b>ChipGenius </b>(non ricordo esattamente da che sito l'ho scaricato). Con questa suite di utility si potrebbe anche ripristinare il firmware della chiavetta. Nel mio caso non ci sono riuscito.</div>
<div class="separator" style="clear: both; text-align: left;">
<b>Ho scoperto, invece, che la chiavetta da 1TB in realtà è da 8GB!!!</b></div>
<div class="separator" style="clear: both; text-align: center;">
<img border="0" height="251" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK_pfhwc4NACv57UcxhTivIMMybjNbjByBESqOkVIRyBGzvinH4Pyf-55HU82z8NbgO_XF1Jz98CC3ZLptAXisxyS_Rknjw1QLvbfyycgrYCOPGrd7irTtNebwFAsz6p8vEIH-e7w20K3l/s320/1tb_genius.jpg" width="320" /></div>
<div class="separator" style="clear: both; text-align: left;">
Se avete acquistato anche voi questi falsi provvedete a richiedere immediatamente il rimborso allegando i risultati dei software che vi ho indicato.</div>
<div class="separator" style="clear: both; text-align: left;">
<b>E che fare di questi "rifiuti"? </b>O li smaltite adeguatamente oppure potete provare a ripristinare il firmware con ChipGenius.</div>
<div class="separator" style="clear: both; text-align: left;">
Altra possibilità è eliminare la tabella delle partizioni della chiavetta o della SD e creare una partizione leggermente inferiore della quantità di memoria non danneggiata o reale. Nel mio caso ho utilizzato <a href="http://gparted.org/">GParted </a>sotto Linux.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIP7c3JYUpNohFUByeNJx1uhPrKhZ56a3fZ7hFtlGa2rBzy12PQD531pEt9n6hlU0nHzSY0hlHOuY4Os8chI1FwsYcGkQhxnW5QdytWUdit29v4Es0iHlve9MAXAzLhGgarOLHz3AFrQfP/s1600/gparted.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="217" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIP7c3JYUpNohFUByeNJx1uhPrKhZ56a3fZ7hFtlGa2rBzy12PQD531pEt9n6hlU0nHzSY0hlHOuY4Os8chI1FwsYcGkQhxnW5QdytWUdit29v4Es0iHlve9MAXAzLhGgarOLHz3AFrQfP/s320/gparted.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com0tag:blogger.com,1999:blog-7805318852466416983.post-18413504644660930792014-06-11T13:00:00.002+02:002014-06-11T13:00:34.033+02:00Dalla teoria alla pratica: 18.06.2014 alla Trattoria all'Oasi<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzSQJmCmMi2iD5QFaR_cuUJK_Pm3lqcs1S3gIr_1pxOEkBbrW17HcBVwialvUNKM1JeC_XSm-GkeMMLQTV_7u6WsC6rJFDrz-VT2OLREkTvmRkHifyZYA9nj8kitThAfBNdU7rh6-nrvUs/s1600/Incontro+18.06.2014.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzSQJmCmMi2iD5QFaR_cuUJK_Pm3lqcs1S3gIr_1pxOEkBbrW17HcBVwialvUNKM1JeC_XSm-GkeMMLQTV_7u6WsC6rJFDrz-VT2OLREkTvmRkHifyZYA9nj8kitThAfBNdU7rh6-nrvUs/s1600/Incontro+18.06.2014.jpg" height="300" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Visto il magro riscontro dell'incontro precedente il Nick ed io abbiamo deciso di passare "dalla teoria alla pratica":<b> invitiamo chiunque, voglia ricevere consigli su come velocizzare il proprio PC e magari testare una delle innumerevoli distribuzioni Linux, il 18 giugno 2014 dalle 20.30 a massimo le 23.00 sempre presso la Trattoria all'Oasi.</b></div>
<div class="separator" style="clear: both; text-align: left;">
Se la serata avrà successo vi assicuro che l'evento si ripeterà, Mondiali 2014 e lavoro permettendo...</div>
Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com0tag:blogger.com,1999:blog-7805318852466416983.post-73564755052133370192014-05-31T09:14:00.001+02:002014-05-31T09:14:27.724+02:00Serata di presentazione del "Progetto OasiLUG": venerdì 06.06.2014<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaOzngROmZzutofUt8nGl2sikfdMEa4-A7vS3gJQZKKNKLQMy2J1U1fMOkcT1RfRN1G84SajJk_oMDcPm1N_aY7xfEOy_LRwnrLBVNyzLIY7RecFVabKBSRP9sFnx6igHKKM8N-_X05udL/s1600/Oasi_2014.06.06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaOzngROmZzutofUt8nGl2sikfdMEa4-A7vS3gJQZKKNKLQMy2J1U1fMOkcT1RfRN1G84SajJk_oMDcPm1N_aY7xfEOy_LRwnrLBVNyzLIY7RecFVabKBSRP9sFnx6igHKKM8N-_X05udL/s1600/Oasi_2014.06.06.png" height="281" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>Dopo ben 2 anni</b> dalla nascita di questo Blog e dalla volontà di creare una sorta di comunità informatica locale,<i> grazie agli influssi delle radiazioni cosmiche e alle interpolazione tra alcune costellazioni astrali,</i><b> insomma ci siamo decisi</b> di organizzare una serata, presso la <b>Trattoria all'Oasi di Pocenia,</b> un incontro di presentazione del nostro progetto ed un'introduzione ai software multi-piattaforma, ossia programmi che girano su diversi Sistemi Operativi, per poi passare ai vantaggi di un eventuale migrazione o convivenza con una distribuzione Linux.</div>
<div class="separator" style="clear: both; text-align: left;">
Ovviamente <b>l'ingresso è GRATUITO</b>, il numero dei partecipanti è limitato solo dai posti a sedere.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<b>Vi aspettiamo venerdì 6 giugno 2014 alle ore 20.45.</b></div>
<br />Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com133050 Pocenia UD, Italia45.836312 13.09925620000001345.8141855 13.058915700000014 45.8584385 13.139596700000013tag:blogger.com,1999:blog-7805318852466416983.post-1652979687742065502014-04-19T14:31:00.000+02:002014-05-01T00:21:09.087+02:00Parte 3/6: Utilizzare i sensori DHT11 e DHT22Nel progetto che ho realizzato <a href="http://oasilug.blogspot.it/2014/03/semplice-esempio-di-domotica-con.html">in precedenza</a>, ho utilizzato i sensori di temperatura e di umidità, DHT11 (<a href="http://www.micro4you.com/files/sensor/DHT11.pdf">vedi caratteristiche</a>) per l'interno e il DHT22 (<a href="https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf">vedi caratteristiche</a>) per l'esterno.<br />
Di seguito la piedinatura del DHT11. DATA verrà collegato direttamente al PIN digitale di Arduino, nel mio caso il 13.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5-rUQm0Tvdjr2lVnyPsH5kuNqWDsPbGGhOIS12gdCbgLVQxUeAGQpKLBoIAKJvsWlVkyC4mdcsQAozxGomzcDm0NjYaH-qHUmmmuOSxgFnMar7rQtECMEEPktmFfUwCzQDK42yJv9_L9T/s1600/dht11.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5-rUQm0Tvdjr2lVnyPsH5kuNqWDsPbGGhOIS12gdCbgLVQxUeAGQpKLBoIAKJvsWlVkyC4mdcsQAozxGomzcDm0NjYaH-qHUmmmuOSxgFnMar7rQtECMEEPktmFfUwCzQDK42yJv9_L9T/s1600/dht11.jpg" height="257" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Qui invece il collegamento con il DHT22, dove va collegata una resistenza di 1k<span style="background-color: #fefdfa; color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;">Ω tra VCC+ e il piedino DATA.</span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXnhu-TvQZwav9sqo9IBfJCGBxvo-rgo82OwEQ2FGYIxc6xpWAEWdZrJ53c_73Ha3RXIjE7BY_zDFRfD0KfEABHtfVD5CXmoRnX9u7YFG7XSKVSYcJaqnRkYYwo24BUP8nvwdjkxQPejeM/s1600/arduino_DHT22_AM2302.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXnhu-TvQZwav9sqo9IBfJCGBxvo-rgo82OwEQ2FGYIxc6xpWAEWdZrJ53c_73Ha3RXIjE7BY_zDFRfD0KfEABHtfVD5CXmoRnX9u7YFG7XSKVSYcJaqnRkYYwo24BUP8nvwdjkxQPejeM/s1600/arduino_DHT22_AM2302.png" height="257" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<a name='more'></a><br />
<br />
Nello sketch qui sotto troverete tutti i commenti necessari per comprendere le funzionalità del programma, dalla comunicazione della seriale a come si realizzano e richiamano funzioni o procedure.<br />
Nella cartella dello sketch inserite anche le librerie <a href="https://www.dropbox.com/s/zm5tma5tzouyxx1/DHT.cpp">DHT.cpp</a> e <a href="https://www.dropbox.com/s/76g02n0zgbumwsp/DHT.h">DHT.h</a> altrimenti la compilazione vi restituirà un errore. Una volta caricato lo sketch con l'DE di Arduino, appariranno anche le schede relative alle librerie che avete inserito.<br />
Per visualizzare le stringhe trasmesse dalla seriale aprite il <b>Monitor seriale</b> dal menu <b>Strumenti</b>.<br />
<br />
<span style="background-color: #ffe599;"><span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;">#include "DHT.h" //legge i valori di temp. e umidità dai sensori DHT##, la libreria è VIRGOLETTATA perché localizzata nella cartella del programma</span><br style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;" /><span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;"><br /></span><span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;"></span><span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;">#define DHTPIN_11 13 //PIN 13 dove è collegato il DHT11, interno</span><br style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;" /><span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;">#define DHTTYPE_11 DHT11 //Definisco il tipo di sensore (DHT11, DHT21, DHT22)</span><br style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;" /><span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;"><br /></span><span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;"></span><span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;">#define DHTPIN_22 2 //PIN 2 dove è collegato il DHT22, esterno</span><br style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;" /><span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;">#define DHTTYPE_22 DHT22 //Definisco il tipo di sensore (DHT11, DHT21, DHT22)</span><br style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;" /><span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;"><br /></span><span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;"></span><span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;">DHT dht_11(DHTPIN_11, DHTTYPE_11); //creo l'istanza dell'oggetto dht_11</span><br style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;" /><span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;">DHT dht_22(DHTPIN_22, DHTTYPE_22); //creo l'istanza dell'oggetto dht_22</span></span><br />
<span style="background-color: #ffe599;"><br /></span>
<span style="background-color: #ffe599;">void setup() </span><br />
<span style="background-color: #ffe599;">{</span><br />
<span style="background-color: #ffe599;"> Serial.begin(9600); </span><br />
<span style="background-color: #ffe599;"> Serial.println("Avvio la SERIALE");</span><br />
<span style="background-color: #ffe599;"><br /></span>
<span style="background-color: #ffe599;"> dht_11.begin(); <span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;"> </span><span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;"> //attivo la lettura del sensore DHT11</span></span><br />
<span style="background-color: #ffe599;"> dht_22.begin(); <span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;"> </span><span style="color: #2b2b2b; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.200000762939453px;"> //attivo la lettura del sensore DHT22</span></span><br />
<span style="background-color: #ffe599;">}</span><br />
<span style="background-color: #ffe599;"><br /></span>
<span style="background-color: #ffe599;">void loop() </span><br />
<span style="background-color: #ffe599;">{</span><br />
<span style="background-color: #ffe599;"> dht11_read(); //richiamo la procedura dht11_read()</span><br />
<span style="background-color: #ffe599;"> delay(1500); //attendo 1500 millisecondi</span><br />
<span style="background-color: #ffe599;"> dht22_read(); //richiamo la procedura dht22_read()</span><br />
<span style="background-color: #ffe599;"> delay(1500); //attendo 1500 millisecondi</span><br />
<span style="background-color: #ffe599;"><br /></span>
<span style="background-color: #ffe599;">}</span><br />
<span style="background-color: #ffe599;"><br /></span>
<span style="background-color: #ffe599;">void dht11_read() {</span><br />
<span style="background-color: #ffe599;"> float h_11 = dht_11.readHumidity(); //Leggo il valore di umidità</span><br />
<span style="background-color: #ffe599;"> float t_11 = dht_11.readTemperature(); //Leggo il valore di temperatura</span><br />
<span style="background-color: #ffe599;"><br /></span>
<span style="background-color: #ffe599;"> // Verifico che i numeri siano validi, altrimenti restituisco un errore.</span><br />
<span style="background-color: #ffe599;"> if (isnan(t_11) || isnan(h_11)) </span><br />
<span style="background-color: #ffe599;"> {</span><br />
<span style="background-color: #ffe599;"> Serial.println(" DHT11 non collegato!");</span><br />
<span style="background-color: #ffe599;"> } </span><br />
<span style="background-color: #ffe599;"> else</span><br />
<span style="background-color: #ffe599;"> {</span><br />
<span style="background-color: #ffe599;"> Serial.print("DHT11: ");</span><br />
<span style="background-color: #ffe599;"> Serial.print("Umidita': "); </span><br />
<span style="background-color: #ffe599;"> Serial.print(h_11);</span><br />
<span style="background-color: #ffe599;"> Serial.print(" %\t");</span><br />
<span style="background-color: #ffe599;"> Serial.print("Temperatura: "); </span><br />
<span style="background-color: #ffe599;"> Serial.print(t_11);</span><br />
<span style="background-color: #ffe599;"> Serial.println(" C");</span><br />
<span style="background-color: #ffe599;"> }</span><br />
<span style="background-color: #ffe599;">}</span><br />
<span style="background-color: #ffe599;"><br /></span>
<span style="background-color: #ffe599;">void dht22_read(){</span><br />
<span style="background-color: #ffe599;"> float h_22 = dht_22.readHumidity(); //Leggo il valore di umidità</span><br />
<span style="background-color: #ffe599;"> float t_22 = dht_22.readTemperature(); //Leggo il valore di temperatura</span><br />
<span style="background-color: #ffe599;"><br /></span>
<span style="background-color: #ffe599;"> // Verifico che i numeri siano validi, altrimenti restituisco un errore</span><br />
<span style="background-color: #ffe599;"> if (isnan(t_22) || isnan(h_22)) </span><br />
<span style="background-color: #ffe599;"> {</span><br />
<span style="background-color: #ffe599;"> Serial.println("DHT22 non collegato!");</span><br />
<span style="background-color: #ffe599;"> } </span><br />
<span style="background-color: #ffe599;"> else</span><br />
<span style="background-color: #ffe599;"> {</span><br />
<span style="background-color: #ffe599;"> Serial.print("DHT22: ");</span><br />
<span style="background-color: #ffe599;"> Serial.print("Umidita': "); </span><br />
<span style="background-color: #ffe599;"> Serial.print(h_22);</span><br />
<span style="background-color: #ffe599;"> Serial.print(" %\t");</span><br />
<span style="background-color: #ffe599;"> Serial.print("Temperatura: "); </span><br />
<span style="background-color: #ffe599;"> Serial.print(t_22);</span><br />
<span style="background-color: #ffe599;"> Serial.println(" C");</span><br />
<span style="background-color: #ffe599;"> }</span><br />
<span style="background-color: #ffe599;">}</span><br />
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com0tag:blogger.com,1999:blog-7805318852466416983.post-47326948457715887932014-04-17T22:01:00.001+02:002014-04-17T22:01:09.855+02:00Download Ubuntu 14.04 LTS Trusty Tahr<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2M7kxVoYjhT9oeUjOXBrw1lfnC9fNVLRUpIaSek_67dhPMuXVUeFV8ETKFAi86HHiND7i8-ENz8k-rgHYH_FG1uOaipymu1WuBBGejcP0vn0hbc2aLweWedpprrt8Zi7GS8mqrEFVlAsn/s1600/ubuntu-14.04-install.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2M7kxVoYjhT9oeUjOXBrw1lfnC9fNVLRUpIaSek_67dhPMuXVUeFV8ETKFAi86HHiND7i8-ENz8k-rgHYH_FG1uOaipymu1WuBBGejcP0vn0hbc2aLweWedpprrt8Zi7GS8mqrEFVlAsn/s1600/ubuntu-14.04-install.jpg" height="180" width="320" /></a></div>
Da poche ore è disponibile per il download la nuova versione di Ubuntu, la più famosa distribuzione Linux, di seguito la pagina ufficiale di <a href="http://www.ubuntu-it.org/download">ubuntu-it.org</a>.<br />
Questa versione, <b>LTS</b>, garantisce un <b>supporto a lungo termine di ben 5 anni.</b><br />
Con questa release si assiste ad un'ulteriore passo in avanti verso l'integrazione desktop e mobile, infatti Ubuntu è possibile installarlo anche su <b>Smartphone </b>e <b>Tablet </b>con determinate caratteristiche tecniche.<br />
Nei prossimi giorni riproverò ad installarlo anche sul mio portatile HP con Windows 8.1, purtroppo 6 mesi fa non stato molto fortunato, spero che con questa versione non ci siano problemi con la scheda grafica AMD 8670. Buona installazione a tutti !!!Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com7tag:blogger.com,1999:blog-7805318852466416983.post-21127593821010942412014-04-05T21:12:00.000+02:002014-04-08T21:23:11.882+02:00Parte 2/6: Ingressi e uscite, digitali e analogici<div class="separator" style="clear: both; text-align: left;">
<span style="color: red;">Aggiornato il 08.04.2014</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://oasilug.blogspot.it/2014/03/parte-16-utilizzare-un-lcd-16x2-con.html">La volta scorsa</a> vi ho descritto come collegare un display 16x2 ad Arduino, questa volta passiamo a cose più concrete come la gestione degli INPUT e degli OUTPUT.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIBDOOXLbqKmQX_ZqAGF3MFeujf9dv4uV56v7oK5EhvKPr7FTVE8CVPUgWEFA-kSKJS0H7Bxc84ZpK08kaunsr8slLGO_ie2XwyYehQGY9aHns7cL0hqQJzzmAs2VvQkvBB-LxcQLxSY0U/s1600/arduino_board.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIBDOOXLbqKmQX_ZqAGF3MFeujf9dv4uV56v7oK5EhvKPr7FTVE8CVPUgWEFA-kSKJS0H7Bxc84ZpK08kaunsr8slLGO_ie2XwyYehQGY9aHns7cL0hqQJzzmAs2VvQkvBB-LxcQLxSY0U/s1600/arduino_board.png" height="228" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Nello schema di Arduino UNO in verde sono raffigurati i 14 PIN digitali ON/OFF sia IN che OUT.<br />
I PIN 0 e 1 solitamente non vengono utilizzati nei collegamenti perché adibiti alla comunicazione seriale con il PC (USB) o un altro Arduino.<br />
In basso a destra sono rappresentati con il colore celeste i 6 PIN analogici, utilizzabili in ingresso con una risoluzione di 2^10 (1024) e in potenza con un risoluzione di 2^8 (256).<br />
<br />
<a name='more'></a><br />
<br />
<b>I/0 DIGITALE.</b><br />
Nella figura sottostante è raffigurato un semplice collegamento che permette di accendere un led mediante un pulsante.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTNWGkB9Cy3F0oqlVYXt2Csd7_a0aWJON4pCeW2Z800iqfSdxU59vqMkbqo0liUGcPE_8dCSL4-SuKiwBxb7M81cstHPFu29CgzwhSaloZ7iS3juQWIecsPC0UoilQUHdNKFv6V8MFaBHe/s1600/pulsante.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTNWGkB9Cy3F0oqlVYXt2Csd7_a0aWJON4pCeW2Z800iqfSdxU59vqMkbqo0liUGcPE_8dCSL4-SuKiwBxb7M81cstHPFu29CgzwhSaloZ7iS3juQWIecsPC0UoilQUHdNKFv6V8MFaBHe/s1600/pulsante.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
In entrambi i componenti è presente una resistenza: nel caso del LED dobbiamo limitare la corrente a 10mA, quindi andremo ad utilizzare una resistenza di 330Ω = (5V-2V)/0,01A.
</div>
<div class="" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAI87Fn4fr7LuPUvCXoa8-NH2mQzVstO4UwsRPcV4XiMwosb2SaFu7Sfzcmv4Cb6n3FyMsxIdvve0ZNuzbNHcnjfqv1xv7vi_SxHAY7xoo9fJQyl06y0tMadeJ7_jXaMRfJpL58CdPnpRy/s1600/pulsante-dettaglio.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: justify;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAI87Fn4fr7LuPUvCXoa8-NH2mQzVstO4UwsRPcV4XiMwosb2SaFu7Sfzcmv4Cb6n3FyMsxIdvve0ZNuzbNHcnjfqv1xv7vi_SxHAY7xoo9fJQyl06y0tMadeJ7_jXaMRfJpL58CdPnpRy/s1600/pulsante-dettaglio.png" height="200" width="139" /></a>Nel caso dell'ingresso, invece, dobbiamo proteggere ARDUINO; l'amperaggio massimo consentito è di 40mA ma la guida ufficiale consiglia di utilizzare una resistenza di 470Ω quindi con i 10mA che otteniamo stiamo su una soglia decisamente più sicura. Per la cronaca è possibile attivare le resistenze interne di ARDUINO via software, cosa che io non ho voluto fare. Detto ciò passiamo allo scketch presente tra i file di esempio dell'IDE. Controlliamo l'accensione del LED mediante il PIN 13 e leggiamo lo stato del pulsante tramite il PIN 3. Lo stato del pulsante dipende ovviamente dal fatto se è normalmente aperto o chiuso e dalla resistenza applicata. Vi consiglio di fare delle prove per capire cosa sta leggendo ARDUINO e quindi eventualmente modificare resistenze o codice.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;">const int buttonPin = 2; </span><span style="background-color: #cfe2f3;">// il numero del PIN del tasto</span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;">const int ledPin = 13; </span><span style="background-color: #cfe2f3;">// il numero del PIN del LED</span></div>
<div class="separator" style="clear: both;">
<span style="background-color: #ffe599;"><br /></span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;">int buttonState = 0; </span><span style="background-color: #cfe2f3;">// variabile che assumerà il valore letto dal PIN del tasto</span></div>
<div class="separator" style="clear: both;">
<span style="background-color: #ffe599;"><br /></span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;">void setup() {</span></div>
<div class="separator" style="clear: both;">
<span style="background-color: #cfe2f3;"> // inizializzo il PIN del LED indicando il numero e che si tratta di un'uscita:</span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;"> pinMode(ledPin, OUTPUT); </span></div>
<div class="separator" style="clear: both;">
<span style="background-color: #cfe2f3;"> // inizializzo il PIN del Tasto indicando il numero e che si tratta di un ingresso:</span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;"> pinMode(buttonPin, INPUT); </span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;">}</span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;"><br /></span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;">void loop(){</span></div>
<div class="separator" style="clear: both;">
<span style="background-color: #cfe2f3;"> // a ogni ciclo leggo il valore del tasto:</span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;"> buttonState = digitalRead(buttonPin);</span></div>
<div class="separator" style="clear: both;">
<span style="background-color: #ffe599;"><br /></span></div>
<div class="separator" style="clear: both;">
<span style="background-color: #cfe2f3;"> // controllo se il tasto è premuto.</span></div>
<div class="separator" style="clear: both;">
<span style="background-color: #cfe2f3;"> // se lo stato è HIGH:</span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;"> if (buttonState == HIGH) { </span></div>
<div class="separator" style="clear: both;">
<span style="background-color: #cfe2f3;"> // accendo il LED: </span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;"> digitalWrite(ledPin, HIGH); </span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;"> } </span></div>
<div class="separator" style="clear: both;">
<span style="background-color: #cfe2f3;"> // altrimenti: </span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;"> else {</span></div>
<div class="separator" style="clear: both;">
<span style="background-color: #cfe2f3;"> // spengo il LED:</span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;"> digitalWrite(ledPin, LOW); </span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;"> }</span></div>
<div class="separator" style="clear: both;">
<span style="background-color: yellow;">}</span></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>I/0 ANALOGICO.</b></div>
<div class="separator" style="clear: both; text-align: left;">
Il procedimento è simile a quello precedentemente descritto, la differenza sta nei comandi e sul fatto che in lettura avremo un valore intero che va da 0-1023 (step di 5V/1024) mentre in potenza da 0-255 (step di 5V/256).</div>
<div class="separator" style="clear: both; text-align: left;">
Trattandosi di uscite/ingressi il valore massimo è sempre di 5V e il minimo di 0V.</div>
<div class="separator" style="clear: both; text-align: left;">
Consiglio di dichiarare sempre all'inizio la variabile o costante del PIN dove il nostro elemento analogico verrà collegato (A0-A5).</div>
<div class="separator" style="clear: both; text-align: left;">
Per la lettura è sufficiente utilizzare questo comando <span style="background-color: yellow;">analogRead(PIN );</span> mentre per comandare l'uscita <span style="background-color: yellow;">analogWrite(PIN, 0-255);</span></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Di seguito un esempio in lettura tramite un potenziometro utilizzato come partitore di tensione:</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.mauroalfieri.it/elettronica/partitore-di-resistenze.html">http://www.mauroalfieri.it/elettronica/partitore-di-resistenze.html</a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Per quanto riguarda l'uscita in potenza potreste collegare un LED e, <a href="http://it.wikipedia.org/wiki/LED">superata la tensione di giunzione</a>, modificarne la luminosità.</div>
Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com4tag:blogger.com,1999:blog-7805318852466416983.post-53639086292537649362014-03-29T11:36:00.000+01:002014-04-08T20:59:44.676+02:00Parte 1/6: Utilizzare un LCD 16x2 con Arduino<div class="separator" style="clear: both; text-align: left;">
<span style="color: red;">Aggiornato il 08.04.2014</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdKQeRVIUfFpjFggs0nvGsCvMcd768BiP9cXxo1IVOO8k4hzC-D8uLMIjuAB4Pmdj0mVZh-CZ-sUdM9Br35VTc5VPKUq2tnQqVnIkSDDaPJefGyjJwuPlHWghuIbF2WJZaDvgkBcJM19yF/s1600/LCD_bb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdKQeRVIUfFpjFggs0nvGsCvMcd768BiP9cXxo1IVOO8k4hzC-D8uLMIjuAB4Pmdj0mVZh-CZ-sUdM9Br35VTc5VPKUq2tnQqVnIkSDDaPJefGyjJwuPlHWghuIbF2WJZaDvgkBcJM19yF/s1600/LCD_bb.png" height="245" width="400" /></a></div>
Come promesso andrò a spiegarvi, in 6 puntate, come ho realizzato <a href="http://oasilug.blogspot.it/2014/03/semplice-esempio-di-domotica-con.html">un semplice esempio di domotica</a> con degli esempi di utilizzo dei diversi dispositivi/sensori collegati. Oggi vi descriverò come utilizzare un display 16x2.<br />
<br />
Lo schema da me utilizzato è quello rappresentato nell'immagine.<br />
Il potenziometro serve esclusivamente per controllare il contrasto, se realizzate un partitore di tensione al PIN 15 del display (il PIN subito a destra del collegamento a D7) potrete regolarne anche la retroilluminazione. La tensione da applicare è 4.2V, io ho collegato direttamente i 5V di Arduino senza alcun problema.<br />
Una volta realizzato i collegamenti e creato un nuovo sketch con l'IDE di Arduino dovete, nell'area iniziale destinata alla dichiarazione delle variabili, includere la libreria specifica per l'utilizzo del nostro display 16x2<br />
<br />
<a name='more'></a><br />
<span style="background-color: yellow;">#include <LiquidCrystal.h></span><br />
ed inizializzarla con il seguente comando<br />
<span style="background-color: yellow;">LiquidCrystal lcd(12, 11, 5, 4, 3, 2);</span><br />
<br />
Ora all'interno della procedura di setup, <span style="background-color: yellow;">void setup()</span>, impostate il numero di colonne e righe<br />
<span style="background-color: yellow;">lcd.begin(16, 2);</span><br />
<br />
Nella procedura di esecuzione continua, <span style="background-color: yellow;">void loop()</span>, possiamo far appare i testi che vogliamo.<br />
Con il comando <span style="background-color: yellow;">lcd.setCursor(0, 1);</span> determiniamo da che punto vogliamo iniziare a scrivere, in questo caso dalla prima colonna (lcd.setCursor(<span style="background-color: yellow;">0</span>, 1);) e seconda riga (lcd.setCursor(0, <span style="background-color: yellow;">1</span>);).<br />
Le colonne vanno, in questo caso, da 0 a 15 mentre le righe da 0 a 1.<br />
Se impostiamo solo la partenza tutto ciò che verrà stampato su quella determinata riga verrà automaticamente aggiunto fino al raggiungimento dei 16 caratteri a disposizione. Se vogliamo formattare la riga possiamo farlo semplicemente stampando una stringa di 16 caratteri e con il comando <span style="background-color: yellow;">lcd.setCursor(colonna, riga);</span> determinare la posizione nella quale vogliamo che i nostri valori o caratteri appaiano stanno attenti a non sovrascrivere quelli precedentemente formattati.<br />
Il comando da utilizzare per visualizzare i testi sul LCD è <span style="background-color: yellow;">lcd.print("Testo");</span><br />
Di seguito un esempio:<br />
<br />
<span style="background-color: yellow;">// include the library code:</span><br />
<span style="background-color: yellow;">#include <LiquidCrystal.h></span><br />
<span style="background-color: yellow;"><br /></span>
<span style="background-color: yellow;">// initialize the library with the numbers of the interface pins</span><br />
<span style="background-color: yellow;">LiquidCrystal lcd(12, 11, 5, 4, 3, 2);</span><br />
<span style="background-color: yellow;"><br /></span>
<span style="background-color: yellow;">void setup() {</span><br />
<span style="background-color: yellow;"> // set up the LCD's number of columns and rows: </span><br />
<span style="background-color: yellow;"> lcd.begin(16, 2);</span><br />
<span style="background-color: yellow;">}</span><br />
<span style="background-color: yellow;"><br /></span>
<span style="background-color: yellow;">void loop() {</span><br />
<span style="background-color: yellow;"> // set the cursor to column 0, line 1</span><br />
<span style="background-color: yellow;"> // (note: line 0 is the first row, since counting begins with 0):</span><br />
<span style="background-color: yellow;"> lcd.setCursor(0, 0);</span><br />
<span style="background-color: yellow;"> // print the number of seconds since reset:</span><br />
<span style="background-color: yellow;"> // Print a message to the LCD.</span><br />
<span style="background-color: yellow;"> lcd.print("Arduino 29.03.14");</span><br />
<span style="background-color: yellow;"> // (note: line 0 is the second row, since counting begins with 1:</span><br />
<span style="background-color: yellow;"> lcd.setCursor(0, 1);</span><br />
<span style="background-color: yellow;"> // Print a message to the LCD.</span><br />
<span style="background-color: yellow;"> lcd.print("happy birthday !");</span><br />
<span style="background-color: yellow;">}</span><br />
<br />
<br />
Nel caso usiate <a href="http://www.dfrobot.com/wiki/index.php?title=Arduino_LCD_KeyPad_Shield_%28SKU:_DFR0009%29">LCD Keypad Shield</a> i PIN utilizzati sono i seguenti:<br />
<br />
<br />
<span style="background-color: yellow;">LiquidCrystal lcd(8, 9, 4, 5, 6, 7);</span>Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com2tag:blogger.com,1999:blog-7805318852466416983.post-87290359719218722522014-03-23T18:53:00.000+01:002016-02-28T14:19:42.593+01:00Semplice esempio di domotica con ARDUINO UNO<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/u7wnmuvQ3wE" width="420"></iframe>
<br />
<div style="text-align: left;">
<b style="color: red;">Aggiornamento del 28.02.2016: Aggiornato codice e aggiunto schema collegamenti.</b></div>
</div>
Alla fine il tempo l'ho trovato o meglio diversi ritagli di tempo mi hanno permesso di realizzare un progetto funzionante e praticamente completo. Nel video è possibile vedere cosa fa il mio <a href="http://arduino.cc/en/Main/arduinoBoardUno#.Uy8SP_l5MuQ">Arduino UNO</a>; inizialmente si doveva occupare solo del giardino ma poi, vista la disponibilità di contatti l'ho sfruttato al massimo. Ora controlla la temperatura e l'umidità dell'aria sia interna che esterna, l'umidità del terreno, il voltaggio, l'intensità di corrente e quindi la potenza assorbita. Funzione decisamente utile è la possibilità di impostare la soglia limite di potenza massima assimilabile e l'avviso acustico del superamento di tale soglia.<br />
<div>
Se avessi avuto più spazio nei tubi avrei collegato <a href="http://arduino.cc/en/Main/arduinoBoardMega#.Uy8SP_l5MuQ">Arduino MEGA</a>.<br />
<div>
<b>Fate molta attenzione </b>ai collegamenti elettrici, in particolare con la rete elettrica.<br />
<br />
<div style="text-align: center;">
<b><span style="color: red;">NON MI ASSUMO ALCUNA RESPONSABILITÀ NELLA REALIZZAZIONE DEL CIRCUITO DA ME INDICATO NELLA FIGURA SOTTOSTANTE.</span></b></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi09DhzvYPvhMzv31FNeNCCGkGBpSItP5LK8w0XRgYxQvec71oNVX_3QqsGCp27oN4JvfxxWWjjWn1K9uhCERC3kwCpoo3QC4EqQ8CK3Eab5pm4zMuk9n4zm8G-dlUMcu_0CxZkIiW17fzP/s1600/Arduino_giardino_02_bb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="251" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi09DhzvYPvhMzv31FNeNCCGkGBpSItP5LK8w0XRgYxQvec71oNVX_3QqsGCp27oN4JvfxxWWjjWn1K9uhCERC3kwCpoo3QC4EqQ8CK3Eab5pm4zMuk9n4zm8G-dlUMcu_0CxZkIiW17fzP/s400/Arduino_giardino_02_bb.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Di seguito i post esempio che vi permetteranno, almeno lo spero, di comprendere il funzionamento delle diverse parti del progetto:</div>
<div style="background-color: #fefdfa; color: #d52a33; font-family: "georgia" , "utopia" , "palatino linotype" , "palatino" , serif; font-stretch: normal; font-weight: normal; margin: 0px; position: relative;">
<span style="color: #d329b5; font-size: small; font-stretch: normal;"><a href="http://oasilug.blogspot.it/2014/03/parte-16-utilizzare-un-lcd-16x2-con.html" style="color: #d329b5; font-stretch: normal;">Parte 1/6: Utilizzare un LCD 16x2 con Arduino</a></span><br />
<span style="color: #d329b5; font-size: small; font-stretch: normal;"><a href="http://oasilug.blogspot.it/2014/04/parte-26-ingressi-e-uscite-digitali-e.html" style="color: #d329b5; font-stretch: normal;">Parte 2/6: Ingressi e uscite, digitali e analogici</a></span><br />
<span style="color: #d329b5; font-size: small; font-stretch: normal;"><a href="http://oasilug.blogspot.it/2014/04/utilizzare-i-sensori-dht11-e-dht22.html" style="color: #d329b5; font-stretch: normal;">Parte 3/6: Utilizzare i sensori DHT11 e DHT22</a></span><br />
<span style="color: #d329b5; font-size: small; font-stretch: normal;"><a href="http://oasilug.blogspot.it/2016/01/parte-46-tensione-ed-intensita-di.html" style="color: #d329b5; font-stretch: normal;">Parte 4/6 : Tensione ed Intensità di corrente sotto controllo</a></span><br />
<span style="color: #d329b5; font-size: small; font-stretch: normal;"><a href="http://oasilug.blogspot.it/2016/01/parte-56-leggere-e-modificare-data-e.html" style="color: #d329b5; font-stretch: normal;">Parte 5/6: il modulo modulo RTC DS1307</a></span><br />
<span style="color: #d329b5; font-size: small; font-stretch: normal;"><a href="http://oasilug.blogspot.it/2016/01/parte-66-colleghiamo-ligrometro.html" style="color: #d329b5; font-stretch: normal;">Parte 6/6: colleghiamo l'igrometro</a></span><br />
<br /></div>
</div>
</div>
<div>
<h3 class="post-title entry-title" style="background-color: #fefdfa; color: #d52a33; font-family: Georgia, Utopia, 'Palatino Linotype', Palatino, serif; font-stretch: normal; font-weight: normal; margin: 0px; position: relative;">
</h3>
</div>
<div>
<a href="https://www.dropbox.com/sh/bjqgacvadpbq6wc/AABU_pyx04xuU-oVNto5g3gea?dl=0">QUI</a> il codice caricato su Arduino aggiornato con il collegamento ad Raspberry PI o ad un qualsiasi PC.</div>
<div>
<br /></div>
<div>
<a href="https://www.dropbox.com/s/2o2onwm22t0vu6f/com_serial2.py?dl=0">QUI</a> invece un semplice programma scritto in Python 3 da caricare sul PC collegato via USB con Arduino per la visualizzazione dei dati e dello stato dei sensori/attuatori.</div>
Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com12tag:blogger.com,1999:blog-7805318852466416983.post-17679313272301036122012-10-23T22:05:00.000+02:002012-10-23T22:05:07.954+02:00Rimuovere le ricerche di Amazon da Dash di Ubuntu 12.10<div class="separator" style="clear: both; text-align: center;">
<a href="http://zapt1.staticworld.net/images/article/2012/09/ubuntu_amazo-100005579-large.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="212" src="http://zapt1.staticworld.net/images/article/2012/09/ubuntu_amazo-100005579-large.jpg" width="320" /></a></div>
La scoperta è stata piuttosto casuale, infatti mi sono chiesto: "come è possibile che non si possa eliminare le ricerche di Amazon dalla Dash di Ubuntu?!".<br />
Accedendo alle impostazioni di sistema, direttamente dall'icona in alto a destra dello schermo, ho notato una voce che prima d'ora non avevo mai utilizzato, <b>"Privacy"</b>.<br />
Avviandola, la prima tab che appare è <b>"Risultati ricerche"</b> nella quale è presente la voce "Quando si eseguono ricerca dalla Dash: includere i risultati da ricerche online". <b>Cliccare sul selettore ON/OFF immediatamente a destra e posizionarlo su OFF</b>. Chiudere la finestra e il gioco è fatto, l'integrazione con le ricerche di Amazon nella Dash di ubuntu sono state disabilitate.<br />
<a name='more'></a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin72pisUDG2c-abP1t3NXoSW6-Uvwjb1vfoD0123IhmPRgzTBN1xXFJ12XZY5_m2Auj30iX47lcSdULLXTd09sDso5At27X5wVdby7VXs722llJNmOTK683_EgIgXejeAYAuB4jc-S1TNg/s1600/impostazioni_privacy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="127" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin72pisUDG2c-abP1t3NXoSW6-Uvwjb1vfoD0123IhmPRgzTBN1xXFJ12XZY5_m2Auj30iX47lcSdULLXTd09sDso5At27X5wVdby7VXs722llJNmOTK683_EgIgXejeAYAuB4jc-S1TNg/s400/impostazioni_privacy.png" width="400" /></a></div>
<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj61hkIe6udxPjHgf2fgqlKULThLYv8Kd6cn4g3p5nxorSZt_9y9f2gsJPQwgmkUk3WDyrUfI04ES_u-d6k3xbphwPR6agDqXHpYIMIoFVMunflanmgwOG7pLvpWheyTZMUvvfxszugdntH/s1600/privacy_ubuntu.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj61hkIe6udxPjHgf2fgqlKULThLYv8Kd6cn4g3p5nxorSZt_9y9f2gsJPQwgmkUk3WDyrUfI04ES_u-d6k3xbphwPR6agDqXHpYIMIoFVMunflanmgwOG7pLvpWheyTZMUvvfxszugdntH/s400/privacy_ubuntu.png" width="400" /></a></div>
<br />Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com0tag:blogger.com,1999:blog-7805318852466416983.post-18134415610148378152012-10-22T22:38:00.001+02:002012-11-12T22:19:16.821+01:00Ubuntu 12.10 - Quantal Quetzal<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.chimerarevo.com/wp-content/uploads/2012/05/quetzal-4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="http://www.chimerarevo.com/wp-content/uploads/2012/05/quetzal-4.png" width="320" /></a></div>
<b>L'articolo è stato modificato dopo la pubblicazione (23.10.2012).</b><br />
<br />
Questo fine settimana ho voluto testare/installare la nuova versione di Ubuntu, la 12.10 (anno, mese), nome in codice Quantal Quetzal.<br />
Ubuntu è una delle tante distribuzione Linux presenti in rete ma forse è la più semplice sia nell'installazione che nell'utilizzo.<br />
Per chi volesse può "testarla online" cliccando su <a href="http://www.ubuntu.com/tour/en/">questo link.</a><br />
Sappiate che potete provarla "fisicamente", senza installarla, masterizzando un DVD o CD da 800MB/90min, la capienza del classico CD da 700MB e stata superato dai 753MB della versione a 32bit.<br />
Per mia comodità l'ho installata su una chiavetta USB utilizzando il software già integrato in Ubuntu, "Creatore dischi d'avvio". Se non lo avete ancora fatto potete <a href="http://www.ubuntu-it.org/download">scaricare l'immagine ISO</a> dal sito di ubuntu.it.<br />
<i><b>Di seguito i sistemi in cui ho testato la nuova versione:</b></i><br />
<br />
<a name='more'></a><br />
<br />
<i><b>- <u>NetTop MSI AMD E2 Vision.</u></b></i><br />
Il PC è stato aggiornato in modo automatico dalla versione 12.04 alla 12.10 a 64bit. La nuova versione integra il <s>nuovissimo</s> Kernel 3.5 che rispetto al precedente 3.2.0 è più "attento" ai PC di nuova generazione. Posso affermare che il sistema è decisamente più reattivo rispetto a prima e quindi l'aggiornamento in questo caso è stato apprezzato.<br />
<br />
<i><b>- <u>NetBook Packard Bell Intel N450.</u></b></i><br />
Il PC è stato aggiornato in modo automatico dalla versione 12.04 alla 12.10 a 32bit. A parte le migliorie grafiche e alla velocizzazione del "Ubuntu Software Center" l'aggiornamento non è stato così determinante come nel caso precedente.<br />
<br />
<b><i>- <u>NoteBook Acer Aspire 9300 AMD Turion 64 x2 con NVIDIA GeForce 7300.</u></i></b><br />
Decisamente deludente il passaggio dalla 10.10 alla 12.10 a 32bit. L'aggiornamento è avvenuto cancellando completamente l'installazione precedente. La GeForce non è stata riconosciuta rendendo l'interfaccia grafica inutilizzabile. Mio malgrado ho scoperto che l'utility "Driver Aggiuntivi", che fino alla precedente versione ci aveva accompagnato, è stata rimossa. Installando i driver NVidia dall'Ubuntu Software Center le cose sono decisamente migliorate ma nel complesso l'insieme risultava comunque poco soddisfacente. Installando, invece, la 12.04 LTS a 32 bit ho risolto fin da subito il riconoscimento della scheda grafica e nel complesso il sistema è risultato reattivo e performante.<br />
<b>"Driver aggiuntivi" è stato inserito nell'ultimo tab della finestra "Sorgenti software"</b>.<br />
<br />
<i><b>- <u>NoteBook Acer Aspire 2920.</u></b></i><br />
In questo caso ho preferito non aggiornare il sistema ma mi sono limitato ad utilizzare la versione Live su USB. Tutto funziona perfettamente ma il nuovo sistema di ricerca di Dash, che integra le ricerche sul sito di Amazon, lo ritengo parecchio invadente e fastidioso. Dash è attivabile dall'icona in alto a sinistra presente nella barra laterale (Unity). Da questa applicazione è possibile richiamare le applicazioni installate ma anche cercare documenti, immagini e file di qualunque genere presenti nel proprio sistema.<br />
<b>Per "rimuovere Amazon" dal Dash seguite <a href="http://oasilug.blogspot.it/2012/10/rimuovere-le-ricerche-di-amazon-da-dash.html">queste semplici istruzioni</a>.</b><br />
<br />
<b><i>Conclusioni.</i></b><br />
Se avete un PC datato o poco potente vi consiglio di installare <a href="http://www.ubuntu-it.org/derivate/lubuntu">LUBUNTU</a>, versione leggera e a basso consumo energetico. Nel caso di PC più performanti ma non di ultimissima generazione vi consiglio di rimanere alla 12.04 sempre se non avete l'esigenza di avere l'ultima versione di qualche software presente nella 12.10. Nel caso in cui la 12.04 non riconoscesse tutto l'hardware della vostra macchina probabilmente la 12.10 è la vostra soluzione.Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com4tag:blogger.com,1999:blog-7805318852466416983.post-5339055775075009032012-07-29T16:28:00.000+02:002013-12-26T14:59:41.420+01:00Trasformare i file .xls di Conto Corrente Arancio in .qif<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGwTasKLXNK5tDFW-k9AXTKcQ827JXhcMrOIYQuop5ywe-HxeAFIgYlurtSgQMugJr5_zL32bOSmpsZqgrcsJnXzysOcby3ldbPVG10hqfTcIP7eazIZJewl6xn0mucKt_UTVllqzPhYfi/s1600/gnucash.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGwTasKLXNK5tDFW-k9AXTKcQ827JXhcMrOIYQuop5ywe-HxeAFIgYlurtSgQMugJr5_zL32bOSmpsZqgrcsJnXzysOcby3ldbPVG10hqfTcIP7eazIZJewl6xn0mucKt_UTVllqzPhYfi/s320/gnucash.png" width="320" /></a></div>
<span style="color: red;">Agg. 26.12.2013: ripristinato link ai file.</span><br />
<br />
Alcuni mesi fa, stanco di dover tagliare ed incollare le celle dei file di riepilogo del mio <a href="http://www.ingdirect.it/">Conto Corrente Arancio</a>, ho deciso di realizzare un semplice programma multipiattaforma (ho optato per Java) che mi agevolasse il lavoro.<br />
Alla fine del post vi linkerò gli eseguibili .jar e il codice sorgente che potrete modificare a vostro piacimento. Per poterlo eseguire dovete aver installato la <a href="http://www.java.com/it/download/">"Java Virtual Machine"</a>.<br />
Il programmino che ho realizzato non fa altro che prendere i dati del foglio di calcolo che scaricate dal sito e formattarlo in .qif e quindi importabile da programmi come Money della Microsoft o GnuCash per Linux, Mac e Windows.<br />
Il programma a me funziona e per ora non mi ha dato particolari problemi, sappiate che comunque non rispondo in alcun modo degli eventuali problemi che vi potrebbe causare; se trovate dei bug o volete migliorarlo lo potrete fare a vostra discrezione.<br />
<a name='more'></a><br />
<b>1.</b> Per prima cosa scaricate il resoconto del vostro Conto Corrente Arancio in formato .xls<br />
<br />
<b>2.</b> Aprite il file con la vostra suite preferita, nel mio caso LibreOffice, <u>eliminate</u> le righe che non vi servono come le denominazioni e tutto ciò che segue l'ultima riga del dettaglio operazioni<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk5yPdXmN3zCRDZHVxnp6M2YqqmneiLOzZSNlaYaFpuOus1IPUOPWG5tSRJGky4GxPIdxTjSh2P1Ozg-gqIsz_7WmZtAJrePZmkgpbq8jdbEWLAsXqtFv3-Ygve-v9p5orE-2RlJ0UfyPW/s1600/xls+cc+arancio.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="189" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk5yPdXmN3zCRDZHVxnp6M2YqqmneiLOzZSNlaYaFpuOus1IPUOPWG5tSRJGky4GxPIdxTjSh2P1Ozg-gqIsz_7WmZtAJrePZmkgpbq8jdbEWLAsXqtFv3-Ygve-v9p5orE-2RlJ0UfyPW/s320/xls+cc+arancio.png" width="320" /></a></div>
<br />
<b>3.</b> Salvate il file in formato .cvs specificando il Separatore di campo #, mentre il separatore di testo rimane vuoto.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioIOmpig8EeRq099ci_pBfQeHSwzw9jLmipS9ly7Ta-cgPFJWm51wHLokMNXi26dbDCj6o0brNz9pMGK0sliRJAqsSIsLhFwNJ6VASd3b37RlrSQlpEA3B_J0m2LQpDjM7KaoVF6bV8zQZ/s1600/formato+cvs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="124" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioIOmpig8EeRq099ci_pBfQeHSwzw9jLmipS9ly7Ta-cgPFJWm51wHLokMNXi26dbDCj6o0brNz9pMGK0sliRJAqsSIsLhFwNJ6VASd3b37RlrSQlpEA3B_J0m2LQpDjM7KaoVF6bV8zQZ/s320/formato+cvs.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<b>4. </b>Eseguire il programma "Convertitore CVS to QIF" e aprire il file .cvs appena salvato.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_gE8wBrAEfXqP_qhm4CxKz_Se4gmx2dt6vZjCxotm9pF0JVQ3Q7jpQxBcrkpa1RDU3ycproFtSI0_iOm6toC7T13jZWJdcokvC9xAbQ06NKovEoFD4BAuPcfgHue7C5H3v5Lyz-CfDVY/s1600/convertitore.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_gE8wBrAEfXqP_qhm4CxKz_Se4gmx2dt6vZjCxotm9pF0JVQ3Q7jpQxBcrkpa1RDU3ycproFtSI0_iOm6toC7T13jZWJdcokvC9xAbQ06NKovEoFD4BAuPcfgHue7C5H3v5Lyz-CfDVY/s320/convertitore.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<b style="background-color: white;">5.</b><span style="background-color: white;"> Una volta caricato salvate la destinazione con l'estensione .qif</span><br />
<span style="background-color: white;"><br /></span>
<b>6.</b> Ora potete importarlo con il vostro programma di contabilità preferito con un risparmio di tempo significativo.<br />
<br />
Di seguito i file scaricabili:<br />
<a href="https://www.dropbox.com/s/xrin5nnb584s0xh/Convertitore%20CVS%20to%20QIF.jar">"Convertitore CVS to QIF.jar"</a> (per eseguirlo direttamente in Linux bisogna renderlo eseguibile, vedi proprietà del file).<br />
<br />
Esegui <a href="https://www.dropbox.com/s/2ooiyjvf29gwm1q/Esegui%20CVS%20to%20QIF.bat">"CVS to QIF.bat"</a> nel caso in cui Windows non eseguisse direttamente il file precedente.<br />
<br />
<a href="https://www.dropbox.com/s/nly84dvfvvbm7h5/Convertitore%20CVS%20to%20QIF%20-%20scr.zip">QUI i file sorgenti.</a><br />
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com12tag:blogger.com,1999:blog-7805318852466416983.post-81283560628301883242012-05-17T16:37:00.004+02:002012-05-17T16:37:48.993+02:00Nasce OasiLUG<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgMY1NpY6r5nAjKcSCP48UyFw2ENuU7gxDUm7xaQjCIqiOmk2gD12fT_oO8xybWjXQhgXzUuzpobM0r_LMom7OFhpvWmf_W0QzWUGmR0kpY1LBiPQpa23hD7a-eIwUlzYBDgU_N-lgsalQ/s1600/tux+fiocco.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgMY1NpY6r5nAjKcSCP48UyFw2ENuU7gxDUm7xaQjCIqiOmk2gD12fT_oO8xybWjXQhgXzUuzpobM0r_LMom7OFhpvWmf_W0QzWUGmR0kpY1LBiPQpa23hD7a-eIwUlzYBDgU_N-lgsalQ/s200/tux+fiocco.jpg" width="200" /></a></div>
<b>La mattina del 17 maggio 2012</b> nel garage (in realtà nella taverna... ma garage fa più geek!) di Nick abbiamo (Nicola, Luca ed io) posato il primo mattoncino dell'<b>OasiLUG</b>. Da oggi fino ai primi di giugno vedremo di definire in dettaglio i tre incontri che vorremmo realizzare per farci conoscere.<br />
Gli eventi si effettueranno in presenza di un numero ben definito di interessati per poi, nell'eventualità risultino proficui, continuare con incontri più specifici.<br />
<b>Il primo incontro sarà solo introduttivo</b>, si parlerà dell'open Source, del Free Software, di Linux e delle distribuzioni più diffuse.<br />
<b>Nel secondo incontro ci rivolgeremo ad utenti un po' più smaliziati</b>, elencheremo una serie di programmi multipiattaforma e servizi cloud computing indipendenti dal sistema operativo. Analizzeremo le potenzialità di Linux.<br />
<b>Nel terzo appuntamento effettueremo un'installazione "live" di Ubuntu</b>, seguiremo passo-passo l'installazione nei pc degli utenti interessati.Anonymoushttp://www.blogger.com/profile/17555609928617573091noreply@blogger.com2Via Giulio Locatelli, 33050 Pocenia UD, Italia45.831041977644283 13.10385704040527345.828275977644282 13.098921540405273 45.833807977644284 13.108792540405274