Cookiecutter do projektów IoT

Yo, razem z @critbit zaczynamy mieszać w HS i dodawać więcej IoT. Ponieważ irytuje mnie strasznie klejenie za każdym razem od początku projektu który robi te same rzeczy. T chcę stworzyć szablon dla wszystkich co co chcą robić rzeczy i łatwo je integrować w HS.

Repo zapełnimy później.

Co ma robić

  1. sensowny handling config’a aby nie udostępniać haseł wifi
  2. setup wifi i boilerplate dookoła tego
  3. MQTT + DNS, bo to też będzie się powtarzać miedzy projektami
  4. automatyzacja jakiś nudnych rzeczy jak formatowanie, lintery itp.

Inne projekty IoT juś w HS

Tu polacy, przejmujemy ten wątek do spisania założeń IoT spejsowego

Chcielibyśmy, żeby komunikacja IoT opierała się o MQTT a nie HTTP, ułatwi to integrację sensorów różnego typu:

  • Linuxowe urządzenia mogą bez problemów z pythona / basha współpracować z MQTT.
  • Urządzenia embedded z wifi (czyli w praktyce gnój oparty o esp8266 i esp32) mają biblioteki do komunikacji po MQTT, i działają ok.
  • Urządzenia bluetooth, 433MHz itp integrować można w relatywnie prosty sposób z resztą ekosystemu za pomocą gatewayów.

Lista potencjalnych urządzeń

Linux:

  • Intercringe (subject name to be changed) - raspberka z ekranem 4inch - lokacja brokera MQTT + być może gateway dla urządzeń bluetooth. Można też dodać kontrolę odtwarzania spotify, I guess.
  • Cringebox - endpointy do mówienia wystawione na MQTT, endpoint do wyświetlacza alfanumerycznego

ESPy:

  • LED stuff - Matekrater i lampka przed wejściem mają firmware WLED, który natywnie obsługuje MQTT
  • Offensive triton - buttony powinny wysyłać info o wciśnięciu do sieci.
    • Refactor z HTTP do MQTT?
  • vortex cams - ESP32-CAM, przetwarzanie obrazu i świecące ledy, komunikacja po MQTT

RF IoT:

  • xiaomi thermometer - przyklejony nad drzwiami coworku, ma customowy firmware i wysyła temperature itp. pakietami rozgłoszeniowymi, które wystarczy zebrać i wepchnąć na MQTT, z pomocą jakiegoś gatewaya
  • stacja pogodowa - nk zhackuje

[this list is incomplete, you can help by expanding it]

Konwencje projektu

Przy obkodowywaniu infry proponuję stosować się mniej więcej do Homie convention - do ustalenia jest jak rygorystycznie powinniśmy do tego podchodzić.

https://homieiot.github.io/

Należy zdefiniować część wspólną tych projektów - TODO

2 Likes

Pierwszy wygenerowany proejtk. Trzeba zaktualizować o support DNS, i wtedy backport do cookie.