Utilizzo di PHP o C ++ per dispositivi elettronici reali

0

Voglio usare le mie capacità di programmazione per rendere più facile la mia vita quotidiana, per farlo voglio essere in grado di programmare nei miei elettrodomestici come sveglia o microonde o frigorifero, condizionatore d'aria, ecc. che potrei flash con il mio programma per controllarli e adattare il loro lavoro a mio piacimento.

In questo momento sono limitato con il desktop o il laptop che sai quando l'alimentazione va giù, tutto ciò che hai fatto non c'è più.

So che a scuola mostrano come programmare l'orologio di base sulla classe elettronica con qualche linguaggio di programmazione di terze parti, attualmente presumo che ci siano 10 di diversi linguaggi di programmazione per i dispositivi e io non voglio imparare una lingua diversa per ogni dispositivo, vorrei che ci fosse come API su ogni dispositivo che posso usare con qualsiasi linguaggio di programmazione che normalmente utilizzo, ad esempio PHP.

Sto fondamentalmente cercando un modo per regolare / espandere la funzionalità dell'elettronica autonoma reale (senza collegarli al PC o usando l'analogico virtuale) utilizzando l'azienda del linguaggio di programmazione utilizzata al momento della creazione.

Ci sono delle appliance che supportano questo o c'è qualche convertitore di lingua che posso aggiungere per renderlo possibile?

P.S. Attualmente ci sono computer Raspberry PI per $ 40 dollari che si adattano alla mano, forse posso creare il mio allarme personale se lo metto in una scatola e allego l'altoparlante e poi programma usando PHP o al momento non è possibile?

Non sei interessato a inventare nulla, ti chiedi solo se ci sono strumenti / modi pronti a personalizzare il firmware dell'applicazione senza apprendere le loro specifiche oggi?

    
posta Preoritizer 12.11.2014 - 02:36
fonte

3 risposte

1

Questo è un articolo rapido su relazione tra API e hardware.

In genere, se si accede direttamente all'hardware, generalmente si utilizza un driver C o C ++. Potresti sollevare la domanda: in che modo tutte le altre lingue accedono all'hardware? Utilizzano il driver compilato C o C ++.

EDIT: uno dei commentatori ha fornito un elenco di compilatori di linguaggi di alto livello e interpreti per microcontrollori, quindi la mia affermazione era obsoleta. Questi ti darebbero le possibilità di usare Embedded Java, Python, Lisp, ecc. Sarebbe interessante indagare se ognuno degli interpreti è strettamente connesso a un processore, o se è semplice come ricompilare dal processore.

Questo significa che hai bisogno di C e C ++ per qualsiasi cosa tu faccia? Sì e no. Dipende dalle API a tua disposizione. Un driver C può avere un wrapper C # attorno e puoi fare ciò che ti serve in C #! Ero in un progetto C # e avevamo un paio di wrapper C # per le librerie C ++. Tuttavia, se sei veramente interessato alla programmazione specifica per l'hardware, non sarai in grado di utilizzare un linguaggio interpretato (come PHP) o una lingua non nativa (Java). Avrai bisogno di eseguire nativo, come fa C o C ++ compilato.

E questo presuppone davvero che tu stia creando il tuo orologio, luce, microonde, ecc. Suppongo che una macchina Raspberry PI farebbe - o sarebbe un overkill accessibile - per quello che vuoi fare. Se si desidera controllare un prodotto commerciale, il produttore deve fornire un'interfaccia per manipolare il proprio prodotto.

    
risposta data 12.11.2014 - 03:00
fonte
1

Piuttosto che cercare di modificare il firmware dei dispositivi e un'alternativa è sfruttare ciò che è già in atto. Come dici tu, un piccolo computer single-board è una buona soluzione.

Prova una ricerca su Google su Arduino. Queste schede sono economiche e progettate per controllare molte linee di I / O. La programmazione in C o C ++ è la norma e si sta lavorando con bare metal: non esiste un sistema operativo. C'è una comunità SE Arduino.

Rispetto al PI Rasberry, Arduino ha migliori capacità di IO e un minore consumo energetico, ma molta meno RAM e potenza della CPU. È possibile eseguire un server Web su Arduino, ma solo HTTPS e uno schema di autenticazione solido sono probabilmente impossibili, il che significa che hai bisogno di qualcosa di più potente per metterlo in primo piano su Internet.

Non sottovalutare il controllo dei dispositivi elettronici moderni tramite la loro porta remota IR. Controllo la mia pompa di calore su Internet utilizzando un Arduino per sintetizzare il flusso IR. Questa è un'ottima soluzione, poiché non vi sono modifiche al dispositivo e nessun pericolo di inciampare nella rete.

Ci sono alcune schede crossover che appaiono: Arduino YUN ha sia un processore di I / O Arduino che un processore capace di Linux. Questo sarebbe l'ideale per le attività in cui è necessario pubblicare un server Web sicuro. Puoi programmare in PHP sotto Linux e controllare l'IO da Arduino.

    
risposta data 12.11.2014 - 05:09
fonte
0

Dovresti anche dare un'occhiata a X10 , che dura da almeno 25 anni al mio conoscenza. Nel passato ero abituato ad attivare e disattivare solo gli inganni, ma da allora è diventato molto più sofisticato.

X10 is a protocol for communication among electronic devices used for home automation (domotics). It primarily uses power line wiring for signaling and control, where the signals involve brief radio frequency bursts representing digital information. A wireless radio based protocol transport is also defined.

X10 was developed in 1975 by Pico Electronics of Glenrothes, Scotland, in order to allow remote control of home devices and appliances. It was the first general purpose domotic network technology and remains the most widely available.1

Although a number of higher bandwidth alternatives exist, X10 remains popular in the home environment with millions of units in use worldwide, and inexpensive availability of new components.

    
risposta data 12.11.2014 - 10:21
fonte

Leggi altre domande sui tag