Sou um desenvolvedor experiente que usa diversas tecnologias e também em tempo real. Quero aprender como desenvolver um dispositivo que não seja um computador, tablet ou qualquer um dos dispositivos familiares que todos conhecem.
Observei que sites de compras globais oferecem hardware de IoT, como módulo de relé de 2 canais, placa de desenvolvimento nodeMCU e mais hardware relacionado à IoT. Não tenho ideia do que fazer ou começar .
Supondo que eu saiba codificar, como começo a desenvolver meu primeiro dispositivo IoT?
Respostas:
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
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.
fonte
Como desenvolvedor experiente, você tem a capacidade de entender a lógica, ler e escrever código, descobrir coisas e outras habilidades importantes. O que você provavelmente não tem é uma compreensão dos eletrônicos básicos e a arte de obter código da área de trabalho em execução em um dispositivo pequeno.
Entrar no nível errado de complexidade pode ser assustador e pode significar que você desiste cedo demais. Por exemplo, as pessoas recomendam o ESP8266 e o NodeMCU sem pensar que você precisa acertar, precisa do chip montado em uma placa de desenvolvimento, precisa do software, precisa conectá-lo a algo e apenas então você é capaz de executar JavaScript. Você precisa de muitas habilidades diferentes e pode desistir de qualquer um desses estágios.
Minha recomendação é começar com um Arduino. Onde o Arduino fez a diferença na comunidade de criadores foi o quão fácil é conectar um Arduino em uma porta USB, e a cadeia de compilação, compilação e implantação é classificada para você. Você pode escrever um código e piscar alguns LEDs rapidamente.
Sugiro também que você comece com o kit inicial oficial do Arduino . Embora seja muito simples, as instruções são fáceis e você obtém vários bits e peças eletrônicas úteis (tábua de pão, fios de jumper, LEDs etc.) que permanecem úteis.
Não se deixe levar pelo quão básico é o Arduino. Pegue um pouco de entusiasmo pela eletrônica e pela parte prática antes de tentar algo muito complexo. Se você achar os eletrônicos interessantes e quiser fazer mais, fique com o Arduino e obtenha um kit mais complexo. Eu comprei o robô BOE Shield-Bot . Pode não ser o robô melhor ou mais barato, mas tem um tutorial muito bom que detalha como controlar servos e coisas do tipo. Você também obtém muito mais bits úteis.
Se você passar por isso, desistirá e voltará ao software do servidor ou comprará mais bits, ferros de solda, mais placas e componentes. Muito em breve, você chegará a uma gaveta de sonhos desfeitos, como todos nós.
Eu não recomendaria o uso do Pi tão cedo. É mais um computador do que uma coisa e não possui recursos importantes necessários no início de sua jornada de entendimento (como entrada analógica). Você superará rapidamente o Arduino (ele não se conecta à Internet com muita facilidade), mas é um bom lugar para ver se isso será algo que você gosta.
fonte
Vou prosseguir para responder à sua primeira pergunta.
Se você quiser apenas aprender, posso recomendar alguns livros sobre a Internet das Coisas, mas acho que você pode pesquisá-los sozinho. Se isso estiver claro, recomendo que você comece a trabalhar em seu próprio projeto pequeno, é assim que você aprende o melhor, enfrentando problemas da vida real.
Você precisará decidir o que é o que deseja criar. Aqui estão algumas inspirações e idéias interessantes para começar:
Projetos Arduino -> Microcontrolador
Projetos Raspberry Pi -> Microprocessador (mais poderoso)
hackaday.com -> Componentes mistos
Depois de ter a idéia do que deseja fazer, você precisará apresentar os requisitos para o seu projeto. O microcontrolador, sensores, atuadores, protocolos de comunicação, etc.
Como você pode ver, os dispositivos mais populares são Arduino , Raspberrypi e todos os outros parentes, preto de beagle , cebola , etc. Existem muitos outros, as diferenças são o preço, a compatibilidade com outros sensores e a popularidade. Os populares são mais compatíveis e têm mais suporte nos fóruns.
Nós podemos ajudá-lo com o requisito baseado em seu projeto. Boa sorte!
fonte
Outros se concentraram na primeira faceta da sua pergunta; Eu vou focar no último. Você perguntou se qualquer pessoa pode entrar na IoT ou se você precisa ser uma grande empresa com muitos recursos.
Se você procurar a etiqueta de casa inteligente , verá que existem dispositivos IoT que já possuem todo o lado do servidor. Existem muitos dispositivos de IoT que "qualquer pessoa" pode comprar, incluindo a câmera, o termostato, etc., o Nest Echo, o Amazon Echo, o Google Home, fornos inteligentes, geladeiras etc.
Mesmo muitos carros novos se qualificam como objetos a serem detectados ou controlados remotamente ... embora talvez ainda não seja a parte controlada. :)
Isso leva à resposta da sua primeira pergunta:
Você não precisa necessariamente começar desenvolvendo: você pode começar com algo mais simples. Se você quiser entrar no lado em desenvolvimento, pode simplesmente mergulhar, como alguns sugeriram, mas você tem a opção disponível para começar de maneira simples e passar gradualmente para o domínio dos mais complexos.
fonte