przesyłanie wiadomości w czasie rzeczywistym dla ESP32 z dołączonymi bateriami (nowa biblioteka) (połączone)

przesyłanie wiadomości w czasie rzeczywistym dla ESP32 z dołączonymi bateriami (nowa biblioteka) (połączone)


Często hackuję sprzęt, w Inanimate i w domu.

Sztuczna inteligencja jest w chmurze. Interakcja odbywa się w moim pokoju i w moich rękach. Praca zawsze zaczyna się od połączenia tych dwóch końcówek.

Drugą rzeczą, którą robię za każdym razem, jest wywoływanie wiadomości w czasie rzeczywistym za pomocą JSON za pośrednictwem gniazd sieciowych, dzięki czemu mogę podłączyć moje nowe urządzenie do serwera, emitować zdarzenia i nasłuchiwać poleceń.

(Pierwszą rzeczą, którą robię, jest przywołanie sprzętu i zdobycie podstawowych świateł mrugających.)

Chcę, aby mój klient websocket na urządzeniu miał bardzo łatwy interfejs: daj mi onMessage handler do obsługi przychodzących wiadomości.

Potrzebuję wbudowanej konfiguracji Wi-Fi (aby móc przenosić mój prototyp w różne miejsca). Nie chcę też wybierać, których bibliotek będę używać za każdym razem, chcę mieć dobre ustawienia domyślne.

To właśnie robi Courier w zaledwie kilku wierszach.

Szczerze mówiąc, to nie jest nauka o rakietach. To nic wielkiego. Ale to decyzje, które podejmuję, i szablony, które muszę pisać dla każdego nowego projektu, a nie chcę wprawiać kodu i testować tego fragmentu za każdym razem… Chcę tylko, żeby to zadziałało. Dlatego osobiście uważam, że Courier jest przydatny. W duchu dzielenia się mam nadzieję, że będzie to przydatne również dla Ciebie.

Znajdź kod i plik README tutaj: Courier w GitHub

Szybki start

Kurier wykonuje niewielką i niezbędną pracę (wysyłanie wiadomości) w najprostszy możliwy sposób.

Załóżmy, że używasz Arduino na ESP32. O ESP32 powiem więcej za chwilę.

Dodaj Courier do swojego projektu (zalecamy zarządzanie projektem za pomocą PlatformIO):

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

Oto cały potrzebny kod C++:

#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(); }

Teraz Twój serwer może wysyłać wiadomości w czasie rzeczywistym w formacie JSON do Twojego urządzenia, a Twoje urządzenie może je obsłużyć. (Wyciąga type automatycznie, co ułatwia wyznaczanie tras.)

To wszystko!

Nie musisz kodować na stałe szczegółów Wi-Fi w swoim kodzie. Courier udostępnia WiFiManager w celu zapewnienia łączności przenośnej: jeśli nie można znaleźć sieci, ta biblioteka wyświetla własny punkt dostępu i otwiera portal przechwytujący.

Otrzymujesz także za darmo: rozsądną automatyczną naprawę zarówno gniazda, jak i Wi-Fi, synchronizację czasu NTP, dzięki czemu wewnętrzny zegar nie dryfuje i nie przerywa bezpiecznego połączenia (co ma miejsce po około 72 godzinach) oraz łatwą ścieżkę aktualizacji do MQTT.

Wypróbuj Courier z M5Stick

ESP32 to rodzina mikrokontrolerów, która zajmuje szczególne miejsce w ekosystemie sprzętowym: dzięki niskiemu kosztowi, wbudowanemu Wi-Fi i Bluetooth oraz łatwości programowania,

  • jest to platforma wybierana dla nowych start-upów sprzętowych
  • i świetnie sprawdza się w produkcji na rynek masowy.

Ma nawet platformę kompatybilności z Arduino, więc możesz zacząć od tego, a następnie iterować w miarę upływu czasu. Przejście z warsztatu do produkcji w ten sposób jest dość wyjątkowe.

Dlatego uwielbiamy ESP32 w Inanimate.

Dużym graczem w ekosystemie ESP32 jest firma M5: ma siedzibę w Chinach i ma około 400 jednostek SKU, które otaczają mikrokontrolery ESP32 we wszelkiego rodzaju obudowach z wszelkiego rodzaju urządzeniami peryferyjnymi i czujnikami. Świetnie się bawiłem, osobiście zwiedzając firmę M5, kiedy w zeszłym roku odwiedziłem Shenzhen – firma korzysta z własnych czujników w przemysłowej sieci IoT do obsługi i monitorowania swojej linii montażowej.

Być może widziałeś już jeden lub dwa M5Stick w mediach społecznościowych. Są bardzo popularne, przynajmniej w moim kręgu, ludzie uwielbiają je hakować.

Kup M5Stick-C Plus2 na Amazon za mniej niż 30 dolarów! To ESP32 z ekranem, przyciskami, brzęczykiem, żyroskopem, baterią i mikrofonem w maleńkim jasnożółtym opakowaniu.

Zdobądź jeden lub dwa, postępując zgodnie z dokumentacją, a następnie zainstaluj Courier…

…lub skorzystaj z naszego przykładowego kodu. Nasz przykład obsługuje również nowszą wersję M5StickS3, która jest szara i ma mocniejszy chip.

Oto, co zrobiłem, korzystając z przesyłania wiadomości w czasie rzeczywistym i mojego serwera websocket:

Mój mały facet od ruchu drogowego podaje mi w czasie rzeczywistym najpopularniejsze strony mojego bloga ^_^ v

Mam aktywne kursory na każdej stronie mojego bloga (napisany kod i otwarty kod źródłowy), dzięki czemu ten sam system wysyła wiadomości JSON za pośrednictwem gniazd internetowych do M5Stick na moim biurku.

Jeśli post staje się duży, kładę kij na biurku, więc od razu go widzę, a następnie wpadam na stronę i witam się ze wszystkimi za pomocą czatu z kursorem.

Więcej gości = więcej kwiatów!

Plus: wstrząśnij kodem QR, dzięki czemu mogę szybko skorzystać z linku z powrotem do pierwszego posta.

To niesamowite, kiedy sprzęt zaczyna ożywać.

Pokaż mi, jeśli też coś robisz.

Wypróbuj teraz usługę Courier

Aby już teraz korzystać z Courier, najpierw uruchom M5Stick lub inny sprzęt ESP32, aby upewnić się, że działa poprawnie, a następnie przejdź do repozytorium Courier w GitHub, gdzie znajdziesz instrukcje instalacji, dokumentację API i przykłady.

Jest w fazie aktywnego rozwoju: tego właśnie używamy do prototypowania w Inanimate. Hej, zapisz się do naszego newslettera Lab Notes!

Courier jest rozpowszechniany na licencji MIT.



Source link

Postagens Similares

Deixe um comentário

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