Qual microcontrolador e linguagem de programação devo usar para uma exibição do tempo com Internet?

11

Sou novato na Internet das coisas e quero começar minha carreira na Internet das Coisas. Ao pesquisar no Google por startups na IoT, encontrei muitos blogs. E eu encontrei os idiomas usados ​​na IoT como C #, Java, Node.js e os microcontroladores como Arduino, Raspberry Pi, Intel, Netduino etc.

Como sou novato na IoT, não sei qual idioma é melhor e qual microcontrolador eu uso para uma inicialização?

Para a inicialização básica, digo, quero criar um dispositivo que tenha a tela que mostre o tempo para o local indicado no meu celular. Portanto, pode ser um bom exemplo de inicialização que abrange o hardware, a Internet e o software.

O dispositivo será alimentado por bateria, um pequeno display digital e sim restrição de custos.

Qual microcontrolador e idioma devo usar que atenda aos meus requisitos para mostrar o clima?

Jigarb1992
fonte
1
Esta parece ser uma pergunta muito melhor que a anterior; muito mais focado em um caso de uso específico. Para que possamos lhe dar uma boa resposta, aqui estão algumas perguntas: seu dispositivo será alimentado por corrente ou bateria? Qual é o tamanho da tela? Existe uma restrição de custo?
Aurora0001
2
Além disso, para selecionar o microcontrolador, essa resposta é realmente fantástica.
Aurora0001
1
Thank you @ Aurora0001 Adicionei mais detalhes como você comentou, por favor, verifique.
precisa saber é o seguinte
1
Lêndeas: O Arduino é um microcontrolador. O Pi é um computador completo, coisas como Pis e Beaglebones e Gumstix são normalmente chamados de "computadores de placa única" (SBCs) ou "computador em módulos" (COMs). Ao contrário do Pi, o Arduino não executa um sistema operacional - o Arduino é apenas um Atmel ATmega® 8 em uma placa pequena e fácil de usar que acompanha um IDE conveniente. O Pi é um computador real com um núcleo de microprocessador ARM Cortex-A53. Você pode usar, por exemplo, um Pi para fazer toda a rede e exibir saída e controle complexo com um Arduino para fazer um trabalho simples, como botões de leitura, etiquetas RFID ou algo assim.
Jason C
1
Dispositivos alimentados por bateria: você quer dizer como um smartphone / smartwatch (bateria Li, vida útil de alguns dias entre as recargas) ou como um relógio (AA não recarregável, vida útil de alguns meses)? Isso guiará seu design e restringirá severamente suas opções se você escolher o último.
Pjc50

Respostas:

5

Pessoalmente, eu selecionaria um Raspberry Pi 3B para isso, embora seja provavelmente muito mais poderoso do que você realmente precisa. As razões para eu sugerir isso são:

  • Possui LAN sem fio 802.11 b / g / n integrada, para que você possa conectá-lo a uma rede Wi-Fi e não por um cabo Ethernet

  • Ele também suporta Bluetooth, para que você possa se conectar ao telefone através disso.

Você também precisará de uma unidade de tela e, convenientemente, existem várias telas projetadas para o Raspberry Pi, como essa tela sensível ao toque 4DPI-32 . Você deve conseguir encaixar a tela diretamente no cabeçalho de 40 pinos:

40 Pin Fundação Raspberry Pi , CC BY-SA 4.0 . Sei que tecnicamente é um Pi 2B, mas o GPIO é o mesmo no 3B.

Quanto ao aspecto de programação, neste caso, tudo o que você precisa fazer é buscar o clima de uma API em algum lugar e exibi-lo na tela como um programa GUI. A tela funciona como qualquer saída HDMI para o Pi, então você não precisa fazer nada de especial. Para o Python, você pode usar o Tkinter para criar uma interface de usuário básica, ou pode optar por escrever um aplicativo da Web em HTML / CSS / JS, dependendo do que você se sentir confortável. Você pode usar a API do OpenWeatherMap gratuitamente; a documentação está vinculada para cada terminal da API.

Neste ponto, cabe a você realmente. O melhor idioma aqui é o idioma com o qual você se sente mais confortável. Se você gosta do AngularJS, basta criar uma página HTML, buscar o clima com Angular (ou usar uma biblioteca como esta para ajudá-lo) e exibi-la usando CSS para torná-la agradável.

Para realmente obter a localização, suspeito que seria mais fácil permitir que o usuário digite sua localização na tela de toque do Pi. Enviar o local do seu telefone provavelmente é um pouco mais difícil, embora você possa encontrar algo se pesquisar muito.

Para o uso da bateria, vale a pena ler esta pergunta no Raspberry Pi Stack Exchange .

Aurora0001
fonte
1
É necessário conectar os kits Vilros Pi , que funcionam imediatamente e economizam uma tonelada de configuração inicial irritante. Também fora de tópico, mas para depuração, achei isso (e sua versão robusta, se você pesquisar no site) ser incrivelmente útil. Caro para uso único, mas vale a pena se você usá-lo o tempo todo. Funciona bem com um adaptador HDMI -> VGA.
Jason C
1
Não. Primeiro, devido à dependência de um cartão SD frágil, depois porque você não pode realmente fabricar em quantidades moderadas. Um pi pode lhe proporcionar uma prova de conceito, mas você precisará reprojetar algo que possa realmente ser usado em um produto. Além disso, é basicamente um não-acionador de partida completo para energia da bateria em qualquer uso sério.
Chris Stratton
@ ChrisStratton: Para um iniciante como o OP, um RPi parece uma opção viável na minha opinião. Sim, para produção em larga escala, isso não seria o ideal, mas eu me concentrei em fornecer uma idéia acessível e fácil de modificar; um POC é exatamente o que é necessário aqui. Não acho que o cartão SD seja realmente uma grande preocupação para uma configuração amadora; na produção em massa, a história é diferente, mas como ponto de partida, acho que isso deve funcionar bem o suficiente. Estou aberto a sugestões para uma abordagem melhor.
Aurora0001
Mesmo além das maneiras pelas quais esses problemas o tornam inviável em um produto, o requisito de energia da bateria do pôster o exclui desde o início. Como o pi é uma arquitetura configurável sem o gerenciamento de energia de um móvel, você não obterá mais do que algumas horas com uma bateria razoável.
Chris Stratton
10

O Onion Omega 2 afirma ser o menor computador Linux do mundo. Essa afirmação pode não ser verdadeira (veja o vocore2 abaixo, por exemplo), mas, na minha experiência, ela deve ser a menor possível. Tem alguns escudos disponíveis em seu site . Produto novo, parece ter uma comunidade forte e ativa. Os apoiadores do Kickstarter adquirem o dispositivo. Vale a pena conferir.

Além disso, como apontado nos comentários, confira o vocore2 , que na verdade parece ser menor que o Onion, e mais barato em US $ 4. Atualmente, ele está sendo financiado no IndieGoGo e as datas de entrega estimadas são fevereiro de 2017 (no próximo mês, no momento em que este artigo foi escrito). Também parece ter uma variedade de docas disponíveis e possui um roteador wifi embutido, o que é bem legal.

Acabei de encontrar aqueles no outro dia e não tenho experiência com eles. Observe, no entanto, devido à sua novidade, alguns dos pacotes do Linux que você pode estar acostumado a usar ainda não estão disponíveis (por exemplo, eu sei que, no momento em que escrevi este artigo, um pacote gstreamer não estava disponível no Onion no entanto, você deve construir a partir da fonte, embora o gstreamer não seja relevante para você).

Além disso, como a outra resposta diz, o Pi é um ótimo dispositivo de baixo custo. Não se esqueça do Raspberry Pi Zero , outro computador minúsculo de US $ 5 ao longo da linha Onion. Ele não possui todas as portas que os Pi maiores possuem, mas se você não se importa, ou se deseja apenas usar um 3 para desenvolvimento e um Zero para seu tamanho nos produtos finais, é outra opção que vale a pena considerar.

Outros dispositivos, alguns caros, incluem:

  • BeagleBone Black (esta é a única alternativa Pi que eu consideraria seriamente devido ao seu baixo custo).
  • Gumstix ($$$, mas usamos isso o tempo todo em projetos para seu tamanho)
  • Udoo ($$$, mas dá um soco)
  • Toradex Colibri (Um pouco difícil de trabalhar, mas também usamos essas especificações melhores do que o Gumstix e temos a opção de executar o Windows CE com um recurso de inicialização instantânea, se você preferir uma cadeia de ferramentas do Windows e tempo de inicialização praticamente zero )

Observe também que o Vilros faz alguns kits de iniciantes impressionantes do Pi (mais baratos na Amazon) pré-empacotados com um sistema operacional, Wifi funcionando, dissipadores de calor, um estojo, funciona imediatamente e economiza uma tonelada de trabalho de instalação. Também vale a pena conferir se você seguir a rota do Pi. Vilros também costumava fazer kits de iniciação Beaglebone, que não parecem mais estar disponíveis no site, mas se você pesquisar em Newegg / Amazon / etc. você ainda pode encontrar o estoque disponível.


A propósito, um Arduino (ou outro microcontrolador, em contraste com os computadores de placa única completos listados acima) por si só provavelmente não é o que você deseja aqui. O Arduino é apenas um Atmel ATmega168 / 328. Ele não roda um sistema operacional e realmente não faz nada além do que você pede. Por exemplo, para redes, você precisaria do escudo ethernet, que é fornecido com uma biblioteca de controle ethernet completa que, acredito, fornece uma pilha TCP e UDP (eu nunca o usei, apenas navegando no site) e, é claro, ocupa um muito espaço de código limitado.

Então você teria que criar seu cliente climático e tudo o mais, e você teria que fazer tudo isso em 32 KB ou menos. É um sabor de desenvolvimento diferente do desenvolvimento do Linux / Windows no Pi / Beaglebone / Gumstix / Colibri / etc. Um pouco fora do escopo desta resposta.

O que o Arduino é bom aqui é como um complemento ao seu sistema principal para fazer coisas de interface de hardware, como sensores de pressão de leitura, botões, controlar elementos eletrônicos básicos, esse tipo de coisa.

O desenvolvimento de sistemas embarcados é um animal totalmente diferente do que o desenvolvimento de desktops que você faria no Pi, e eu realmente não recomendaria tentar fazer isso apenas com um Arduino, especialmente sem experiência.

Jason C
fonte
1
O vocore2 é menor e mais barato no momento (US $ 4) ainda rodando o OpenWRT (Linux) #
Matija Nalis
2
Qual é a história de código aberto com este?
Sean Houlihane
@SeanHoulihane Ótima pergunta. Vou ver se consigo descobrir, a página e a home page do Kickstarter estão ausentes. Na verdade, estou um pouco irritado com a reivindicação "menor" do pessoal da Onion após o comentário de Matija2 acima, mas talvez eles possam se redimir (aos meus humildes olhos) com uma arquitetura aberta.
Jason C
3
Lembre-se, as pessoas podem reivindicar qualquer coisa no Kickstarter ...
Sean Houlihane
@SeanHoulihane Oh cara, não me inicie no meu discurso de ódio no Kickstarter, heh. Resistir, resistir ... Ainda assim, o Kickstarter afirma e o Open-ness à parte, tanto o Omega quanto o vocore são novos dispositivos muito legais. E também temos o RPi Zero na frente de baixo custo.
Jason C
6

Sugiro uma abordagem passo a passo para descobrir qual idioma e controlador você deve usar. O microcontrolador necessário dependerá das tarefas que você deseja executar. Teoricamente, a tarefa estabelecerá alguns requisitos que um microcontrolador apropriado atenderá, portanto, você deve escolher o microcontrolador por esses requisitos.

  1. Defina uma história de usuário para o dispositivo. O que você espera disso? Do que você quer que seja capaz?

    No seu caso, ele já está definido por você:

    Um dispositivo alimentado por bateria que deve ser capaz de receber entradas de um smartphone e exibir informações meteorológicas dos locais solicitados em seu próprio monitor.

  2. Agora, o passo 1. fornece algo para você começar. Você pode decidir qual hardware precisa no nível do diagrama de blocos.

    Você certamente precisará de um monitor e, possivelmente, de um módulo WiFi ou Bluetooth para se comunicar com seu celular. Acessar bancos de dados climáticos globais possivelmente requer conexão à Internet. Você deve controlar os dois com um MCU ou o módulo WiFi (você precisa da Internet para excluir o Bluetooth) e deve poder controlar a exibição e executar o software.

  3. Você pode começar a procurar peças específicas. Você pode começar a decidir qual bateria usará para poder levar em consideração o consumo de energia de suas peças em potencial. Resumi um processo geral para selecionar MCUs em uma das minhas respostas anteriores . Basicamente, o mesmo deve ser feito aqui. Encontre um monitor barato, ele provavelmente usará uma interface SPI ou I2C para comunicação. Em seguida, você pode procurar um módulo Wifi com SPI / I2C e possui um MCU integrado ou um MCU separado e um módulo WiFi. O módulo WiFi individual provavelmente usará o UART para se comunicar, portanto o MCU individual deve ter isso ao longo do SPI / I2C.

  4. Quanto ao idioma. A maioria dos microcontroladores limitará suas possibilidades neste campo. Na maioria dos casos, suas escolhas serão C, C ++ ou Assembly, falando estritamente de microcontroladores aqui e não de computadores de placa única.

    Se você optar por usar um BeagleBone ou Raspberry que possa rodar Linux ou outro sistema operacional poderoso, eu digo que a melhor linguagem será a que você conhece melhor, é claro que deve ser capaz de lidar com a tarefa. ( Você pode executar o Java no RPi, se quiser. )

    A abertura de um soquete para um serviço global de dados climáticos também pode ser feita em C, C # ou Python. Seria um pouco mais difícil processar JSON com C, mas certamente possível.

Falando sobre custos em geral. A melhor opção é procurar dispositivos de exibição habilitados para WiFi, haverá muitos resultados e a maioria deles usará o mesmo hardware, e provavelmente este será o mais barato.


Você pode usar um módulo WiFi ESP8266 compatível com Arduino para conectar-se à Internet e fazer interface com um monitor. Isso exigirá muitos ajustes do que um Raspberry Pi exigiria, mas será mais barato.

Aqui está um projeto Hackaday sobre o display ESP8266 + OLED .

Bence Kaulics
fonte
2
Boa decomposição do processo. O Micropython está disponível para muitas placas pequenas, talvez um fator a considerar seja o ecossistema da placa e, se houver alguma biblioteca de código aberto (embora os fornecedores de MCU geralmente também ofereçam boas bibliotecas).
Sean Houlihane
6

Criar uma startup não é sobre o que você pode fazer com a tecnologia e nem sobre o produto. Para uma startup bem-sucedida que possa cativar os VCs, você deve primeiro pensar no mercado que irá atender. Mas pensar no mercado que você atenderá não é suficiente. Você precisa ter dados reais sobre o mercado. Não é apenas algo que faz sentido para você. Criar um produto e depois tentar vendê-lo não é uma abordagem bem-sucedida e é assim que a maioria das startups malsucedidas termina. Um mercado é uma NECESSIDADE REAL. Ao criar um produto, crie-o para abordar um mercado específico. É isso que faz um produto de sucesso, um produto que se vende porque as pessoas já o procuram. Os VCs investem apenas em startups que possuem esses produtos, especialmente se já estiverem vendendo.

Para escolher uma tecnologia para desenvolver seu produto primeiro, você precisa saber o que seu produto precisa fazer, é assim que resolverá o problema no mercado selecionado. Em seguida, observe o que os clientes em potencial estão dispostos a pagar por isso. Em seguida, escolha a tecnologia que permite o menor tempo de colocação no mercado, mantendo o custo dentro do orçamento. Terceirize o desenvolvimento ou obtenha um parceiro que possa fazê-lo e esteja disposto a trabalhar com você. Compartilhe os lucros 50/50 com seu parceiro. Então, quando você tiver um protótipo, comece a traçar seu plano de negócios e lembre-se de que só poderá cativar VCs se mostrar a eles como eles podem ganhar dinheiro.

Se você precisar reduzir o custo do seu produto para produção em massa, poderá usar linguagens de nível inferior e microcontroladores com menos recursos, como Microchip PIC ou Silicon Labs EFM com ASM / C / C ++. Se o produto não estiver indo para produção em massa (100k +), use uma linguagem de nível superior e microcontroladores com mais recursos, como Micro Python ou Lua com ARM32 MIPS, ou mesmo Linux com ARM32 / 64. Isso economiza nos custos de desenvolvimento, mas aumenta o preço do hardware. Lembre-se, o preço do produto não é apenas um PCB com componentes; desenvolvimento, habitação, embalagem e tudo o mais necessário para vender o produto devem ser investidos no seu custo. Coloque isso no plano de negócios. E não vá a um VC com um Arduino ou um Raspberry Pi ou um Onion ou qualquer coisa que pareça um gadget amador,

Arranque, não baixo, e o melhor da sorte.

555
fonte
Realmente faz um sentido completo de marketing. Obrigado :)
Jigarb1992