Home
Accesso / Registrazione
 di 

PHP con Arduino via Ubuntu

Arduino e il PHP tramite Ubuntu LAMP

Gestire Arduino con il PHP si può! Tramite Ubuntu è stata realizzata una comunicazione PHP - Arduino tramite porta seriale. Molto interessante dal punto di vista didattico. Vediamolo nel dettaglio.

 

Comunicare dal PC verso il mondo esterno è sempre stato un limite dei programmatori ad alto livello (diciamolo), come allo stesso tempo, gestire programmi ad alto livello (PHP, C#, JS, PERL, etc) è sempre stato un limite per i programmatori embedded (diciamo anche questo).

 

PHP ed Arduino

Unire la potenza del PHP all'hardware di Arduino può essere sicuramente spunto per innumerevoli applicazioni.
In questo particolare esempio di collegamento PHP/Arduino viene utilizzata la classica struttura LAMP (Linux Apache MySQL PHP) per far lampeggiare un LED (collegato ad Arduino) quando succede un particolare evento in PHP.

Si parte da una pagina web in php e tramite la classe PHP si accede alla porta seriale del PC (ad esempio COM1). Quindi deve essere collegato Arduino alla porta seriale RS232 del PC. Allo stesso tempo su Arduino deve "girare" la routine di gestione porta seriale.

Quando da PHP viene identificato l'evento da segnalare, il comando viene passato alla seriale che lo trasmette ad Arduino che riceve ed accende il LED.

Anche se poi al giorno d'oggi la porta seriale RS232 è quasi scomparsa, in ambiente industriale la mitica RS232 8N1 è sempre presente e poi, tramite USB è possibile emularla.

Questa è la fonte dell'applicazione Arduino e il PHP , seguite anche i vari links proposti per approfondire l'argomento.

Inoltre, chi volesse approfondimenti specifici sulla seriale può chiedere nei commenti.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Alex87ai

Oltre al carattere Open

Oltre al carattere Open Source di questo Hardware, vedo che si sfrutta lo stesso carattere anche nello sviluppo di software che bene si possono interfacciare ad Arduino...praticamente è diventato un lavoro di squadra che coinvolge tutto il mondo sia sullo sviluppo di applicazioni hardware che, ora, anche per lo sviluppo di nuove forme di IDe da abbinare per la programmazione!! Notevolee

ritratto di stewe

Mmm... una pagina web che

Mmm... una pagina web che dialoga direttamente con l'hardware della macchina?
Forse si, ma questo è possibile (da quanto ne so) solamente se l'Arduino è collegato al server web!
Non è pensabile che una pagina web possa accedere all'harware delle macchine client per ovvi motivi di sicurezza...
Se è lato server, a questo punto si può fare con qualsiasi linguaggio, non solo con PHP!

ritratto di Fabrizio87

Si può tranquillamente fare

Si può tranquillamente fare un server web su Arduino senza necessità di un PC acceso in continuo , è sufficiente integrare ad una scheda Arduino l'estensione shield Ethernet, così Arduino agiatamente accesso alle risorse di rete senza necessità di un interazione con un PC , anche questo. L'unico linguaggio di interazione sarà il C dell'ambiente di sviluppo di Arduino .
chiaramente esistano un sacco di schede che collegano microcontrollore alla rete Lan basta pensare anche alla FTPmicro e mi sembra che anche un premio del concorso .
È mi della sicurezza non è un problema reale perché essendo un software programmato ad hoc e fagli di sicurezza sono molto più difficile da trovare .

ritratto di Alex87ai

Però sarebbe più interessante

Però sarebbe più interessante riuscire ad integrare lo stack TCP/IP direttamente come codice di Arduino senza doversi avvalere di una altro microcontrollore come nel caso del FTPmirco ch adotta un PIC18F97j60 per la gestione delle periferiche del modulo e del relativo webserver. Mi pare una ridondanza inutile dal mio punto di vista, tutto qua! In termini di risorse hardware di Arduino, riuscire ad interagire ad esempio con un ENC28j60 della Microchip non dovrebbe essere impossibile, come non dovrebbe essere altrettanto impossibile integrare nel codice di Arduino la gestione dello Stack TCP/IP, magari migliorato, ottimizzato e snellito a dovere...Come fare, ora come ora non saprei dirlo, ma non mi sembra essere un'impresa impossibile.

ritratto di stewe

Mi pare inutile caricare il

Mi pare inutile caricare il chip Atmel di compiti non strettamente legati alla gestione del progetto!
Renderebbe le cose più complesse e priverebbe il nostro microcontrollore di parecchia memoria utile al nostro programma!
Fare interagire più moduli dedicati ai singoli compiti, rende il lavoro più semplice, gestibile e snello.

Rimane comunque interessante l'ipotesi di sviluppare il server web su arduino, ma solo come ricerca. Se vogliamo implementare la connettività lan sul nostro progetto, affidiamoci allo shield dedicato: risparmieremo sicuramente tantissime ore di lavoro ed arrabbiature nel tentare di gestire uno stack non così semplice!

ritratto di Alex87ai

Oddio, se vogliamo parlare di

Oddio, se vogliamo parlare di semplicità di stesura del firmware, allora ti posso dare ragione...disporre di un modulo prefabbricato e programmato ti da garanzia che in pco tempo la tua applicazione è pronta e funzionante, ma se vogliamo ottimizzare il progetto in termini di componenti adottati, fidati che anche nel mondo industriale dove si tira addirittura sul costo della singola resistenza, non ti danno la possibilità di utilizzare due microcotrollori, magari entrambi parzialmente impiegati, solo perchè a noi sembra più facile scrivere il firmware...Il software è a costo zero, l'hardware invece rappresenta un costo che si ripropone su ogni esemplare di prototipo che si va realizzare...Se si parla di ottimizzazione, interessa più risparmiare in spazio e in componenti che non sull'intelligenza e le capacità di chi scriverà il firmware o il software di gestione!! Secondo me sarebbe interessante imparare a gestire nuove soluzioni in cui l'hardware è ridotto al minimo senza perdere in prestazioni e capacità sul progetto che si intende realizzare e portare a termine.

ritratto di stewe

Diciamo che Arduino non nasce

Diciamo che Arduino non nasce per l'ambito industriale e dire che "Il software è a costo zero" mi fa un po' ridere... :-D

ritratto di Fabrizio87

In realtà il software non ha

In realtà il software non ha costi dopo progettazione scrittura e realizzazione ,
Ma a differenza del software l' hardware costa per ogni esemplare pruduci .

Inoltre il software può essere aggiornato modificato a piacimento con costi molto bassi anche centinaio o milioni di volte può essere provato fino a ottenere il codice perfetto , o pressappoco , a differenza che la può essere progettato e realizzato solo una sola volta . e non può essere sicuramente aggiornato .

ritratto di nunziolop

puoi fare qualche esempio di

puoi fare qualche esempio di shield dedicato a cui ti riferisci ?

ritratto di Fabrizio87

Ad esempio esiste shield di

Ad esempio esiste shield di Arduino dedicato a La connessione Ethernet ,
esiste anche tutta una gamma di schede che sono state progettate appositamente per questo basta pensare FTPmicro che integra il microcontrollori PIC 18F67J60 è dedicato alla connessione Ethernet .

Fanno parte anche dei premi del concorso Marzuino ,

ritratto di Alex87ai

Esiste una Shield per Arduino

Esiste una Shield per Arduino che permette la connessione alla rete ethernet e che utilizza un controllore dedicato siglato Wz5100 della Wiznet. La shield ospita anche il supporto per schede di memoria SD all'interno della quale è possibile salvare la propria applicazione web oppure può essere utilizzata come memoria di messa nel caso si volesse realizzare un piccolo server FTP. Non ho avuto modo di testarla ma penso che tramite le librerie per Arduino espressamente dedicate alla comunicazione con la shield, non ci dovrebbero essere grossi problemi nell'utilizzo e nella gestione della stessa (d'altronde non si adatta ad Arduino ma è stata espressamente progettata per questo sistema di sviluppo Open Source). ti lascio il link da cui puoi estrarre info più dettagliate riguardanti la shield in questione:
http://www.arduino.cc/en/Main/ArduinoEthernetShield

ritratto di stewe

Si, si può fare un Server Web

Si, si può fare un Server Web Arduino con l'apposito shield... ma questo è un'altro discorso che non ha molto a che fare con il progetto dell'articolo...

ritratto di Zeol

Però onestamente parlando mi

Però onestamente parlando mi sembra molto più facile usare shield ethernet+librerie apposite per questo genere di progetti.
Girando ho visto anche qualcosina fatta con python per gestire i moduli Xbee, e quindi gestire anche attuatori a distanza.

ritratto di Fabrizio87

In realtà nel in moduli Xbee

In realtà nel in moduli Xbee che sono montati su Arduino si usa il C come linguaggio di programmazione che quell'unico fornito dall'ambiente di sviluppo ,
il python serve solo quando il modulo viene collegato ad un PC .

ritratto di fra83

interessante per l'industria

Interessante spunto in ambito industriale dove si usano principalmente seriali, si potrebbe progettare il tutto ad alto livello e gestire diverse postazioni da un'interfaccia web così anche l'operatore poco esperto può utilizzare questo tipo di comunicazioni.

ritratto di max75

L'elettronica un universo da scoprire

Il mondo d'elettronica si sa ha avuto in breve tempo uno sviluppo vertiginos; non occorre essere esperti per renderci conto di questa continua evoluzione, che tanto influisce anche sulla nostra vita quotidiana. Chi si occupa, professionalmente o per hobby, di elettronica, sa perfettamente riconoscere uno schema elettrico anche solo di qualche anno fa da uno più recente; i progetti si sono svuotati di componenti, fornendo tuttavia prestazioni sempre più elevate e dimensioni dei circuiti sempre più contenute. Tale riduzione è stata possibile non solo grazie alla continua integrazione in un unico chip di un sempre crescente numero di funzioni, ma anche grazie all'evoluzione di una serie di particolari componenti che, per la loro flessibilità e facilità di impiego,hanno presto avuto il sopravvento nel variegato mondo dell'elettronica.Sto parlando dei microcontrollori che, nati una quindicina di anni fa, hanno raggiunto oggi piena maturità, e sono diventati il componente elettronico di gran lunga più utilizzato. Ignorare tali componenti sarebbe come ignorare che esistono gli amplificatori operazionali o i transistor; tanto importante è la loro presenza in ogni settore dell'elettronica. Il successo dei microcontrollori è dovuto essenzialmente alla loro flessibilità. A differenza degli integrati dedicati ad una particolare funzione, quale ad esempio un caricabatteria, un convertitore analogico digitale, un amplificatore audio, che risultano utilissimi per risolvere benissimo un problema specifico, ma assolutamente inutili per altre applicazioni, i microcontrollori sono dei dispositivi caratterizati da un certo numero di risorse ( porte di ingresso e porte di uscita, timer, convertitori) la cui funzione ed il cui modo di lavorare vengono definiti da un programma, da un softweare caricato al loro interno ed eseguito dal microcontrollore durante la fase di normale funzionamento. Speriamo di essere stato un po d'aiuto per chi comincia ad affaciarsi al mondo dell'elettronica, perchè non tutti posso essere già a determinati livelli ciao a presto.

ritratto di Fabrizio87

Io direi anche che ormai

Io direi anche che ormai l'elettronica è come una scatola delle LEGO è formato da tantissimi mattoncini che vanno montati insieme senza troppo preoccuparsi delle diverse interfacce visto il interfacce sono tutte standardizzate ad esempio RS232 e I2C , Ethernet.
La maggior parte dei circuiti elettronici che si vedono in giro sono composti da un nucleo centrale dove viene collocato un microcontrollori o FPGA è da lì si partono quasi esclusivamente con dei convertitori che permettono di connettere i microcontrollori con l'esterno ad esempio ADC , DAC o dispositivi di potenza,

rimandando tutto alla progettazione del software.

ad esempio il progetto Arduino si basa su una scheda centrale con tutte le sue espansioni.

Una cosa che spesso si dimenticano e che non esistono solo i microcontrollori ma esistono anche FPGA che sono circuiti puramente programmabili dentro una di quelle non troverai mai una struttura fissa ma una quantità di porte logiche , filp-flop ,
Che puoi collegare che può essere collegati tra di loro a piacimento con un linguaggio chiamato VHDL sicuramente questa tipo di architettura completamente libera e più flessibile ancora dei microcontrollori ma richiede più esperienza e progettazione.

ritratto di SuperG72

L'osservazione iniziale di Emanuele è verissima...

...e da me pienamente condivisa.
Il ponte tra l'informatica e l'elettronica non è mai stato compiuto fino in fondo e c'è sempre una certa difficoltà per chi sta dalla riva dell'elettronica e dell'embedded in particolare e vuole raggiungere la programmazione per PC (soprattutto con il mondo Internet in mente) e viceversa.
'Comunicare dal PC verso il mondo esterno' (cito Emanuele) è una cosa interessantissima e da qualche tempo se ne parla insistentemente: il progetto Arduino probabilmente fa da traino per molti, ma non è il solo ambiente possibile.
Partendo dalla 'riva' del programmatore in ambienti Microsoft (sebbene con studi da Ingegnere elettronico) io ho preso ad occuparmi di queste cose da quando la casa di Redmond ha prodotto la versione per microcontrollori del framework .NET, chiamata Micro Framework.
Ora lo stesso micro FW è un progetto CodePlex aperto e anche attorno a questo ambiente sta iniziando un po' di movimento.
Non approfondisco, anche perché andrei fuori argomento, ma vi assicuro che per chi viene dalla programmazione ad oggetti, abituato ad ambienti di sviluppo evoluti e potenti questa tecnologia può veramente fare quel ponte di cui prlavo in apertura.
Vi lascio solo qualche link per chi volesse approfondire:
http://www.netmf.com/whatismicroframework.aspx
http://www.microsoft.com/en-us/netmf/default.aspx
http://netmf.codeplex.com/

ritratto di MikiTux

Che fosse possibile

Che fosse possibile "pilotare" Arduino (e di recente anche un buon numero delle sue varianti) utilizzando la piattaforma LAMP oramai è noto da diverso tempo e proprio ieri ho riportato in un commento la cosa.

Progetti come Stantor, ad esempio riportato nel mio sito da circa due anni:

http://elettrolinux.com/Home-automation/stantor-a-domotic-project.html

mostra come sia possibile non solo pilotare Arduino e sue varianti più o meno note via PHP su piattaforma LAMP, ma anche come interagire con diversi altre componeneti e protocolli (in primis l'X10) per metter su un sistema Domotico. ^_^

Bye 8-)

P.S.: Da utente GNU/linux praticamente da sempre (circa 11 anni di Slackware, Mandriva e Red Hat-Fedora), avendo utilizzato Windows solo per tre mesi e averlo quindi rimosso poiché anche per scrivere il classico "Hello world" in C si dovevano fare i salti mortali con il software, faccio presente che, OVVIAMENTE, PHP e Arduino (con il suo IDE - http://elettrolinux.com/Integrated-Development-Environment/arduino-software-ide.html) è utilizzabile con tutte le distribuzioni e non solo con Ubuntu come il titolo potrebbe indurre a pensare. ;-)

ritratto di Francesco12-92

wahu

Beh che dire è sicuramente un metodo molto interessante utilizzare il php come gestione della porta seriale, perché è comunque un linguaggio di programmazione molto diffuso, pratico e molto simile al c++ che come sappiamo è il linguaggio di programmazione più usato, inoltre con il php si può fare anche una comunicazione a distanza con Arduino tramite internet solo che si dovrebbe possedere un ip pubblico o la connessione con il modo non è possibile, o anche un controllo nella rete di casa senza la necessità di un ip pubblico, ma a questo punto si potrebbe utilizzare indubbiamente il modulo aggiuntivo di Arduino che fornisce una porta ethernet e che si può controllare dalla rete comunque. Il sistema adottato lo userei più per costruire un circuito con microcontrollore PIC o ST6, che non possedendo una ethernet interna ma solo una seriale, o anche usb, si potrebbe interfacciare ad internet senza l'uso di moduli aggiuntivi. La comunicazione poi si può gestire anche sotto windows con il programma WAMP (Windows Apache MySql Php) che con una connessione ad internet ci si può connettere al computer utilizzando il suo ip di rete, immettendolo nel normalissimo Browser internet come explorer, Firefox, o altri, e questo svincola anche dal dover creare programmi comunicanti tra di loro tramite internet, che a volte non riescono proprio a connettersi tra di loro :-P, Inoltre con il php si può fare anche uno script di comunicazione con il database MySql, e quindi tenere traccia di ciò che si è fatto e quindi dei comandi dati al hardware se non l'abbiamo fatto noi o vogliamo ricordare cosa abbiamo fatto.

ritratto di MikiTux

Invece è possibile: l'unica

Invece è possibile: l'unica condizione è che l'IP che "viene visto" ogni volta non deve cambiare. In sostanza provider come Telecom&C ad ogni connessione ti assegnano un indirizzo IP quindi, in teoria, ma molto probabilmente, ad ogni connessione hai un indirzzo nel WEB differente cosa che non farebbe funzionare un eventuale collegamento precedentemente impostato in maniera statica da remoto verso casa propria O il proprio server remoto o quello che è, ad esempio un NAS raggiungibile via rete etc).

Per risolvere questo inconveniente e quindi "far vedere" sempre lo stesso indirizzo, anche se alla connessione successiva ci verrà sicuramente cambiato dal nostro provider, è sufficiente utilizzare servizi messi a disposizione da siti come:

http://www.dyndns.com/

Servizi oltretutto supportati dai recenti modem/router e quindi facilmente impostabili entrando nell'interfaccia di amministrazione attraverso un comune browser. :-)

Servizi come DynDNS sono gratuiti per la funzionalità di base di cui ho accennato poco sopra (ovvero far vedere sempre un indirizzo uguale come se fosse un IP statico.

Bye 8-)

ritratto di FlyTeo

Spunto interessante ma..

Spunto interessante ma..il C non è più potente? il c++?

Php lo userei se e solo se non so altro linguaggio di programmazione..non credo sia più efficace di un livello di programmazione più basso =)

ritratto di MikiTux

Il C, così come il C++, è un

Il C, così come il C++, è un linguaggio compilato quindi va prima compilato con tutti i passi che anticpiano e seguono questa operazione.

Il PHP è un linguaggio di scripting intepretato che necessita di web server per "visualizzare i risultati e/o le azioni che deve svolgere" il programma scritto in PHP.

Ad esempio questo sito (in realtà un CMS - Content Management System - Sistema di Gestione dei Contenuti - che da quello che ho capito dando una veloce scorsa al sorgente della pagina dovrebbe essere Drupal - http://drupal.org/ -) è scritto in PHP (naturalmente sfruttando i fogli di stile CSS etc etc).

La scelta di un linguaggio piuttosto che un altro è funzione di quello che si desidera fare. CHi è più tipizzato, chi meno tipizzato, per applicazioni mission-critical è conveniente lasciare il C, C++, Java e indirizzarsi verso ADA etc, etc.

Bye 8-)

ritratto di Fabrizio87

Prima di tutto quando si

Prima di tutto quando si realizza un progetto di elevato grado come Real-time o mission-critical La cosa più importante è la progettazione del software a livello teorico e le specifiche che dovrà affrontare , una volta fatto il progetto di un software si può passare alla fase di programmazione sicuro e sceglie un linguaggio secondo le specifiche del progetto ,

Un'ultima cosa il Java essendo linguaggio anche lui interpretato attraverso Java Virtual Machine non può essere usato sicuramente per fare programmazione di basso livello ,

ideale se uno vuole fare proprio programmaottimizzata al massimo e usare il linguaggio assembler lui qui i lavori direttamente con il codice macchina e poi gestire tutte le risorse al massimo ,

ritratto di Alex87ai

Concordo vivamente sulla

Concordo vivamente sulla questione della progettazione e la stesura del codice fatto ad alt livello. Sicuramente il Java, essendo un linguaggio interpretato, è davvero poco idoneo ad essere utilizzato come linguaggio di programmazione per microcontrollori o sistemi affini...tipicamente, i linguaggi più utilizzati sono il C (non tanto il C++ se non per architetture a 32bit avanzate) oppure l'assembly, che è il modo di programmazione più vicino alla macchina, ossia rappresenta la via d'accesso alle varie periferiche e ti da la possibilità di eseguire con poche struzioni ciò che un compilatore C compilarebbe con tantissime altre istruzioni...per inteso, i linguaggi ad alto livello ti semplificano la vita in fase di programmazione, ma non raggiungeranno mai l'efficienza di gestione delle risorse che si può avere, al contrario, utilizzando l'assembly. Ci sono altri linguagig tipici ad alto livello come il Basic e il Pascal, ma diciamo che sono poche le software house che mettono a disposizione un portfolio così vasto e completo di compilatori.

ritratto di MikiTux

Attenzione: il linguaggio

Attenzione: il linguaggio Java non è un linguaggio interpretato, ma è un metacompilato dove i prodotti della (passatemi la parola) "pseudocompilazione" danno come risultato un bytecode (una sorta di linguaggio macchina) che solo a questo punto potrà e dovrà essere eseguito dall'altro livello, ovvero dalla Java Virtual Machine in sostanza dall'ambiente Runtime di Java (JRE - Java Runtime Environment).

ritratto di Fabrizio87

il Java comunque sia non da

il Java comunque sia non da un codice puro che può essere dato in pasto direttamente al processore ,
in oltre il bytecode può essere facilmente risalito al codice sorgente ,
di una cosa che in un codice assemblato non è possibile .

ritratto di eineki

Il fatto che il bytecode non

Il fatto che il bytecode non sia compatibile con gli
instruction set x86 e derivati non significa che non
esistano processori java in silicio. Ajile systems [1],
per esempio, ne produce almeno dal 2000 e qualcosa.

[1] http://www.ajile.com

ritratto di Fabrizio87

Chiaramente il Java è stato

Chiaramente il Java è stato implementato per essere eseguito in qualunque ambiente in qualunque sistema operativo per questo è sotto la necessità bytecode universale e della sua virtuale mancina.
Ma chiaramente essendo di piattaforma può essere anche eseguito direttamente su un microprocessore dedicato che processa bytecode.

ritratto di MikiTux

In genere per sistemi

In genere per sistemi mission-critical (avionica, medicina, applicazioni "costrittive" industriali etc) si hanno poche scelte sui sistemi operativi e il linguaggio da utilizzare per i software.

Sistemi operativi: generalmente e quasi esclusivamente a microkernel. Quasi eslcusivamente perché in sede di ricerca e prove è possibile utilizzare kernel modulari/monolitici fermo restando l'opportuna adattabilità in seguito e l'adzione di opportuni sistemi di protezione durante la prova.

Software e linguaggio di programmazione: in primis c'è sempre l'ADA perché è ritenuto sicuro, robusto e limita enormemente il buffer overflow e permettendo di operare sia a basso che ad alto livello.

Un sistema operativo "costruito" con linguaggio ADA è "MaRTE OS" -> http://marte.unican.es/ ...e il nome già la dice lunga! ^_^

Bye 8-)

ritratto di coronet24

E con Arduino UNO come si fa?

Salve a tutti,

bello e interessante questo fatto, ma io ho un Arduino UNO, funziona anche con questa scheda?

Già per farla funzionare con Linux (uso sempre ancora la Ubuntu 10.4 LTS) ho dovuto cercare e cercare, quindi installare a manina la versione 21 dell'IDE (dal repository ubuntu avevo installato la versione 18, ma visto che la porta di comunicazione ttyS0 non appariva sono poi dovuto passare alla nuova versione 21 per "vedere" il mio Arduino UNO).

Ora per utilizzare questo canale via PHP come si fa? Non è di certo un canale seriale a 9600 (o più veloce),8N1... e questo tutorial si basa sul fatto che la comunicazione avviene in modo seriale "standard"...

Sebbene negli ambienti industriali si trovano ancora queste porte, sui PC più recenti è sempre più difficile trovarne (sui notebook poi le porte seriali bisogna proprio dimenticarle!).

Se qualcuno riesce a comunicare tramite PHP con Arduino UNO mi interessa sapere come si possa fare la cosa !

Stefano

ritratto di MikiTux

Nell'ordine: 1) L'errore

Nell'ordine:

1) L'errore sulla ttyS0 era divuto ad un bug che poi è stato corretto così come hai potuto constatare utilizzando, previa installazione, la versione 21;

2) Al momento, come visibile dal mio sito, c'è la versione 22 -> http://elettrolinux.com/Latest/arduino-software-ide-version-0022-is-out.html dove sono riportate solo alcune delle modifiche che si porta dietro la nuova versione;

3) Potresti utilizzare software appositi per girare su piattaforma LAMP, come ad esempio -> http://elettrolinux.com/Home-automation/stantor-a-domotic-project.html realizzato per la domotica e che supporta svariate schede Arduino e suoi cloni. Ovviamente se vuoi utilizzare PHP non puoi prescindere dalla presenza di un web server.

Naturalmente segui i link poi ti fai la tua idea sul progetto che hai in mente. In sostanza, anche se non vuoi usare del software specifico, prendi alcuni spunti e continui per la tua strada. :-)

Bye 8-)

ritratto di Fabrizio87

Allora per risolvere il

Allora per risolvere il problema della seriale esistono adattatori USB to RS232 esistono anche la versione industriale USB to RS485 ,

Per l'esame di maturità avevo fatto qualcosa di singolare ma all'epoca avevo usato PIC 16F84 e il linguaggio di programmazione sul PC era vb6 ,
ma il principio di funzionamento non ha cambiato anche usando altri dispositivi o altri linguaggi ,

Prima di tutto di programmare la scheda Arduino ad esempio che chi rileva valore esterno ad esempio una temperatura , la scheda a Arduino deve elaborare quella temperatura e prepararla in modo da poterla trasmettere attraverso la porta RS232 o USB ,
a questo punto hai il tuo sensore che ogni tempo in via sulla porta seriale il valore della temperatura , questo l'approccio più semplice perché richiede solo un dialogo monodirezionale ,
a questo punto sul PC devi scrivere un programma che legge la porta seriale quando avviene una trasmissione ,
il programma legge valore ricevuto a questo punto io ho fatto così ,
ho installato Apache nel computer e ho scritto un codice PHP impiegati che legge un file Text dov'era contenuto la variabile della temperatura.
È il programmino aveva funzione di trasferire dalla seriale a questo in un file Text che si trovava nelle cartelle del Web server ( www ) di apache ,

ogni volta che veniva interrogato in una pagina di che doveva fare apparire la temperatura veniva letta sul file Text è usato come variabile all'interno delle pagine PHP ,
con stesso principio potevi mandarlo in una base di dati ad esempio MySQL o visualizzarlo con un'immagine tipo un termometro di tipo a Mercurio.

ritratto di piosa

l'universalità del PHP

Personalmente non conosco questo microcontrollore ma non sono molti controllori supportano il linguaggio php, ma penso che questa comunicazione ubuntu - php tramite porta rs232 possa essere estesa anche ad altre piattaforme come windows o mac.

ritratto di matrobriva

Contattare Arduino tramite

Contattare Arduino tramite PHP si tratta se non altro di un esperimento interessante, e anche di utilità pratiche, per esempio controllare da remoto della applicazioni domotiche (del genere "mi sono scordato la lue accesa in camera, invece di tornare a casa la spengo dal cellulare").

Tuttavia trovo l'utilizzo del linguaggio PHP troppo pericoloso per controllare hardware...

Voglio approfondire l'uso della Ethernet Shield, perchè quella penso sia più comoda che dover tenere sempre attaccato un PC che funga da server...

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 0 utenti e 16 visitatori collegati.

Ultimi Commenti