Popis projektu
V čase letných prázdnin som pracoval na IoT projekte. Projekt pozostáva zo solárneho panelu, ktorý privádza prúd do čipu INA219 Vin+. INA219 Vin- prúd smeruje do spotrebiča, ktorý som zvolil výkonový rezistor a následne sa vracia späť do solárneho panela.
Čip INA219 je napájaný cez ESP32S3. Využíva I2C zbernicu a posiela dáta do ESP32 cez dátovú linku SDA a časovú linku SCL.
Webová stránka pozostáva z backendu reprezentovaným frameworkom django (vrátane knižníc djangorestframework a django-cors-headers). Spustenie django prebieha cez read_serial. Frontend sa spúšťa cez react+vite a npm framework. Webová stránka obsahuje záložky Dashboard (ukazujúci realtime dáta), História, Správu zariadení. Správa zariadení má implementovanú CRUD logiku a je možné ju vyvojársky upravovať aj cez framework django. Každé zariadenie má priradené vlastné nezameniteľné ID. Zatiaľ nie je meniť formu komunikácie (napr. z wifi na UART) toho istého zariadenia, je nutné pridať zariadenie s novým nastavením komunikácie. V databáze je každé zariadenie tiež uložené formou JSON rovnako ako sú uložené merané dáta.
Špecifikácia
Hardvér: Breadboard, vodiče, výkonový rezistor 330 Ω, ESP32S3, INA219, Adafruit ILI9341, solárny panel
Softvér: Arduino IDE, django, react+vite, dbsqlite
Microcontrollery a čipy: ESP32S3, INA219 čip na meranie elektrického prúdu a napätia
Komunikácia medzi ESP32 a PC: UART a Wifi
Unix timestap: Áno (musí byť povolená premená pre Wifi v kóde)
Databáza: dbsqlite3
Forma a spôsob posielania dát: JSON formát cez API
Vizualizácia dát: webová stránka v PC (hlavný) a Adafruit ILI9341 (vedľajší)
Bezpečnosť projektu: hardvér (dobrá), softvér (slabá – kód v ESP32 obsahuje dáta o IP adrese, názov a heslo wifi siete)
Prezentácia o projekte
0 Comments