Essa é uma pergunta muito ampla, mas tentarei dar algumas dicas gerais, espero que úteis para outras pessoas, assim como você (por isso, aceite minhas desculpas se eu postar coisas que você já sabe).
Se você está perguntando sobre a leitura de sensores, isso é telemetria e não necessariamente IoT. Eu codifiquei muitos projetos em que um PC independente lê e exibe algumas medidas.
Se você também deseja controlar o hardware conectado, este é o SCADA . Novamente, ele não precisa necessariamente estar conectado à Internet.
Aqui está um diagrama do SCADA, que oferece uma sensação muito boa para a IoT em geral. Observe que os PLCs no diagrama são sensores e controles de dispositivos habilitados para IoT.
Você pode pedir recomendações de hardware para sensores e controlador em Recomendações de hardware .
E, depois que você tiver algum código, poderá obter conselhos sobre problemas no Stack Overflow .
Geralmente, a IoT para o setor envolve o modelo cliente / servidor, com o cliente medindo / controlando dispositivos de hardware e relatando / recebendo comandos do servidor. O servidor também geralmente possui um banco de dados e permite a geração de relatórios para gerenciamento e alarmes (e pode instruir o hardware remoto a reconfigurar / desligar com base nos dados recebidos).
Ufa! Essa é a introdução fora do caminho. Agora, para sujar as mãos.
Se você quiser entrar no âmago da questão da codificação, observe os soquetes e entenda a diferença entre TCP e UDP .
Felizmente, as décadas envolveram a maioria das coisas mais complicadas das bibliotecas, e provavelmente é melhor você ler os serviços RESTful. Existem vários tutoriais, cursos e vídeos online gratuitos, dependendo do seu idioma; C é uma linguagem embutida tradicional, com alguns usando C ++, mas é claro, use o que você sabe / se sente confortável. O Python é imensamente popular e simples de aprender, além de ser o idioma recomendado para o Raspberry Pi.
Pessoalmente, prefiro idiomas compilados a interpretados, pois é mais fácil eliminar os erros, mas a escolha é inteiramente sua. Apenas verifique se ele possui um bom suporte para acessar periféricos por USB, Ethernet e - ainda é extremamente comum no setor - porta serial.
Para o servidor, mais de 90% do servidor do mundo ainda está em execução no PHP. No entanto, há uma aceitação do uso do NodeJS, principalmente de pessoas que codificam aplicativos de navegador, que atualmente só podem ser feitas em JavaScript e não querem aprender dois idiomas. Eu não recomendo o desenvolvimento de aplicativos de IoT baseados em navegador, devido às restrições no código do navegador para acessar o sistema de arquivos e os periféricos (embora, eu mencionaria os gostos de Cordova , se você deseja desenvolver para smartphone).
Para começar, eu recomendaria um Raspberry Pi (codificação em Python ou C).
E eu * recomendo * um chapéu sensor. Este é apenas um exemplo, mas não é caro e contém
- Giroscópio - sensor de taxa angular: Acelerômetro +/- 245/500 / 2000dps
- Sensor de aceleração linear: +/- 2/4/8/16 g
- Magnetômetro - Sensor magnético: +/- 4/8/12/16
- Barômetro de Gauss: faixa absoluta de 260 - 1260 hPa (a precisão depende da temperatura e pressão, +/- 0,1 hPa em condições normais)
- Sensor de temperatura (temperatura precisa de +/- 2 ° C na faixa de 0-65 ° C)
- Sensor de umidade relativa (com precisão de +/- 4,5% na faixa de 20-80% de rH, precisão de +/- 0,5 ° C na faixa de 15-40 ° C)
- Ecrã matricial LED RGB 8x8
- Joystick pequeno de 5 botões
Isso permitirá que você colete alguns dados e os relate ao seu servidor. Você pode encontrar um serviço gratuito on-line para receber e exibir seus dados. Eu já vi alguns em outro site SO, mas esqueça onde.
Mas você provavelmente deseja codificar seu próprio servidor. Eu recomendaria o PHP como linguagem de programação. Para Linux, você é bem fornecido com LAMP (Linux, Apache, Mysql e PHP). Para o Windows, você precisa instalar um WAMP (Windows ... etc).
Você pode fazer a sua escolha. Eu uso o XAMPP em aplicações industriais há mais de uma década. Você não precisa usar o Mysql, o Sqlite também pode servir (plug sem formatação para minha própria pergunta de SO de 6 anos atrás, " Sqlite ou MySql? Como decidir? "). Você também terá que aprender sobre CRUD .
Com base nos dados recebidos do cliente / sensor, convém enviar um comando de volta, mesmo que simples (exibição: "temperatura muito alta", que pode ser traduzida em fechar uma válvula em um sistema industrial).
Você pode acionar alarmes em tempo real (envie um email dizendo que a temperatura está muito alta).
E você também pode querer pensar em gerar relatórios. Comece com uma tabela mostrando os dados recebidos. O considere um gráfico, ou algo mais sofisticado. Adicione uma opção para exportar para valores separados por vírgula (CSV), que permite ao usuário final importar os dados para uma planilha para análise e manipulação adicionais.
Se você não decidir que deseja relatórios de fantasia, você pode fazê-lo em PHP, mas, depois de algumas décadas de que agora mudaram-se para fazer muito do lado do cliente o material relatório, no navegador.
Para princípios gerais, obtenha uma visão geral dos aplicativos de página única e do AJAX . Pessoalmente, pesquisei bastante e escolhi o AngularJS do Google como minha linguagem de programação (há muitos tutoriais e ótimo suporte), mas você pode usar JS, Jquery, etc, como desejar.
Se você também decidir codificar as coisas do navegador, poderá usar os NodeJs no lado do servidor, para ter apenas que aprender uma nova linguagem de programação.
Muitas opções? Desculpa :-(
Espero que isso tenha lhe dado alguns conselhos, mas fique à vontade para fazer perguntas e informe-me se houver algum conselho geral faltando aqui.