Controllo Arduino con Php (Php+Ext)

Buongiorno a tutti.

Ho praticamente ultimato (sto scrivendo un po' di documentazione) una applicazione per controllare Arduino con php, il tutto presentato in una forma grafica semplice e, spero, gradevole.
Il vario codice e' stato scritto un po di "getto" (circa 15 giorni ) e quindi ho programmato che la prossima settimana mi mettero' a limarlo e ottimizzarlo un po'; quando avro' finito mettero' ovviamente tutto il codice a disposizione della comunita' in forma libera.
Se volete dare un'occhiata alla documentazione,anche se attualmente in completamento, la pagina e' : leoser.altervista.org/arduino.html

Grazie e aspetto feedback.

Ciao, ho dato un'occhiata al link, stai facendo un lavoro spettacolare, complimenti! Però io sono completamente all'oscuro di questa materia, e vorrei capire come poter testare il tuo software appena lo renderai disponibile.
Ho immaginato di aver bisogno da un lato del PC configurato con WAMP (Apache-Php... e MySql?) e collegato ad internet, e dall'altro di Arduino + scheda ethernet; in tal modo dal pannello di controllo posso gestire i pin e leggerne eventuali valori.
Come sintesi ci siamo o ho sparato xxxxxxate?

Ciao
il lavoro e' finito ma quello dove sto perdendo piu' tempo e' la documentazione; ero partito per fare una caramella e alla fine.....c'e una torta completa da documentare!
WAMP va benone; sul sito e' comunque spiegato tutto.
Si come sintesi ci siamo ma lo scenario e' forse migliore.
Non e' necessario essere in rete; WAMP lo fai girare su localhost e quindi basta 1 pc con seriale (o seriale usb), non hai bisogno di usare nessuna scheda ethernet/ethernet shield , nessun serial proxy, ecc.ecc ; se vuoi, metti il server online, usi un dns dinamico (o se sei fortunato ad avere un ip statico!!) e ti controlli il tuo arduino dalla cina.
Unica limitazione e che Arduino sia collegato "fisicamente" al pc che lo controlla! Ma non sarebbe per niente complicato fare una versione per un controllo full ethernet.
Originariamente ero partito in perl ma poi ho pensato che con php, bene o male, ci mettono le mani tutti.
Poi, visto che c'e di mezzo una estensione php, meglio ancora.
Questa sera vado avanti con la documentazione.Come ho scritto nella pagina web ci vorra' almeno 1 settimana per finirla e , visto che ho scritto di "getto", un'altra per sistemare/ottimizzare un po di codice.
Cosa carina, oltre i vari controlli, c'e un'abbozzo di wathdog (fino a 6 controlli che girano in background) configurabili a piacimento.
Ci sara da provarla a fondo e qui confido nella comunita'
Un saluto

non male come idea :slight_smile:
PS: metti il link come link,ossia usa i tastini che vedi sopra le faccine..

Buonasera a tutti
sul sito sono disponibili i download della sola estensione o di tutta l'applicazione.
Riporto il link alla pagina : http://leoser.altervista.org/arduino.html; i dowload li trovate alla fine.

*ATTENZIONE * l'estensione e' compilata per php 5.3.0

Sono un po di anni che non bazzico il c e la board arduino l'ho avuta in regalo (strausata) ad inizio mese; il codice non e' sicuramente dei migliori e per questo vi sarei grato se voleste scrivere osservazioni ,suggerire modifiche o nuove funzionalita' ,ottimizzazioni in particolare sulla parte dello sketch o, meglio ancora, partecipare con il vostro apporto al progettino.
Tutto il software e' ovviamente open.

Lo sviluppo continua.....dateci un'occhiata e datemi il vostro parere.
http://leoser.altervista.org/arduino_controllo_php.html
Grazie

Ciao,

complimenti per il lavoro lo trovo molto interessante e completo e mi ripormetto di dargli una occhiata e mi piacerebbe testarlo per capirci di più
Attualmento ho soltanto la board "arduino uno" e lo shield lcd (che credo non serva) e da quello che ho capito per provare basta avere solo la scheda arduino, nel mio caso la versione "uno" e collegarla al computer tramite USB è corretto?

Ciao
fiodavid

Bel lavoro!!! quello che hai fatto con php è molto simile a quello che sto facendo su SD card, con html e javascript sono ancora lontano dal completarlo dato il poco tempo, ma vorrei renderlo più indipendente possibile senza macchine esterne.

ciao

fiodavid - ciao e grazie
sono dentro al mondo arduino da fine settembre, cioe' da quando sono venuto in possesso di un 2009 usato. Mi riprormettevo di studiare altri modelli per capire se sono necessarie modifiche (l'ho messo nel TODO sul sito) ma non penso che ci siano grossi problemi, a parte il fatto che il 2009 ha 13 io dig(6pwm) e 6 ang e quindi, se hai arduini con piu' pin , posizioni dei pin pwm diverse rispetto al 2009 (questo non lo so, mi devo documentare) i pin eccedenti e le posizioni differenti non li potresti gestire, a meno di mettere mano al programma che, come vedi, e completamente free.
Ho previsto la cosa e il programma e' flessibile, almeno per la configurazione, a queste variazioni, un po' meno il layout ;adesso con 19 pin ci sta tutto giusto giusto in 1280 px. Si tratterebbe comunque di realizzare un layout differente, quello che ci sta dietro non cambia.
L' LCD,a parte che non l'ho, non serve proprio in quanto hai tutto davanti al monitor; e poi ti porta via un sacco di pin.
Comunque, per provare, basta la board, cavetto usb , server web (wamp e' ok) e basta; nessuno shield ne serial proxy ne altro.
La parte di accesso da remoto purtroppo non la posso testare a fondo in quando il provider mi blocca l'attribuzione del dns dinamico; su lan interna funziona bene.
Altra cosa che dovro' fare e' compilare l'estensione anche per altre versioni php;per adesso e' compilata vc9 per php5.3.0 .

pablos - ciao e grazie
il progetto e opensource quindi, se ti serve qualcosa, "prendila e usala"!
Il mio obbiettivo era quello di usare la configurazione "minimale" hardware (board, cavo usb e stop) e software (niente serialproxy o altre classi/dll che su windows danno problemi), la "poor-man" tanto per interderci.
Riguardo alla classe php piu' in voga al momento (parlo della php_serial_class), la usero' per la versione linux.Come ho scritto sul sito, su windows funziona solo in uscita ma non in entrata; e poi resetta continuamente la porta!
Ho deciso di scrivere tutto in php per permettere a piu' gente possibile di usare il codice; forse java sarebbe stato piu' idoneo (o phyton o forse in perl) ma sicuramente avrebbe avuto molta meno platea .
Adesso sto lavorando alla parte di accesso remoto con android e sono circa a meta'; penso di mettere sul sito l'applicazione per il download a fine settimana;non ho grosse potenze di macchina (ho un vecchio nb acer celeron D) e l'emulatore e' un macigno!
Oltre che a provarlo nell'emulatore ho un asus eeepc con installato il porting x86 di android (e' un 7" 800x600, diventa un tablet praticamente) ma non ho un vero dispositivo android....spero che qualcuno lo provi per me, come spero che mi arrivino dei feedback dall'uso dell'applicazione!
Magagne sicuramente ce ne saranno ma, se sviluppi sw, sai bene che la figura del tester non e' mai quella dello sviluppatore!
L'ultimo passo sara quello dello SCADA; ma qui mi aspetta un bel lavoro in quanto dovro cambiare sia l'estesione php per gestire l'overlapped , sia lo schetch di arduino, cominciando ad usare le interruzioni.Studiare!Studiare e ancora studiare!
Altra storia.
Se hai bisogno di qualche delucidazione sull'applicazione contattami pure.

Ma il link del download sketch non va? http://leoser.altervista.org/download_ard.php

ciao

la notte, i vecchietti, dovrebbero andare a dormire invece che smanettare!!! a posto..grazie per il feedback

Ciao Leo , complimenti per il lavoro svolto,
Ho seven installato sul portatile hp con turion doppio processore,
ho un problema: ho cercato la versione 5.3.0 di php ma non sono riuscitpo a trovarla in rete .... ho quindi scaricato il pacchetto WAMP da qui :WampServer, la plate-forme de développement Web sous Windows - Apache, MySQL, PHP per la versione a 32bit quello con la 5.3.5 , ho fatto partire il tutto (Dopo aver settato quello che dici nel tuo sito) ma la pagina web mi da degli errori...
Poi sono riuscito a trovare php 5.3.19.... ho eliminato la precedente ( brutalmente eliminato la directory "php 5.3.5", ed installato l'altra ...... ma alla ripartenza WAMP non mi parte + ...... :sleeping:

Cosa devo fare ?

grazie

marco

Ciao Marco
dimmi gli errori che ti da che vediamo di capire cosa non ti funzia; la versione php non si cancella cosi', forse ti conviene reinstallare.
Altre cosa, dimmi anche che versione di apache hai.
...ho programmato per domenica di scaricarmi l'ultima versione con apache 2.2.22 e php 5.3.13 e ricompilare l'estensione.
La versione che ho io (apache 2.2.11 e php 5.3.0) la puoi scaricare da qui :
WampServer - Browse /WampServer 2/WampServer 2.0 at SourceForge.net e' la 2.0i (la prima.

Non partendomi + wamp non mi ricordo che errore c'era scritto sulle tre tabelle che si aprivano sulla pagina web .
ora vedo di disinstallare wamp e di mettere la versione del link che mi hai dato.
ti faccio sapere

grazie

Ti ringrazio...mandami un messagio privato se vuoi.
Ciao

Ho disimstallato la versione di Wamp, ho eliminato la directory wamp, ed ho lanciato l'installazione della versione che mi hai linkato. Ho fatto le variazioni sui files .ini , ed ho copiato la dll ove indichi.Poi ho estratto il tuo file zip in wamp/www
Apro firefox , digito 127.0.0.1 ed escono i seguenti errori:
Notice: Undefined index: close_me in C:\wamp\www\index.php on line 10

Notice: Undefined index: start in C:\wamp\www\index.php on line 66

Fatal error: Call to undefined function OpenSS() in C:\wamp\www\index.php on line 78

Ciao
allora, sui primi 2 sono messaggi informativi...se vai sull'icona wamp, php, impostazioni php dovresti avere display_errors con la spunta; toglila.
La seconda e' invece l'estensione che non c'e; l'hai copiata nella cartella wamp\bin\php\php5.3.0\ext
Controlla che nel php.ini ci sia una cosa del genere (ti posto un pezzo del mio)

; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; extension folders as well as the separate PECL DLL download (PHP 5).
; Be sure to appropriately set the extension_dir directive.
; 
;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dio.dll
;extension=php_dba.dll
;extension=php_exif.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_ming.dll
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll  ; Use with Oracle 11g Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll
extension=php_simple_serial.dll

Stessa cosa nel file phpForApache.ini
Ciao e grazie per il supporto ed il feedback

ok ora se apro la pagina 127.0.0.1 .... perfetto.... è una meraviglia...

ora non ho collegato arduino, io ho l'uno rev 3 ...., domani provo( x stasera mi basta così..) .. dici che ci saranno problemi?

hai fatto un lavoro splendido. Mi piacerebbe imparare a programmare in php , c'è qualche link con tutorial che mi puoi consigliare?

grazie

marco

Ciao Marco...ottimo!
Mi hai comunque aiutato a sistemare la parte installazione server; ho gia fatto delle modifiche sul sito(in effetti mancava un passaggio che e' scontato per chi ci smanetta su ma non per tutti).
Domani copio la parte installazione in un readme che metto nel file zip che si scarica...me ne ero proprio scordato.

Io non sono un arduinista; questo 2009 usato mi e' stato regalato a settembre ma mi sembra che abbiano gli stessi numeri di pin...per me ti funzia lo stesso.....cosi' mi fai un test con l'UNO!
Comunque nel forum ci sono persone che ne sanno molto ma molto piu' di me in materia.

Ti sarei molto grato se mi riportassi , a parte gli errori CHE SARANNO TANTI, funzioni o cose nuove che vorresti che il programma facesse.
Per il php ...il server lo hai gia,hai i sorgenti dei prorammi (forse un po complicati se parti da zero).
Di tutorial ce ne sono molti in rete; se parti da 0 o quasi quello di html.it Guide | HTML.it ( in italiano) va gia' bene.

Ciao