top | item 45437027

Building an IoT Notification Device from Scratch

86 points| bertwagner | 5 months ago |bertwagner.com

18 comments

order

Havoc|5 months ago

The entire ESP ecosystem is quite accessible for people of modest technical ability.

HomeAssistant+ ESPHome + ESP32 in particular is a good stack because it takes away most of the complexity. Common sensors have ESPHome code available with a quick google so just need to connect the wires right basically

mlhpdx|5 months ago

Indeed about ESP32 being approachable. I particularly enjoyed finding and messing about with the Cheap Yellow Display. It’s a fun little platform and with LVGL making it pretty is a joy.

Would have been a nicer fit (smaller bevel) than the LCD in this project at about the same cost.

NoiseBert69|5 months ago

Problem is that ESP32s are super power hungry once you start using BLE or Wifi.

For BLE you can use STM32s and Nordics. But Wifi-on-Chip is ESP32-only.

bertwagner|5 months ago

Author here. Thanks for reading. This was a massive learning project for me, I'm happy to answer questions or feedback.

cstuder|5 months ago

FYI: A couple of the images down in the article are not loading (And later some seem to be incorrectly formatted). I'm especially looking forward to the exploded button.

sleepybrett|5 months ago

Almost Name Twin here (brett wagner) just saying hey.

mlhpdx|5 months ago

If you want to avoid “long polling” then MQTT isn’t the answer (it’s still a long held TCP connection waiting for messages). UDP would be the way to go, and with WireGuard as a carrier you don’t have to worry about NAT traversal issues (and get privacy as a bonus).

Love the project - would have been great when my kiddos were that age.

bertwagner|5 months ago

Thank you and I'm glad you enjoy the project. I'll have to look more into UDP for this type of solution.

jkscm|4 months ago

MQTT is not the same as long polling

9029|5 months ago

Very cool project, I feel inspired to try something like this myself!

I noticed there seems to be a use-after-return with the creds returned from CredentialManager::retrieveCredentials (C-arrays can't be passed/returned by value). One solution could be to return Arduino Strings instead

petesoper|5 months ago

When I got to auto[ssid, etc in main.c it became clear the sophistication/excursion from the typical Esp32 code centerline is at many levels. Thanks for sharing!

mxuribe|5 months ago

This is wonderful! Thanks for sharing!!