Sottotitolo: Controllo e gestione remota bidirezionale basata su Arduino
Multipiattaforma, multibrowser e opensource (ottimizzata per smartphone)
Eccomi con il progetto forse più interessante fin’ora presentato.
Cercavo su internet un sistema per controllare Arduino via web, il tutto però doveva essere estrememanete flessibile, semplice, adattabile ad uno smartphone ma soprattutto doveva avere una comunicazione bidirezionale e un refresh automatico. Non ho trovato nulla che avesse tutte queste caratteristiche messe insieme, ecco perchè ho deciso di realizzare questo progetto.
La maggior parte dei progetti simili, hanno a mio avviso delle caratteristiche incomplete: quelli specifici per domotica solitamente hanno un’applicazione da scaricare e quindi non sono multipiattaforma, quelli basati via web o hanno un interfaccia graficamente scarsa oppure richiedono il refresh della pagina per aggiornare lo stato delle uscite, oppure ancora hanno la possibilità di leggere sensori, ma non di modificare le uscite…
L’esigenza che avevo io in particolare era che se modificavo lo stato di un uscita non da remoto, ma localmente (tramite un pulsante per esempio), l’interfaccia doveva presentarmi quasi in tempo reale tale modifica esattamente sul tasto di accensione o spegnimento dell’ interfaccia senza dover “refreshare” nulla.
Per fare ciò avevo l’esigenza di utilizzare un’interfaccia web un po’ più complessa di quella gestibile dall’ethernet shield di Arduino, ho quindi optato per utilizzare il Raspberry Pi lato web (ma può essere utilizzato qualsiasi PC con Linux, o con qualche modifica anche Windows), collegato via USB (quindi seriale) con Arduino.
In questo modo ho potuto implementare alcune tecnologie, in particolar modo PHP e jQuery, che mi hanno permesso di realizzare il tutto.
Il funzionamento finale è quindi molto semplice:
L’interfaccia visibile nella foto sopra è una semplice pagina web (ottimizzata come si vede per smartphone). Cliccando sullo slide abilito o disabilito un’uscita (che viene azionata in tempo reale) ed ogni 5 secondi ho il refresh automatico delle uscite e anche degli ingressi anlalogici (nell’esempio sopra ho abilitato solo quattro uscite ed un ingresso).
L’interfaccia completa contiene le 13 uscite di Arduino (escluse la 0 e la 1 che servono per la comunicazione seriale), e i 6 ingressi analogici.
Il collegamento e la configurazione sono semplicissimi: Il Raspberry Pi o il nostro PC va collegato via USB alla board Arduino sulla quale avremo caricato lo sketch, dopodichè caricheremo l’interfaccia e gli script sul Raspberry Pi et voilà, il gioco è fatto.
NOTA IMPORTANTE: Affinchè il tutto funzioni, dobbiamo disabilitare l’autoreset di Arduino. Questo può essere fatto collegando un condensatore da 10uF tra RESET e GND. Se non si fa questo la comunicazione seriale non funzionerà correttamente!
Ma vediamo ora il principio di funzionamento:
Lo sketch di Arduino si preoccupa principalmente di ricevere un comando via seriale. Tale comando deve essere di 7 caratteri, cominciare con *CMD e terminare con /.
Tra “*CMD” e “/”, va inserito il numero del pin seguito dall’azione:
V = value (read) – legge il valore dell’input analogico
S = status (read) – legge lo stato dell’uscita digitale
H = high (write) – porta il PIN digitale su “ON”
L = low (write) – porta il PIN digitale su “OFF”
T = toggle (write) – inverte il PIN digitale
Ovviamente tale sketch pur essendo nato per funzionare con il suo script PHP associato, può essere utilizzato per altre applicazioni.
Lo script PHP invece si occupa di fare da ponte tra l’interfaccia web e Arduino tramite seriale (USB).
Se lanciato senza parametri, restituisce una stringa JSON con lo stato delle uscite digitali e i valori delle porte analogiche.
Per esempio:
{“02″:0,”03″:0,”04″:0,”05″:0,”06″:0,”07″:0,”08″:0,”09″:0,”10″:0,”11″:0,”12″:0,”13″:0,”14″:756,”15″:745,”16″:722,”17″:679,”18″:634,”19”:494}
Se lanciato con il metodo GET, usa due parametri: “pin” (da P02 a P013) e “cmd” (0 oppure 1).
Esempio: http://raspberrypi/ardudome.php?pin=P13&cmd=1, manderà il comando *CMD13H/ ad Arduino, che porterà il PIN13 su HIGH.
Anche qui, pur essando nato per funzionare con la sua interfaccia web, può essere adattato ad altre applicazioni.
L’interfaccia web infine, basata su HTML, jQuery ed AJAX, non fa altro che chiamare ogni 5 secondi lo script PHP e aggiornare la pagine HTML con i valori corretti presi da Arduino. Se uno slider viene clickato, cambiando il suo valore, lo script chiamerà immediatamente lo script PHP passandogli il parametro del PIN da modificare e il VALORE da settare.
Come si può vedere il tutto è semplice ed intuitivo.
Veniamo ora alla fine alla modalità di installazione:
1 – Scaricare tutti i file da github (https://github.com/toggio/ardudome/)
2 – Caricare lo sketch ArduDome.ino sulla board Arduino UNO
3 – Inserire un condensatore da 10uF tra GND e RESET
4 – Connettere Arduino tramite la porta USB al Raspberry PI (o qualsiasi altro PC Linux) con apache e php preinstallato
5 – Caricare tutti i files (eccetto Ardudome.ino e functions.ino) nella directory www (normalmente /var/www)
6 – Verificare il nome della porta USB (normalmente /dev/ttyACM0) e modificarla nel file ardudome.php ($serial->deviceSet(“/dev/ttyACM0”);)
7 – Dare a www-data il permesso per usare la seriale (usermod -a -G dialout www-data)
8 – Verificare la connessione (lanciando il file ardudome.php)
9 – Aprire il browser dello smartphone o del PC su http://yourraspberryip/ardudome.html
Buon divertimento e ci vediamo al prossimo progetto!!!
Scusa, ma perchè non salti a pié pari l’arduino e usi gli I/O del raspberry?
Perché sebbene il Raspberry Pi è molto più web oriented, Arduino è molto più electronic oriented… In parole povere è più facile gestire la mole di shield esistenti per Arduino in questo modo piuttosto che fare il porting.
A presto
Ciao complimenti per il tuo lavoro.
Ho provato a caricare lo sketch ArduDome.ino ma mi da questo errore:
ArduDome.ino: In function ‘void setup()’:
ArduDome:49: error: ‘initializePins’ was not declared in this scope
ArduDome.ino: In function ‘void loop()’:
ArduDome:59: error: ‘getPin’ was not declared in this scope
ArduDome:65: error: ‘readStatus’ was not declared in this scope
ArduDome:69: error: ‘readStatus’ was not declared in this scope
ArduDome:72: error: ‘writeStatus’ was not declared in this scope
evidenziando in questa riga:
inputString.reserve(200);
cosa potrebbe essere?????
Ho Arduino uno …….grazie e buona serata
Ciao Roberto,
Hai aggiunto anche il file functions.ino? Sembra che non l’abbia caricato.
Fammi sapere e a presto
Luca
OK …….il caricamento degli sketch sono andati a buon fine.
Ora altro problema (scusa se ti rompo):
1. mi potresti mandare uno schema dove collegare il condensatore a Arduino tra il reset e gnd;
3. come faccio a dare i permessi, WWW-DATA cosa sognofica???
2. ho caricato i rimanenti file su srv/http (considera che ho un POGOPLU con sopra archlinuk per monitorare l’impianto fotovoltaico tramite 123aurora in remoto, sempre connesso ad internet) mi si carica la pagina come nella tua figura ma poi diventa inacessibile.
Grazie ancora per la tua disponibilità. Poi mandarmi anche tramite la mia email
Ciao Roberto,
rispondo ai tuoi dubbi:
1 – Il condensatore ha due PIN. Uno va su RESET e l’altro su GND, non ti puoi sbagliare.
2 – Per dare i permessi devi eseguire il seguente comando (Testato su Ubuntu, Debian e Raspberry PI): usermod -a -G dialout www-data
3 – Diventa inaccessibile perchè se non comunica con Arduino automaticamente la pagine diventa inaccessibile in modo che si ha la certezza che la nostra interfaccia non sta comunicando con le uscite (o le entrate di Arduino)
A presto
foto reali del progetto si possono vedere?
tipo il collegamento dei fili da arduino a le apparecchiature controllate (immagino con in mezzo un relè).
comunque complimenti davvero per il progetto.
A breve pubblicherò qualche foto, comunque non è che ci sia un granché da vedere…
Tra Arduino e il Raspberry c’è solo un cavo USB. Il resto dipende da cosa vuoi collegare.
Nel mio caso specifico ho collegato una “Relay Shield”, ma qualsiasi uscita è accetta.
A presto
Ciao,
ho fatto anche io un progetto analogo per monitorare i sensori pir dell’antifurto piu’ alcuni sensori di temperatura; i dati dell’arduino vengono elaborati con degli scripts in python che archiviano su DB e creano delle pagine statiche con i grafici dello storico per ora e giorno e lo stato istantaneo aggiornato ogni 30sec. Inizialmente ho usato un guruplug poi sono passato al Raspberry Pi ma con quest’ultimo ho problemi di instabilita ( hang randomici del RPi ) parlando con arduino tramite USB.
Che distribuzione linux stai usando su RPi ?
Hai avuto problemi analoghi ?
Ciao
Michele
Ciao Miki,
io uso l’ultima debian (raspbian) che mi pare la più stabile…
Per quanto riguarda gli hang periodici gli ho sperimentati anche io, ma solo con convertitori USB/Seriali con chip FTDI, mentre con il convertitore seriale integrato in Arduino UNO, non ho avuto problemi (il mio circuito è accesso da circa un mese).
Se non è una delle cose di cui sopra, potrebbe essere legato a qualche error / bug in python.
A presto
Luca
Ciao,
risolto, aggiornando il firmware del Rpi non ci sono piu’ problemi con chip FTDI.
ciao
Michele
Ciao, che tipo di aggiornamento hai fatto?
A presto
Ho usato rpi-update ( https://github.com/Hexxeh/rpi-update/ ) ma si puo’ usare anche “apt-get upgrade”.
Con “apt-get upgrade” aggiorna il pkg raspberrypi-bootloader che contiene tutti i moduli del kernel, il kernel + tutti i file binari presenti in /boot.
Ciao
Michele
Ciao Michele.
Sto cercando da farre un proggetto simile col tuo. Potresti darmi una mano? Qualche dritta per il sketch del arduino e per il sito web del server?
Grazie,
Marian
Ciao scusa ho modificato il codice in modo da poter accendere le luci anche con i pulsanti, l’unica cosa e che ora lo sto testando, e capita a volte che le luci si accendano da sole. Sui pulsanti ho usato delle resistenze da 10kohm. Secondo te da cosa potrebbe dipendere?
C’è qualche problema nei pulsanti, o non hai collegato correttamente qualche componente, o ancora hai effettuato qualche errore nel codice…
Fammi sapere
A presto
ciao giulio,
e la stessa modifica che vorrei fare anche io; come hai fatto?
Ho provato a mettere il condensatore tra il reset e gnd, ma non funziona credo che sia un problema di permessi infatti con il comando “usermod -a -G dialout www-data” mi dice che non riconosce “dialout”. Nel frattempo ho acquistato la Ethernet Shield e con questa non si può adattare il codice dell’arduino anzichè con collegamento seriale con il collegamento ethernet, inviado i dati alla pagina php residente sul server di linux ????????
Ciao Roberto,
ho ricontrollato tutto, ma è corretto (come spiegato anche qui: http://www.fritz-hut.com/tag/dialout/)…
Se non funziona il comando, l’unica spiegazione è che stai usando una distribuzione Linux diversa… Io sto usando l’ultima raspbian (debian) disponibile sul sito…
Fai questa verifica e fammi sapere…
Ciao
Questa è la versione di linux che uso “Arch Linux ARM”
Avviso : impossibile aprire il dispositivo in / srv / http / php_serial.class.php on line 157
Warning : dispositivo deve essere aperto in / srv / http / php_serial.class.php on line 541
Attenzione : il dispositivo deve essere aperto per leggerlo in / srv / http / php_serial.class.php on line 474
Notice : Undefined offset: 1 in / srv / http / ardudome.php on line 70
Notice : Undefined offset: 2 in / srv / http / ardudome.php on line 70
Notice : Undefined offset: 3 in / srv / http / ardudome.php on line 70
Notice : Undefined offset: 4 in / srv / http / ardudome.php on line 70
Notice : Undefined offset: 5 in / srv / http / ardudome. php on line 70
Notice : Undefined offset: 6 in / srv / http / ardudome.php on line 70
Notice : Undefined offset: 7 in / srv / http / ardudome.php on line 70
Notice : Undefined offset: 8 in / srv / http / ardudome.php on line 70
Notice : Undefined offset: 9 in / srv / http / ardudome.php on line 70
Notice : Undefined offset: 10 in / srv / http / ardudome.php on line 70
Notice : Undefined offset: 11 in / srv / http / ardudome.php on line 70
Notice : Undefined offset: 12 in / srv / http / ardudome.php on line 70
Notice : Undefined offset: 13 in / srv / http / ardudome.php on line 70
Notice : Undefined offset: 14 in / srv / http / ardudome.php on line 70
Notice : Undefined offset: 15 in / srv / http / ardudome.php on line 70
Notice : Undefined offset: 16 in / srv / http / ardudome.php su linea 70
Notice : Undefined offset: 17 in / srv / http / ardudome.php su
Questo è la pagina ardudome.php (tradotta in italiano)
Problema di permessi, non hai il permesso di usare la seriale.
In debian il gruppo è “dialout”: devo cercare come dare i permessi con ArchLinux…
Ti farò sapere.
A presto
Luca
Ho trovato in rete questo articolo, http://benjaminbordonaro.com/bb/page/Arduino-Monitoring-System-with-PogoPlug-and-ArchLinux.aspx, il quale ha usato un pogoplug come quello che ho io e arduino ed ha configurato la porta seriale con “python-pySerial” oggi provo
Trovato!!! 🙂
https://wiki.archlinux.org/index.php/Arduino
Il gruppo è “uucp”, quindi il comando dovrebbe essere:
“usermod -a -G dialout www-data”…
Fammi sapere…
A presto
OK il comando è “usermod -a -G uucp www-data” a posto dialout ho sostituito uucp. Ora mi dice che www-data non esiste. Considera che la cartella di linux dove ho copiato i file html e php è /srv/http. Ho provato a mettere http a posto di www ma mi da sempre errore credo che a questo punto ci sia qualcosa che non va su “www-data”. Ti ringrazio per la tua pazienza 🙂
Tranquillo, son qui apposta… 🙂
Devi vedere con quale utente viene lanciato lo script php…
Solitamente è www-data, ma potrebbe essere un’altro utente.
Verifica innanzitutto se usi apache o cherokee come web server, e cerca di capire quale utente usa.
Puoi anche fare un “ls -al” sotto srv e verificare http a quali gruppi/utenti appartiene.
Fammi sapere.
A presto
Notice: Undefined offset: 1 in /var/www/ardudome/ardudome.php on line 69
Notice: Undefined offset: 2 in /var/www/ardudome/ardudome.php on line 69
Notice: Undefined offset: 3 in /var/www/ardudome/ardudome.php on line 69
Notice: Undefined offset: 4 in /var/www/ardudome/ardudome.php on line 69
Notice: Undefined offset: 5 in /var/www/ardudome/ardudome.php on line 69
Notice: Undefined offset: 6 in /var/www/ardudome/ardudome.php on line 69
Notice: Undefined offset: 7 in /var/www/ardudome/ardudome.php on line 69
Notice: Undefined offset: 8 in /var/www/ardudome/ardudome.php on line 69
Notice: Undefined offset: 9 in /var/www/ardudome/ardudome.php on line 69
Notice: Undefined offset: 10 in /var/www/ardudome/ardudome.php on line 69
Notice: Undefined offset: 11 in /var/www/ardudome/ardudome.php on line 69
Non riesco ad uscirne!!!
messo il consensatore, caricato lo sketch, mi da sempre questo errore. Ho visto che potrebbero essere i permessi ma non so come fare.
Probabilmente è un problema di permessi…
Che versione di linux hai?
Hai eseguito il comando “usermod -a -G dialout www-data”?
A presto
risolto!!!! erano i permessi!!!!!!!! Ma se volessi mettere i dati in mysql come posso far?
Ciao Luigi,
sono contento che hai risolto… per quanto riguarda mySQL, va implementato il software per la gestione del DB…
A presto
Uso Cherokee e l’utente è “http” il gruppo è “http”
————————————————————————–
[root@pogosemmy srv]# ls -al
total 16
drwxrwxrwx 4 root root 4096 Mar 16 02:25 .
drwxr-xr-x 19 root root 4096 Jun 5 22:47 ..
drwxrwxrwx 2 root ftp 4096 Mar 16 02:25 ftp
drwxrwxrwx 12 root root 4096 Jun 5 22:48 http
———————————————————————-
[root@pogosemmy dev]# ls -l ttyACM0
crw-rw—- 1 root uucp 166, 0 Jan 1 1970 ttyACM0
—————————————————————————
Ricapitolando:
1) Cherokee lavora con utente e gruppo “http”;
2) la cartella “http” con utente e gruppo “root”;
3) la ttyACM0 con utente e gruppo “root” e “uucp”;
non ci sto capendo piu nulla …. 🙂 qual’è il comando che mi abilita i permesso sulla ttyACM0 ?????
Ok,
il comando giusto è
“usermod -a -G uucp http”.
Prova con questo e dovrebbe funzionare tutto!
Fammi sapere
A presto
Penso che dovrò rinunciarci……… 😦 non funziona……..
Avviso : impossibile aprire il dispositivo in / srv / http / ardudome / php_serial.class.php on line 157
Warning : dispositivo deve essere aperto in / srv / http / ardudome / php_serial.class.php on line 541
Warning : dispositivo deve essere aperto a leggerlo in / srv / http / ardudome / php_serial.class.php on line 474
Spero di essere in tempo..allora ho messo su tutto, ho dato i permessi a www-data
ma quando vado sulla pagina php mi da questo errore:
Notice: Undefined offset: 1 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 2 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 3 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 4 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 5 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 6 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 7 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 8 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 9 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 10 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 11 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 12 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 13 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 14 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 15 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 16 in /var/www/arduinoWeb/ardudome.php on line 70
Notice: Undefined offset: 17 in /var/www/arduinoWeb/ardudome.php on line 70
{“02″:0,”03″:0,”04″:0,”05″:0,”06″:0,”07″:0,”08″:0,”09″:0,”10″:0,”11″:0,”12″:0,”13″:0,”14″:0,”15″:0,”16″:0,”17″:0,”18″:0,”19”:0}
Inoltre se vado sull’html è tutto disabilitato.
Potresti aiutarmi??
Grazie mille!!
ho messo un alert nel js nella parte dell’error del json e mi tira fuori questo:
SyntaxError: Unexpected token ,<
Help! 😉
Il problema è comunque nella comunicazione, perchè il file php non risponde correttamente…
Hai disabilitato l’autoreset su Arduino?
Hai provato a lanciare lo script da riga di comando da root?
Fammi sapere
A presto
Ciao, bello il progetto ed in settimana lo metterò in pratica.
Ti chiedo invece se hai mai pensato di far comunicare arduino e rasp via ethernet perche tipo nel mio caso avrei più piani in casa e non vorrei viaggiare con cavi “seriali” in giro per la casa mentre per l’impianto di rete è tutto cablato.
Tu che mi consigli?
Ciao Max
Ciao,
lo scopo del progetto è proprio quello di non usare ethernet su Arduino.
Ma non serve viaggiare con cavi seriali, semplicemente colleghi il Raspberry Pi alla rete, in un punto vicino ad Arduino.
A presto
Ok, ma nel progetto riesci a gestire tutte le luci di una casa e varie prese? se si come hai sviluppato la parte hardware?
Certamente,
ho semplicemente collegato un modulo con 4 relais, alla quale ho collegato le varie luci e prese.
Niente di speciale.
A presto
quindi tu hai collegato solo 4 rele, non sei andato oltre, io per domonica mi immagino tutta la casa cablata quindi circa 22 rele per le luci e 25 pulsanti, quindi immaginavo qualcosa di più… ecco perche immaginavo un paio di arduino per dividere i piani della casa e quindi comandarli con le seriali…
comunque un buon inizio che merita da testare. bravo
Ah ok, ora mi è un po’ più chiaro.
In realtà ho collegato 4 relais, 4 pulsanti, un display LCD e un ricevitore infrarosso (per usare anche un telecomando).
La cosa più semplice ed economica per utilizzare tutte quegli ingressi / uscite è usare un Arduino Mega (che ha 54 I/O), così non hai bisogno di due “Arduini”.
Il codice funziona già anche per il mega. Si tratta di modificarlo per permettere di gestire tutte le uscite e/o ingressi.
Eventualmente puoi usare anche più “Arduini” e la cosa più semplice per farli comunicare su più piani è usare dei moduli radio 433Mhz a bassissimo consumo (tipi quelli delle centraline meteo) e scambiarsi i dati in quel modo.
Eventualmente se vuoi usare il cavo di rete puoi usare due Raspberry Pi (o più) con i due (o più) “Arduini”. A quel punto fai comunicare tra di loro i due raspberry (tipo fai un’interfaccia web unica, che però punta a due siti diversi – uno per il piano A ed uno per il piano B).
A presto
Be diciamo che mi immaginavo che un rasp pilotasse un arduino uno, questo per moltiplicare le uscite userei un hc595 o più di questi in serie, per gli ingressi userei 6 resistenze ad ogni canale analogico cosi da avere 5 pulsanti con 5 cadute di tensione diverse. per spostarmi dal primo al secondo piano sono limitato come passaggio cavi quindi immaginavo o una comunicazione tramite eth o tramite seriale, cioè il primo ardu funge da “master” mentre il secondo da slave se le comunicazioni viaggiassero tramite eth (ma il sito deve risiedere sul rasp perchè arduino e troppo lento per ste cose) e comunicasse con entrambi gli ardu sarebbe il massimo dato che la casa è totalmente cablata…
comunque un cave com riesco a farlo passare…
Chiaro,
il problema è che il costo di una Ethernet Shield per Arduino equivale ad un Raspberry Pi, è per quello che non ho implementato la comunicazione ethernet tra più Arduino.
A questo punto risolvi o mettendo un’altro Raspberry Pi collegato ad Arduino e poi fai comunicare i due Raspberry Pi tra di loro.
Oppure se hai pazienza attendi un mesetto che esce Arduino Yun con ethernet integrata.
A presto
Forse ho trovato il problema con ArchLinux : http://adayahack.wordpress.com/2012/08/11/arduino-and-arch-linux-permissions/ quando ho due minuti provo.
Ciao Luca,
grazie per aver condiviso questo articolo e complimenti, molto interessante e devo dire che funziona.
Ho giusto due domande:
– a un input dell’arduino ho attaccato un sensore di tempereature TMP36. Il valore che trovo sulla pagina web é il valore raw ((raw *5/1024)-5)*100 e ho la temperatura in gradi °C. Come faccio a far fare questo calcolo alla pagina web? (come ad esempio nello screenshot che hai messo)
– qualche suggerimento su come potrei loggare in un database la temperatura ogni ora ad esempio? pensavo uno script schedulato che via seriale interraga I valori, ma ho notato che se spio con “cat /dev/ttyACM0” l’interfaccia web non funziona piu’. Significa che in parallelo non posso leggere (e nemmeno scrivere) sulla seriale e contemporaneamente avere l’interfaccia attiva?
grazie
Ciao
dk
Ciao Aldo,
mettiamo che il tuo input sia ad esempio sul pin 15, puoi aggiungere nel file “ardudome.js” la riga:
if(parseInt(index)==15) $('#P15').html(parseFloat(Math.round((((value*5)/1024)-5)*100*10)/10).toFixed(1)+"°C");
dopo la riga 66:
$('#P'+index).text(value);
A presto
Ciao a tutti, bellissimo il progetto, stavo implementando il codice per poter pilotare una tapparella (su/giù) ma mi sono bloccato con il pulsante slider. Potete aiutarmi? tipo uno slider che al centro è off, a destra sia on sallita (e magari il codice fa anche controllo che sia off discesa) e a sinistra sia on discesa (e ovviamente codice controlla che il relè sia off salita). Il codice ho già pronto e per ora funziona con 3 pulsanti, uno salita uno discesa e centrale stop motore. Potete aiutarmi con grafica e slider?? GRAZIEEE
GRAZIE lo stesso, risolto, ora ho un bel arduino mega controllato seriale con le sue 53 uscite digitali!
Bene,
a presto!
ciao sergio mi puoi dire come hai modificato il codice per usare arduino mega?
altra domanda, quali file devo modificare per implementare le uscite a 53 invece che a 13 (per usare arduino mega per esempio)?, per il file html e grafica no problem, ma non riesco a capire cosa modificare, ho provato a modificare 53 al posto del 13 nei vari file, ma non funziona. Il tasto nell’interfaccia web funziona, ma non accade nulla, non si accende il led 22 per esempio…
grazie !!
Ciao toggio, in realtà dopo varie prove, mi funzionano solo 48 IO di arduino su 53, e poi ho un po’ di problemi se collego anche lo shield ethernet di arduino su arduino, forse xchè lo shield usa alcune IO. Se ti mando il codice (quello tuo, ampliato a 53) puoi aiutarmi a controllare che tutto sia corretto?
Ciao Sergio,
è ovvio che con la schield ethernet crea problemi… Devi lasciare da parte i PIN utilizzati… Il mio era solo un’esempio…
Ti conviene decidere quali pin usare (ad esempio la shield di sicuro non userà quelli dal 30 in su) e fissare un range (per esempio 30-47).
A presto
e infatti immaginavo, un’altra cosa, ho rimodificato il tutto dal pin 14 al 47, ma continua a darmi una serie di errori sul ardudome.php, una serie di righe tipo
Notice: Undefined offset: 12 in /var/www/ardudome.php on line 70
13 – 14 -15 ecc fino al 45
i permessi e la lettura della seriale da parte del rbpi tutto ok,
sembra che varia in base al valore inserito qui
$tempArray=explode(“\n\n”,$read,47);
// create array with read values
for ($i = 14; $i<=47; $i++) {
dove sbaglio??? me lo dava anche prima ogni tanto quando erano 53, se carico il tuo ardudome.php tutto torna ok…
Ok.
A questo punto il problema sembrerebbe legato alla velocità della seriale. Se il problema come dici tu, si presenta “a volte”, sembrerebbe proprio essere un problema di questo tipo. Prova a portare la seriale a 115200 e partire con 20 pin per poi salire pian piano di 5 alla volta.
A presto
Ciao Sergio, quali file hai modificato per poter usare Arduino mega?
Ciao Toggio,
ho provato il tuo ambiente: funziona!
Il mio obiettivo è avere anche input digitali, per cui proverò a modificare il codice in Functions.ino, a meno che tu mi consigli qualcos’altro… 🙂
Grazie comunque per il buon inizio!
Luigi
Ciao Luigi, la cosa più semplice è quella di usare gli ingressi analogici come se fossero digitali… se applichi un ingresso digitale su una porta analogica otterrai un valore tra 0 e 511 per lo stato logico OFF e un valore tra 512 e 1023 per lo stato logico ON. Altrimenti puoi modificare lo sketch Arduino in base alle tue necessità.
A presto.
Dimenticato si settare il flag per nuovi commenti…..
ciao toggio, voglio mostrare nella pagina web la temperatura come nel tuo screenshot, usando un DS18B20 con la funzione: temp=sensors.getTempCByIndex(0):cosa devo modificare in html, php e js
per ottenere il risultato come nella tua foto?
a presto
CIao Lappy,
devi modificare un po’ tutto il codice, ma la cosa è abbastanza complessa…
Guarda bene il codice di esempio e prova a modificarlo di conseguenza.
A presto
ciao ragazzi ho dei dubbi da risolvere e spero che qualcuno mi aiuti.im casa ho il comando delle luci con relè 220v della finder a doppio stato. ora pensavo di collegare la shield relè che ho con arduino come se fossero dei pulsanti aggiuntivi e sfruttare il secondo contatto del relè finder per comunicare lo stato del relè ad arduino ed al server. solo che non ho la più pallida idea di come fare con il codice.
ciao toggio
quando apro il .php invece della stringa mi si apre il sorgente
cosa può essere ?
Non è installato correttamente PHP.
A presto
ciao io vorrei adattare il codice per comandare i miei relè passo passo in pratica dovrei portare le uscite di Arduino in high per qualche decimo di secondo . poi il relè passo passo ha un contatto che simula un. interruttore se high la luce e’ accesa. ma non so come fare
Devi modificare nel firmware di arduino la parte che riguarda le uscite digitali, impostando un timer che dopo l’accensione (o lo spegnimento) torni a livello logico 0.
A presto
grazie toggio ho provato a mettere una delay ma lo fa con tutti i pin. come faccio?…..
Bellissimo progetto ! Proprio quello che stavo cercando ! Ho un problema però: io uso un arduino Mega e non so cosa devo modificare per far funzionare tutte le altre uscite.
Sono riuscito a modificare l’html per fare in modo che vengano visualizzati molti più pulsanti ma immagino che ora ci sia da modificare anche il file php, e il JS perché da quello che ho capito tu fai un controllo che il pulsante premuto (nella pagina) sia compreso tra 2 e 13. Per la parte Arduino dovrei riuscire anche se devo capire bene qual è il comando preciso che arriva sulla seriale quando premo per esempio il pulsante P02 nella pagina web. Sulla seriale viene inviato il comando *CMD02H/ o *CMD02T/ ? Oppure nessuno dei due ?!?
Va modificato completamente tutto… Quello che posso dirti è di fare un po’ di esperimenti!!! Buona fortuna!
A presto
complimenti, ottimo progetto!
Complimenti, bellissimo progetto! Ha funzionato tutto al primo colpo!
Avrei un paio di domande; sono un elettricista, quindi in collegamenti e tutto chiaro, ma in programmazione sono veramente scarso e x questo mi piacerebbe capire e imparare!
1 – nella descrizione parli anche di comandi locali, tramite pulsanti; che attivano sempre le stesse uscite attivabili da remoto! suppongo che sia parte di codice da aggiungere…potresti aiutarmi a capire?
2 – solo x alcune uscite, come si può dare un comando temporizzato di una trentina di secondi (chiaramente sia da locale e che da remoto) x comandare la salita e la discesa delle tapparelle?
Ciao Tony e grazie per i complimenti!
Per quanto riguarda i tuoi quesiti, ti consiglio di fare delle ricerche su internet. Ti posso comunque dare un paio di spunti. Per i comandi locali, cerca articoli che riguardano l’utilizzo dei pulsanti su Arduino, mentre per il discorso temporizzato è un po’ più complesso… Prossimamente pubblicherò un’articolo sulle temporizzazioni…
A presto!
Ho seguito il tuo consiglio sulla funzione pulsante, che ho capito e funziona! ma inserendola nel tuo codice, non riesco a farla funzionare, mi causa un blocco nella pagina web, e non funziona più nulla!! help!
Ciao, complimenti per il progetto .. E tutto aveva bisogno. Peccato che non so molto di programmazione ..
Volevo vedere se mi può aiutare, io non sto ottenendo il file ardudome.ino dare questo errore, initializePins, chiedendo di impostare questo, ecco nei commenti che ho visto è stato il file mancanza functions.ino, qui è più come faccio a caricare perguna i due file invece?
Un’altra domanda che volevo mettere un cursore di tipo pulsante per controllare una lampada in una delle uscite PWM, potrebbe dirmi come fare, se possibile, alcuni comandi presenti sul web, ma non ho potuto farlo funzionare .. Sono molto male necessità di programmazione, se non occupa molto del vostro tempo e mi può aiutare, mi dispiace perché sto utilizzando google traduttore per parlare qui .. Successo abbracci partner.
att: Andre Rds.
Caro Andrerds,
il file function.ino va messo nella cartella assieme al file principale: in questo modo verrà caricato direttamente nell’IDE di Arduino.
Per quanto riguarda il PWM, è una delle cose che mi ero posto di fare, ma al momento risultava abbastanza complicato. Dovrei riuscire prossimamente, tempo permettendo, ad implementare anche questa funzionalità.
A presto
Blza mestre… Sucesso sempre estarei de olho .. aqui nas novidades…
Ciao e complimenti per il progetto. ottimo.
ti volevo chiedere come si fa a caricare i file nel raspberry (nella cartella var/www).
Grazie
Tramite protcollo SSH (ad esempio con WinSCP).
Saluti
Hey! , Toggio,
Quanto sopra potrebbe risolvere il mio problema,
Comandi impartiti tramite la porta seriale (exemplor CMD12H * /) tutto ha funzionato perfettamente, il mio problema ora e Php. mi sta restituendo gli errori di seguito.
Warning: Reading serial port is not implemented for Windows in C:\xampp\htdocs\ardudome-master\php_serial.class.php on line 503
Notice: Undefined offset: 1 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 2 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 3 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 4 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 5 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 6 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 7 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 8 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 9 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 10 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 11 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 12 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 13 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 14 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 15 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 16 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
Notice: Undefined offset: 17 in C:\xampp\htdocs\ardudome-master\ardudome.php on line 71
{“02″:0,”03″:0,”04″:0,”05″:0,”06″:0,”07″:0,”08″:0,”09″:0,”10″:0,”11″:0,”12″:0,”13″:0,”14″:0,”15″:0,”16″:0,”17″:0,”18″:0,”19”:0}
Mi potete aiutare?
Grazie!
Ciao,
semplicemente non funziona con Windows.
A presto
Ciao, complimenti per il sito (e per la lampada…).
Anche io sto realizzando un impianto domotico e vorrei renderlo ‘auto aggiornante’ come hai fatto tu con AJAX.
Purtroppo questo linguaggio proprio non lo conosco.
Saresti così gentile di commentare le varie function presenti all’interno del file “ardudome.js”.
Grazie, Simone.
Abbi pazienza, appena ho tempo la faccio!!!
A presto
Ottimo progetto. Io sto iniziando a studiare questo mondo e ho intenzione di aggiungere altre funzionalità. Tuttavia riscontro il solito problema ( Notice: Undefined offset: 1 in /var/www/ardudome.php on line 70 ). Il mio arduino Uno REV3 è collegato ad un pc con ubuntu 12.04.4.
Ho dato il comando “usermod -a -G dialout www-data” e “sudo chmod 666 /dev/ttyACM0
“. La porta dovrebbe essere quella giusta visto che dmesg mi da questo “[1882144.794097] cdc_acm 3-2:1.0: ttyACM0: USB ACM device”.
Inoltre ho disabilitato l’autoreset in questo modo —> https://docs.google.com/file/d/0B7OLu7EN8ZW-bHhGOFN4RmVHVFE
[RISOLTO] In pratica se collegate arduino al pc tramite HUB USB non riuscirete a comunicare tramite seriale.
Ciao, complimenti per il progetto è utilissimo per chi vorrebbe fare un impianto economico di domotica a casa 🙂 … Sono riuscito a farlo funzionare perfettamente, però ho un problema ora. Come faccio a far leggere un segnale analogico e inviarlo al php? Che parte dello sketch devo modificare? Lo sketch legge il valore analogico però se voglio gestire quel valore e inviarlo al php come posso fare? Come ad esempio il valore di temperatura di un sensore come il ds18b20 ( così come illustrato nell’immagine di copertina dell’articolo ). Spero di averti fatto capire il mio problema… Grazie mille ! A presto 🙂
Ciao Giuseppe,
il software fa già le letture dei segnali analogici e le trasferisce in automatica allo script PHP.
Il valore trasferito sarà sempre un valore da 0 a 1023, e poi o in PHP, in js andrà fatto il calcolo per la conversione in temperatura.
A presto
Ciao Luca, grazie mille per avermi risposto 🙂 … Infatti studiando bene come avveniva il funzionamento sono riuscito a risolvere il problema aggiungendo delle funzioni in php… Grazie ancora per questo utilissimo progetto!!! A presto!
Ciao,
complimenti per il tuo progetto, ho seguito la procedura
da te indicata, ma mi sono bloccato sulla pagina di test
ardudome.php che mi da una serie di errori tipo il seguente:
Notice: Undefined offset: 1 in /var/www/HTML/ardudome.php on line 70
Il Sistema operativo che sto usando è Centos con Apache,
ho dato i permessi alla usb /dev/ttyACM0 inserendo la
user apache nel gruppo uucp.
Ho copiato i seguenti files, in /var/www/HTML
ardudome.css
ardudome.html
ardudome.js
ardudome.php
php_serial.class.php
Se apro la pagina http://localhost/ardudome.html si apre
l’interfaccia con tutti gli slide che rimangono abilitati
per 2-3 secondi e poi si disabilita tutto, se faccio un refresch
della pagina si riabilitano per 2-3 secondi e poi si disabilita tutto
di nuovo.
Se porto a ON uno degli slide prima che venga disabilitato, funziona.
Se punto direttamente a http://localhost/ardudome.php?pin=P13&cmd=1
funziona e mi porta a 1 l’uscita 13 dell’Arduino.
Mi sapresti aiutare a risolvere questo problema?
Grazie
Paolo
Il problema è legatyo probabilmente alla connessione seriale.
Verifica anche di aver disabilitato l’autoreset di Arduino!
A presto
Ciao,
l’autoreset è già disabilitato inserendo il condensatore da 10uF fra la GND e il Reset di Arduino.
Ciao,
non so più cosa fare… ho ricontrollato tutto, ma il problema è sempre lo stesso che ti ho descritto il 4 novembre, forse non è compatibile con CentOS? Altre idee?
Grazie
Paolo
Ciao,
sono finalmente riuscito a far funzionare il tutto sul Raspberry!
Ma ho un problema con la lettura della temperatura usando il sensore LM35 su uno degli ingressi analogici. In pratica aggiungendo la seguente riga,
if(parseInt(index)==14) $(‘#P14’).html(parseFloat(Math.round(value*0.5)).toFixed(1)+”C”);
nella pagina ardudome.js appena dopo la riga 66, la temperatura viene correttamente letta, ma i valori continuano ad oscillare come per gli ingressi analogici che non hanno nulla di collegato.
Il sensore funziona correttamente perchè l’ho testato collegandolo in un altro progetto solo con l’Arduino e i valori di temperatura letti sono precisi e stabili.
Mi sai dire se c’è altro da modificare nel codice della pagina ardudome.js?
Grazie!
Paolo
Ciao,
intanto complimenti per il tuo progetto e grazie per averlo condiviso.
Sto cercando di fare un lavoro simile al fine di farlo funzionare con arduino Yun in modo da poter evitare il collegamento usb con il RaspberryPI e sfruttare invece le librerie bridge.
L’idea è quella di poter avere un webserver che sia aggiornato sullo stato dei sensori/attuatori dello Yun, e da questo comandare/controllare lo Yun.
Partendo dal tutorial del Bridge (http://arduino.cc/en/Tutorial/Bridge) ho fatto uno sketch che restituisce una stringa (es. {0000100518011148100}) corrispondente allo stato dei vari sensori/attuatori in uso, e sul server ho fatto una paginetta php che via curl (anzichè via usb/seriale) va a recuperarsi questi dati e li restituiscein formato json.
Facendo alcuni test mi sono reso conto che la risposta dello Yun interrogato via web è piuttosto lenta, (qualcosa che va mediamente da 500 a 2000 ms per ottenere la stringa), pertanto inadeguata ad essere sfruttata in un sistema dove sapere se un attuatore è acceso o spento è fondamentale o poter accendere un carico senza dover aspettare 2 secondi è quantomeno auspicabile. 🙂
Cercando in rete ho capito che il problema è noto, allora ho pensato di sfruttare la parte linux dello Yun per ottenere la stringa.
Ho trovato questa libreria (https://github.com/arduino/YunBridge/blob/master/bridge/php/bridgeclient.class.php) che mi ha portato sin qui e che, se non ho capito male, dovrebbe interfacciarsi con lo sketch sullo Yun e farmi ottenere in maniera molto più immediata i dati che mi occorrono, ma non capisco bene come usarla.
Saresti così gentile da spiegarmelo?
Grazie 1000
Ciao e grazie a te.
Il principio lo puoi vedere nell’esempio pubblicato qui:
https://github.com/arduino/YunBridge/blob/master/bridge/php/example.php
A presto
Ciao, è la prima volta che ti scrivo e ti faccio i complimenti per il progetto.
Nel provarlo non ho avuto problemi e funziona tutto.
Ora però vorrei personalizzare l’interfaccia grafica inserendo nuovi slider e renderlo compatibile con uno sketch che gira su Arduino Uno che di fatto controlla le uscite di 5 moduli di espansione per mezzo del bus i2c.
Ho iniziato a rivedere il codice del mio sketch di Arduino, utilizzando la tua sintassi per i comandi seriali. Quindi, nella parte relativi ai comandi seriali ho inserito quanto segue, per esempio per lo slider P02:
if (inputString == “*CMD02V/”)Serial.println(StatoAttualeUscita0[0]); // StatoAttualeUscita0[0] è un boolean
if (inputString == “*CMD02L/”)SpegniUscitaPP(0,0);
if (inputString == “*CMD02H/”)AccendiUscitaPP(0,0);
Eseguendo il debug dello sketch non ci sono problemi sia nell’inviare i comandi attraverso il serial monitor sia nel ricere 0 o 1 per gli stati uscita.
Pur non avendo fatto alcuna modifica nei file php, html e js caricati nella cartella /var/www/ del raspberry (salvo aver tolto le parti riguardanti i valori letti dei pin analogici solo nella pagina html) la pagina html non risulta disponibile e la causa non è da imputare all’autoreset
Penso che il problema possa essere nei vari file .js o .php ma non ne capisco il motivo visto che ho tenuto gli stessi comandi seriali del tuo progetto e, per ora, anche lo stesso numero di slider.
Avrei bisogno cortesemente di una tua dritta.
Grazie in anticipo
Ciao
Mandami i file che gli do’ un occhio!
A presto
CIao,
complimenti per il progetto, molto bello, ed infatti sto cercando di attuarlo anche io 😉
Ho però un problema, ovvero avendo una Raspberry B+, con 4 porte usb, non riesco a capire qual è l’indirizzo della porta usb a cui è collegato l’arduino!
Dando dal raspberry “lsusb -v” vedo che è connesso, mi appare questa schermata ( http://s12.postimg.org/5dw1tmi19/RB_Arduino.jpg ) ma non capisco qual è il suo indirizzo da utilizzare 😦
Mi puoi aiutare? Sai se c’è un altro comando da usare nel raspberry per ottenerlo?
Grazie 🙂
P.S.: Un altro piccolo dubbio, ma l’arduino oltre a connetterlo via usb al raspberry, lo devo anche alimentare? Non facendolo si accende, ma non so se è stabile/corretto
Salve,siamo una ditta di ferrara,stiamo cercando un programmatore di arduino che ci desse una mano per un progetto.
Se interessati Alfredo 3771211342 o assistenza@emcfe.com
Ciao, complimenti per il progetto, è possibile avere delle foto del progetto per i vari collegamenti?
Grazie
Le pubblicherò a breve!
Ciao e grazie
Luca
Ciao Luca,
puoi dirmi quale sensore di temperatura hai usato nel tuo progetto?
Grazie
Paolo
ciao ,
ho provato il tuo progetto con un arduino 2009 e la parte php su un server ubuntu 12.
ho seguito tutte le indicazioni ( condensatore , permessi www-data ,)
quando lancio ardudome.php ottengo questo errore :
root@frserver:/var/www/tana# php ardudome.php
PHP Notice: Undefined offset: 1 in /var/www/tana/ardudome.php on line 70
Notice: Undefined offset: 1 in /var/www/tana/ardudome.php on line 70
PHP Notice: Undefined offset: 2 in /var/www/tana/ardudome.php on line 70
ripetuto per tutta la lunghezza dell’array,
Leggendo altri commenti sembrerebbe un problema di permessi.
Ho fatto varie prove ma nulla.
Allora ho modificato il php facendo leggere lo stato solo del pin 14 ( A1) , e ottengo un valore :
root@frserver:/var/www/tana# php rf.php
“317\r\n”root@frserver:/var/www/tana# php rf.php ~
“324\r\n”root@frserver:/var/www/tana#
quindi penso che la comunicazione avvenga in modo corretto.
Potresti darmi qualche indicazione ? forse non è compatibile con Arduino 2009 ?
grazie
ciao
fabrizio
Ciao e complimenti. Io ho realizzato una pagina web con cui controllo tramite il mio raspberry le luci di casa (non uso arduino). Tutto funziona perfettamente ma volevo inserire i pulsanti switch come i tuoi. Mi puoi aiutare?? se ho capito bene il file JS serve a fare da ponte tra html e php. Mentre php dovrebbe indicare l’accensione e lo spegnimento delle luci facendo riferimento al mio file luceon.py o luceoff.py. Ho provato a fare modifiche partendo da tuoi file ma non ci riesco. Grazie mille in anticipo
Ciao, e’ tanto tempo che sto lavorando con uno sketch per domotizzare la mia casa. Ho un arduino mega 2560 e una eterneth shield. .poi ho preso un raspberry b+ e cercando cercando ho trovato il tuo progetto.Fantastico davvero !!!!
Ho bisogno di un aiuto.
I file per arduino li ho caricati perfettamente ..mentre non so come caricare gli altri file su raspberry. ..iinoltre ho sei sensori mcp9700a e/to che non so come adattare al tuo progetto.
Resto a tua disposizione per altre informazioni.
Grazie !!!!
Ciao, complimenti per il progetto, mi chiedevo se potesse girare su un vecchio smartphone android, collegato ad arduino con cavo otg.
Utilizzando Windows invece che Linux?
Ciao e complimenti per il lavoro, installato tutto seguendo la guida, nessun problema.
Ora pero ti volevo fare una domanda, usando una arduino mega ho provato a non usare la usb ma una delle sue seriali aggiuntive con un max232 per la conversione ttl seriale.
Se provo uno sketch con arduino e il pc la seriale funziona perfettamente a 38400, se pero cambio i parametri nel file php, mettendo come seriale /dev/ttyS0, quando apro la pagina web rimane inattiva, come posso risolvere??
Su puo usare una delle altre seriali dell’Arduino Mega o no ?
Grazie
Ciao ho un problema con la pagina web,quando clicco sul pulsante non passa a on ma rimane sempre ad off. Come posso risolvere. Uso Ubuntu 14.04
Ciao ho un problema con la pagina web, i pulsanti non funzionano
Ciao, ottimo progetto. Da quello che intuisco, tramite Smart Phone mi collego al tuo sistema se sono in casa e mi collegi tramite wifi. Ma se fossi fuori casa e mi volessi collegare al tuo sistema tramite smartphone che cosa dovrei fare. Saluti
E’ la stessa cosa…
Devi gestire dal tuo router l’accesso alla porta e all’IP del Raspberry dall’esterno.
A presto
Ciao Luca
Come hai scelto la velocita della seriale ? Perche lroprio 38400?
Andrea
Perchè dopo vari test da me eseguiti, mi è sembrato un buon compromesso tra velocità ed affidabilità.
Ciao
Grazie
Sto provando ad usarlo con Udoo con un po di modifiche
Andrea
Ciao Luca
Gran bel progetto, volevo chiederti se è possibile cambiare il nome ad esempio OUT 02 in Corridoio e volevo sapere che tipo di sensore hai utilizzato per la temperatura . Io ho provato con un lm35dz ma mi sballa la temperatura.
Grazie
Ottimo lavoro e ben fatto. Ho letto nella tua presentazione che parlavi di poter utilizzare ardudome anche con un pulsante. Dato che non sono molto esperto, ma vorrei utilizzare anche con pulsanti manuali mi potresti spiegare come posso fare ad integrali.
Ciao e grazie
Ciao Toggio,
ho dei LED collegati su Arduino ai pin 13, 12 e 11, che vorrei accendere tramite una pagina php presente su raspberry, i due sono collegati tramite seriale USB.
Il collegamento seriale funziona
la pagina php funziona
accedendo da remoto al raspberry con l’ IDE riesco ad accendere regolarmente i LED
non riesco ad accendere i led dalla pagina php
ho controllato più volte la guida seguita e ne ho controllate altre per confrontarle, ma niente dovrebbe essere solo un problema di permessi è possibile?
ciao, vorrei utilizzare questo tuo codice come partenza per un mio progetto ma non riesco a farlo funzionare.
volevo creare una diversa mappatura di I/O e una comunicazione bidirezionale.
puoi darmi una mano?
Ciao, complimenti per il lavoro svolto…Eccellente!!! mi servirebbe oltre a leggere i valori dei pin far passare un valore intero e leggerlo sull’interfaccia, magari con l’implementazione html me la saprei cavare da solo, Grazie in anticipo
Ciao Luca, sono riuscito a capire come implementare con il passaggio dei valori interi, ora mi sono bloccato con l’autentificazione e ti posto il codice
“password” );
$valid_users = array_keys ( $valid_passwords );
$user = $_SERVER [ ‘PHP_AUTH_USER’ ];
$pass = $_SERVER [ ‘PHP_AUTH_PW’ ];
$validated = ( in_array ( $user , $valid_users )) && ( $pass == $valid_passwords [ $user ]);
if (! $validated ) {
header ( ‘WWW-Authenticate: Basic realm=”My Realm”‘ );
header ( ‘HTTP/1.0 401 Unauthorized’ );
die ( “Not authorized” );
}
?>
messo in testa sulla pagina in php funziona, ma se chiudo e riapro il browser e rientro si apre lo stesso senza farmi piu’ autenticare, se a questo punto aggiorno la pagina mi costringe ad autenticarmi.
questo succede perchè sul tuo progetto non c’è aggiornamento di pagina ma si aggiornano solo i contenuti, e dopo un milione di prove non ci vengo a capo
Sapresti aiutarmi a riguardo???
Grazie 1000