Tento repozitář obsahuje obslužný firmware napájecí jednotky.
- Node.js 18.x
- NPM
- ESP-IDF
- Naklonujte si tento repozitář pomocí příkazu:
git clone https://gitlab.com/sbc-pdu/pdu-unit/firmware.git
- Přesuňte se do složky
webapp
pomocí příkazu:cd webapp
- Nainstaluje závislosti frontendu pomocí příkazu:
npm install
- Sestavte frontend pomocí příkazu:
npm run build
- Vraťte se do kořenové složky repozitáře pomocí příkazu:
cd ../
- Upravte výchozí konfiguraci napájecí jednotky ve funkci
initNvs
v souborumain/main.cpp
:
void initNvs() {
ESP_ERROR_CHECK(NvsManager::init());
// WiFi NVS
NvsManager wifiNvs("wifi");
/* Zabezpečení WiFi z výčtu [wifi_auth_mode_t](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_wifi.html#_CPPv416wifi_auth_mode_t) */
wifiNvs.setDefault("authmode", static_cast<uint8_t>(WIFI_AUTH_WPA2_PSK));
/* SSID WiFi sítě */
wifiNvs.setStringDefault("ssid", "SSID");
/* Heslo WiFi sítě */
wifiNvs.setStringDefault("psk", "password");
wifiNvs.commit();
// MQTT NVS
NvsManager mqttNvs("mqtt");
/* Adresa MQTT brokeru */
mqttNvs.setStringDefault("uri", "mqtts://mqtt.romanondracek.cz:8883");
/* Uživatelské jméno k MQTT brokeru */
mqttNvs.setStringDefault("username", "sbc_pdu");
/* Heslo k MQTT brokeru */
mqttNvs.setStringDefault("password", "password");
mqttNvs.commit();
// SNTP NVS
NvsManager ntpNvs("ntp");
/* Počet NTP serverů */
uint8_t ntpServers = 2;
ntpNvs.setDefault("servers", ntpServers);
/* Adresa prvního NTP serveru */
ntpNvs.setStringDefault("server0", "tik.cesnet.cz");
/* Adresa druhého NTP serveru */
ntpNvs.setStringDefault("server1", "tak.cesnet.cz");
/* Časová zóna */
ntpNvs.setStringDefault("timezone", "CET/CEST");
ntpNvs.commit();
// HTTP credentials NVS
NvsManager httpCredentialsNvs("httpCredentials");
/* Uživatelské jméno do webového rozhraní */
httpCredentialsNvs.setStringDefault("username", "admin");
/* Heslo do webového rozhraní */
httpCredentialsNvs.setStringDefault("password", "sbc-pdu");
httpCredentialsNvs.commit();
}
- Sestavte firmware pomocí příkazu:
idf.py build
Firmware do zařízení (typicky na portu /dev/ttyUSB0
) nahrajeme pomocí příkazu:
idf.py --port /dev/ttyUSB0 flash
Výstup ze sériové konzole si můžete zobrazit pomocí příkazu:
idf.py --port /dev/ttyUSB0 monitor
Ze sériové konzole se odchází pomocí Ctrl+]
.