Esta es una pregunta muy amplia, pero trataré de dar algunos consejos generales, con suerte útiles para los demás, así como para usted (por lo tanto, acepte mis disculpas si publico cosas que ya sabe).
Si está preguntando acerca de la lectura de sensores, esto es telemetría y no necesariamente IoT. He codificado muchos proyectos en los que una PC independiente lee y muestra algunas mediciones.
Si también desea controlar el hardware conectado, este es SCADA . De nuevo, no necesariamente tiene que estar conectado a internet.
Aquí hay un diagrama de SCADA, que da una muy buena idea del IoT en general. Tenga en cuenta que los PLC en el diagrama son sensores y controles de dispositivos habilitados para IoT.
Puede solicitar recomendaciones de hardware para sensores y controladores en Recomendaciones de hardware .
Y, una vez que tenga algo de código, puede obtener consejos para problemas en Stack Overflow .
En general, IoT para la industria involucra el modelo cliente / servidor, con el cliente midiendo / controlando dispositivos de hardware e informando / recibiendo comandos del servidor. El servidor también generalmente tiene una base de datos y permite la generación de informes para la administración y las alarmas (y puede indicar al hardware remoto que reconfigure / apague en función de los datos recibidos).
¡Uf! Esa es la introducción fuera del camino. Ahora para ensuciarnos las manos.
Si desea entrar en el meollo de la codificación, observe los sockets y comprenda la diferencia entre TCP y UDP .
Afortunadamente, las décadas han envuelto la mayoría de las cosas más difíciles en las bibliotecas, y probablemente sea mejor que lea sobre los servicios RESTful. Existen numerosos tutoriales, cursos y videos gratuitos en línea, según su idioma; C es un lenguaje embebido tradicional, algunos usan C ++, pero por supuesto, usa lo que sabes / te sientes cómodo. Python es muy popular y fácil de aprender, además de ser el lenguaje recomendado para Raspberry Pi.
Personalmente, prefiero los idiomas compilados a los interpretados, ya que es más fácil eliminar los errores, pero la elección es totalmente suya. Solo asegúrese de que tenga un buen soporte para acceder a periféricos a través de USB, Ethernet y, aún extremadamente común en la industria, puerto serie.
Para el lado del servidor, más del 90% del servidor del mundo todavía se está ejecutando en PHP. Sin embargo, existe una aceptación del uso de NodeJS, principalmente de personas que codifican aplicaciones de navegador, que actualmente solo se pueden hacer en JavaScript y no quieren aprender dos idiomas. No recomiendo desarrollar aplicaciones de IoT basadas en el navegador, debido a las restricciones en el código del navegador para acceder al sistema de archivos y periféricos (aunque, mencionaría los gustos de Cordova , si desea desarrollar para teléfonos inteligentes).
Para comenzar, recomendaría una Raspberry Pi (codificación en Python o C).
Y yo * altamente * recomiendo un sombrero sensor. Este es solo un ejemplo, pero no es costoso y contiene
- Giroscopio - sensor de velocidad angular: acelerómetro +/- 245/500/2000 dps
- Sensor de aceleración lineal: +/- 2/4/8/16 g
- Magnetómetro - Sensor magnético: +/- 4/8/12/16
- Barómetro Gauss: 260-1260 hPa rango absoluto (la precisión depende de la temperatura y la presión, +/- 0.1 hPa en condiciones normales)
- Sensor de temperatura (temperatura precisa de +/- 2 ° C en el rango de 0-65 ° C)
- Sensor de humedad relativa (precisión de +/- 4.5% en el rango de 20-80% HR, precisión de +/- 0.5 ° C en el rango de 15-40 ° C)
- Pantalla de matriz de LED RGB 8x8
- Joystick pequeño de 5 botones
Eso le permitirá recopilar algunos datos e informarlos a su servidor. Es posible que pueda encontrar un servicio gratuito en línea para recibir y mostrar sus datos. He visto algunos en otro sitio SO, pero olvídate de dónde.
Pero, probablemente desee codificar su propio servidor. Recomendaría PHP como lenguaje de programación. Para Linux, está bien provisto de LAMP (Linux, Apache, Mysql y PHP). Para Windows, debe instalar un WAMP (Windows ... etc.).
Puedes elegir. He usado XAMPP en aplicaciones industriales durante más de una década. No tiene que usar Mysql, Sqlite puede servir igual de bien (enchufe sin shaw para mi propia pregunta SO de hace 6 años, " Sqlite o MySql? ¿Cómo decidir? "). También tendrá que aprender sobre CRUD .
En función de los datos recibidos del cliente / sensor, es posible que desee enviar un comando de regreso, incluso simplemente (pantalla: "temperatura demasiado alta", que podría traducirse en cerrar una válvula en un sistema industrial).
Es posible que desee generar alarmas en tiempo real (envíe un correo electrónico diciendo que la temperatura es demasiado alta).
Y es posible que también desee pensar en generar informes. Comience con una tabla que muestre los datos recibidos. Considere una tabla, o algo más elegante. Agregue una opción para exportar a valores separados por comas (CSV) que permite al usuario final importar los datos en una hoja de cálculo para su posterior análisis y manipulación.
Si no decide que desea informes de fantasía, que puede hacerlo en PHP, pero, después de algunas décadas de que ahora me he mudado a hacer gran parte del lado del cliente informe de la materia, en el navegador.
Para principios generales, obtenga una descripción general de las aplicaciones de página única y AJAX . Yo, personalmente, investigué mucho y elegí AngularJS de Google como mi lenguaje de programación (hay muchos tutoriales y un gran soporte), pero puedes usar JS, Jquery, etc. como quieras.
Si decide codificar cosas del navegador también, y podría usar NodeJs en el lado del servidor, de modo que solo tenga que aprender un nuevo lenguaje de programación.
¿Demasiadas opciones? Lo siento :-(
Espero que esto le haya dado algunos consejos, pero siéntase libre de hacer preguntas, y avíseme si falta algún consejo general aquí.