Questa è una domanda molto ampia, ma cercherò di dare alcuni suggerimenti generali, speriamo utile sia agli altri che a voi (quindi, per favore, accettate le mie scuse se inserisco cose che già sapete).
Se stai chiedendo informazioni sulla lettura dei sensori, si tratta di telemetria e non necessariamente di IoT. Ho codificato molti progetti in cui un PC autonomo legge e visualizza alcune misurazioni.
Se vuoi anche controllare l'hardware collegato, questo è SCADA . Ancora una volta, non è necessario che sia necessariamente connesso a Internet.
Ecco un diagramma di SCADA, che dà un'ottima sensazione per l'IoT in generale. Si noti che i PLC sul diagramma sono sensori e controlli dei dispositivi abilitati IoT.
È possibile richiedere raccomandazioni hardware per sensori e controller in Consigli hardware .
E, una volta che hai un po 'di codice, puoi ottenere consigli su problemi con StackTranslate.it .
In generale, l'IoT per l'industria coinvolge il modello client / server, con il client che misura / controlla i dispositivi hardware e riporta / riceve comandi dal server. Il server generalmente ha anche un database e consente la generazione di report per la gestione e gli allarmi (e può indicare all'hardware remoto di riconfigurare / arrestare in base ai dati ricevuti).
Accidenti! Questa è l'introduzione fuori mano. Ora per sporcarci le mani.
Se vuoi entrare nel nocciolo della codifica, guarda i socket e comprendi la differenza tra TCP e UDP .
Fortunatamente, i decenni hanno avvolto la maggior parte delle cose più complicate nelle biblioteche, e probabilmente è meglio che tu ti informi sui servizi RESTful. Esistono numerosi tutorial, corsi e video online gratuiti, a seconda della tua lingua; C è un linguaggio incorporato tradizionale, con alcuni che usano il C ++, ma ovviamente usa qualunque cosa tu sappia / ti senta a tuo agio. Python è estremamente popolare e semplice da imparare, oltre ad essere la lingua consigliata per Raspberry Pi.
Personalmente, preferisco interpretare le lingue compilate, in quanto è più facile eliminare i bug, ma la scelta dipende interamente da te. Assicurati solo che abbia un buon supporto per l'accesso alle periferiche tramite USB, Ethernet e - ancora estremamente comune nel settore - porta seriale.
Per il lato server, il 90% + del server mondiale è ancora in esecuzione su PHP. Tuttavia, c'è un assorbimento nell'uso di NodeJS, principalmente da parte di persone che codificano app per browser, che attualmente può essere fatto solo in JavaScript e non vogliono imparare due lingue. Non consiglio di sviluppare app IoT basate su browser, a causa delle restrizioni sul codice del browser che accedono al file system e alle periferiche (sebbene, vorrei citare artisti del calibro di Cordova , se si desidera sviluppare per smartphone).
Per iniziare, consiglierei un Raspberry Pi (codifica in Python o C).
E * consiglio vivamente * un cappello sensore. Questo è solo un esempio, ma non è costoso e contiene
- Giroscopio - sensore di frequenza angolare: +/- 245/500 / 2000dps Accelerometro
- Sensore di accelerazione lineare: +/- 2/4/8/16 g
- Magnetometro - Sensore magnetico: +/- 4/8/12/16
- Barometro di Gauss: intervallo assoluto da 260 a 1260 hPa (la precisione dipende dalla temperatura e dalla pressione, +/- 0,1 hPa in condizioni normali)
- Sensore di temperatura (temperatura accurata a +/- 2 ° C nell'intervallo 0-65 ° C)
- Sensore di umidità relativa (preciso a +/- 4,5% nell'intervallo 20-80% UR, preciso a +/- 0,5 ° C nell'intervallo 15-40 ° C)
- Display matrice LED RGB 8x8
- Piccolo joystick a 5 pulsanti
Ciò ti consentirà di raccogliere alcuni dati e segnalarli al tuo server. Potresti essere in grado di trovare un servizio gratuito online per ricevere e visualizzare i tuoi dati. Ho visto alcuni su altri siti SO, ma dimentica dove.
Ma probabilmente vuoi codificare il tuo server. Consiglierei PHP come linguaggio di programmazione. Per Linux, sei ben fornito con LAMP (Linux, Apache, Mysql e PHP). Per Windows, devi installare un WAMP (Windows ... ecc.).
Puoi fare la tua scelta. Ho usato XAMPP in applicazioni industriali per oltre un decennio. Non è necessario utilizzare Mysql, Sqlite può servire altrettanto bene (spina shaless per la mia domanda SO di 6 anni fa, " Sqlite o MySql? Come decidere? "). Dovrai anche conoscere CRUD .
Sulla base dei dati ricevuti dal client / sensore, potresti voler inviare un comando indietro, anche solo un semplice (display: "temperatura troppo alta", che potrebbe tradursi in chiusura di una valvola in un sistema industriale).
Potresti voler generare allarmi in tempo reale (invia un'e-mail dicendo che la temperatura è troppo alta).
E potresti anche voler pensare a generare rapporti. Inizia con una tabella che mostra i dati ricevuti. Considerare un grafico o qualcosa di più elaborato. Aggiungi un'opzione per esportare in valori separati da virgola (CSV) che consente all'utente finale di importare i dati in un foglio di calcolo per ulteriori analisi e manipolazioni.
Se non decide che si desidera la segnalazione di fantasia, è possibile farlo in PHP, ma, dopo alcuni decenni di che ho ora spostato a fare gran parte del lato client roba rapporto, nel browser.
Per i principi generali, ottenere una panoramica delle applicazioni a pagina singola e AJAX . Personalmente, ho fatto molte ricerche e ho scelto AngularJS di Google come mio linguaggio di programmazione (ci sono molti tutorial e un ottimo supporto), ma sei libero di usare JS, Jquery, ecc. Come preferisci.
Se decidi di codificare anche i contenuti del browser e potresti utilizzare NodeJs sul lato server, in modo da imparare solo un nuovo linguaggio di programmazione.
Troppe scelte? Scusate :-(
Spero che questo ti abbia dato qualche consiglio, ma sentiti libero di fare domande e fammi sapere se manca qualche consiglio generale qui.