mensagens em tempo real para ESP32 com baterias incluídas (nova biblioteca) (Interconectado)

mensagens em tempo real para ESP32 com baterias incluídas (nova biblioteca) (Interconectado)


Eu hackeio bastante hardware, no Inanimate e em casa.

A IA está na nuvem. A interação está no meu quarto e nas minhas mãos. O trabalho sempre começa conectando essas duas extremidades.

Então, a segunda coisa que faço, sempre, é trazer mensagens em tempo real usando JSON em websockets para que eu possa conectar meu novo dispositivo a um servidor e fazer com que ele emita eventos e ouça comandos.

(A primeira coisa que faço é abrir o hardware e obter luzes piscantes básicas.)

Quero que meu cliente de websockets no dispositivo tenha uma interface super fácil: dê-me um onMessage manipulador para lidar com mensagens recebidas.

Preciso de configuração de wi-fi integrada (para poder transportar meu protótipo para lugares diferentes). E não quero ter que escolher quais bibliotecas usarei a cada vez, quero bons padrões.

Isso é o que Courier faz, em apenas algumas linhas.

Honestamente, isso não é ciência de foguetes. Não é nada demais. Mas são as decisões que tomo e os padrões que tenho que escrever para cada novo projeto, e considero o Courier útil pessoalmente. Então, no espírito de compartilhar, espero que seja útil para você também.

Encontre o código e o README aqui: Courier no GitHub

Início rápido

Courier faz um trabalho pequeno e necessário (mensagens) da maneira mais direta possível.

Digamos que você esteja usando o Arduino no ESP32. Direi mais sobre o ESP32 em um minuto.

Adicione Courier ao seu projeto (recomendamos gerenciar seu projeto com PlatformIO):

lib_deps = https://github.com/inanimate-tech/courier.git

Então aqui está todo o código C++ que você precisa:

#include 

CourierConfig makeConfig() {
  CourierConfig cfg;
  cfg.host = "api.example.com";
  cfg.port = 443;
  cfg.path = "/ws";
  return cfg;
}

Courier courier(makeConfig());

void setup() {
  courier.onConnected(()() { courier.send(R"({"type":"hello"})"); });
  courier.onMessage(()(const char* type, JsonDocument& doc) {
    Serial.printf("Got: %s\n", type);
  });
  courier.setup();
}

void loop() { courier.loop(); }

Agora seu servidor pode enviar mensagens em tempo real em JSON para o seu dispositivo, e seu dispositivo pode lidar com elas. (Ele tira o type automaticamente para facilitar o roteamento.)

É isso!

Você não precisa codificar detalhes de Wi-Fi em seu código. Courier inclui WiFiManager para conectividade portátil: se uma rede não for encontrada, esta biblioteca abre seu próprio ponto de acesso e abre um portal cativo.

Além disso, você obtém gratuitamente: recuperação automática sã do soquete e do wi-fi, sincronização de horário NTP para que o relógio interno não desvie e interrompa sua conexão segura (o que acontece após cerca de 72 horas) e um caminho de atualização fácil para MQTT.

Experimente Courier com um M5Stick

ESP32 é uma família de microcontroladores que ocupa um lugar especial no ecossistema de hardware: graças ao seu baixo custo, wi-fi e Bluetooth integrados e facilidade de desenvolvimento,

  • é a plataforma preferida para novas startups de hardware
  • e é ótimo na produção para o mercado de massa.

Ele ainda possui uma estrutura de compatibilidade com Arduino, então você pode começar com ela e depois iterar conforme avança. É bastante singular passar da bancada para a produção assim.

Então, amamos o ESP32 no Inanimate.

Um grande player no ecossistema ESP32 é o M5: eles são baseados na China e têm cerca de 400 SKUs que envolvem microcontroladores ESP32 em todos os tipos de gabinetes com todos os tipos de periféricos e sensores. Eu me diverti muito fazendo um tour pessoal pelo M5 quando visitei Shenzhen no ano passado – eles usam seus próprios sensores em uma rede IoT industrial para operar e monitorar sua linha de montagem.

Agora você deve ter visto um ou dois M5Stick nas redes sociais. Eles são super populares, pelo menos no meu círculo, as pessoas adoram hackeá-los.

Compre um M5Stick-C Plus2 na Amazon por menos de 30 dólares! É um ESP32 com tela, botões, campainha, giroscópio, bateria e microfone em um minúsculo pacote amarelo brilhante.

Compre um ou dois, abra-o seguindo a documentação e instale o Courier…

…ou use nosso código de exemplo. Nosso exemplo também suporta o M5StickS3 mais recente, que é cinza e possui um chip mais poderoso.

Isto é o que fiz com mensagens em tempo real e meu servidor websocket backend:

Meu pequeno traficante me conta as páginas principais do meu blog em tempo real ^_^ v

Tenho cursores ativos em todas as páginas do meu blog (redação e código-fonte aberto) para que o mesmo sistema envie mensagens JSON via websockets para o M5Stick em minha mesa.

Se uma postagem ficar grande, coloco meu bastão na mesa para ver imediatamente, depois vou até a página e digo oi para todos com o bate-papo do cursor.

Mais visitantes = mais flores!

Além disso: código shake-for-QR, para que eu possa seguir rapidamente o link de volta à postagem principal.

É incrível quando o hardware começa a parecer vivo.

Mostre-me se você faz alguma coisa também.

Experimente o Courier agora

Para usar o Courier agora, primeiro abra seu M5Stick ou outro hardware ESP32 para saber se funciona bem e, em seguida, vá para o repositório Courier no GitHub, onde você pode encontrar instruções de instalação, documentos de API e exemplos.

Está em desenvolvimento ativo: é isso que usamos para prototipagem na Inanimate.

Courier é distribuído sob uma licença do MIT.



Source link

Postagens Similares

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *