Compare commits
4 Commits
9d3b64744f
...
v1.0.4
| Author | SHA1 | Date | |
|---|---|---|---|
| cefe34c7bc | |||
| 388e75864a | |||
| b33db504a3 | |||
| 0765c47e4a |
11
README.md
11
README.md
@@ -77,4 +77,13 @@ sudo apt install nodejs npm nanopb
|
||||
1. After flashing, the ESP32 will either connect to the pre-configured Wi-Fi network or start an Access Point (APSTA).
|
||||
2. Check the serial monitor logs to find the IP address assigned to the device in STA mode, or the default AP address (usually `192.168.4.1`).
|
||||
3. Open a web browser and navigate to the device's IP address.
|
||||
4. You should now see the ODROID Remote control panel.
|
||||
4. You should now see the ODROID Remote control panel.
|
||||
|
||||
## Docs
|
||||
|
||||
- Hardkernel WiKi: [https://wiki.odroid.com/accessory/powermate](https://wiki.odroid.com/accessory/powermate)
|
||||
|
||||
## Repo
|
||||
|
||||
- Hardkernel Github: [https://github.com/hardkernel/odroid-powermate](https://github.com/hardkernel/odroid-powermate)
|
||||
- Original Repo: [https://github.com/shinys000114/odroid-powermate](https://github.com/shinys000114/odroid-powermate)
|
||||
2
example/logger/.gitignore
vendored
2
example/logger/.gitignore
vendored
@@ -2,4 +2,4 @@
|
||||
/venv/
|
||||
status_pb2.py
|
||||
test.csv
|
||||
plot.png
|
||||
plot.png
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import argparse
|
||||
|
||||
import matplotlib.dates as mdates
|
||||
import matplotlib.pyplot as plt
|
||||
import os
|
||||
import pandas as pd
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ def plot_power_data(csv_path, output_path, plot_types):
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Generate a plot from an Odroid Smart Power CSV log file.")
|
||||
parser = argparse.ArgumentParser(description="Generate a plot from an Odroid PowerMate CSV log file.")
|
||||
parser.add_argument("input_csv", help="Path to the input CSV log file.")
|
||||
parser.add_argument("output_image", help="Path to save the output plot image (e.g., plot.png).")
|
||||
parser.add_argument(
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
void wifi_init_sta(void);
|
||||
void wifi_init_ap(void);
|
||||
void initialize_sntp(void);
|
||||
void wifi_set_auto_reconnect(bool enable);
|
||||
|
||||
#endif // ODROID_POWER_MATE_PRIV_WIFI_H
|
||||
|
||||
@@ -81,6 +81,14 @@ void wifi_scan_aps(wifi_ap_record_t** ap_records, uint16_t* count)
|
||||
*count = 0;
|
||||
*ap_records = NULL;
|
||||
|
||||
wifi_set_auto_reconnect(false);
|
||||
|
||||
wifi_ap_record_t ap_info;
|
||||
if (esp_wifi_sta_get_ap_info(&ap_info) != ESP_OK)
|
||||
{
|
||||
esp_wifi_disconnect();
|
||||
}
|
||||
|
||||
// Start scan, this is a blocking call
|
||||
if (esp_wifi_scan_start(NULL, true) == ESP_OK)
|
||||
{
|
||||
@@ -100,6 +108,16 @@ void wifi_scan_aps(wifi_ap_record_t** ap_records, uint16_t* count)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wifi_set_auto_reconnect(true);
|
||||
|
||||
if (esp_wifi_sta_get_ap_info(&ap_info) != ESP_OK)
|
||||
{
|
||||
if (!nconfig_value_is_not_set(WIFI_SSID))
|
||||
{
|
||||
wifi_connect();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
esp_err_t wifi_get_current_ap_info(wifi_ap_record_t* ap_info)
|
||||
|
||||
@@ -16,9 +16,13 @@
|
||||
#include "wifi.h"
|
||||
|
||||
#include "indicator.h"
|
||||
static bool s_auto_reconnect = true;
|
||||
|
||||
static const char* TAG = "WIFI";
|
||||
|
||||
void wifi_set_auto_reconnect(bool enable) { s_auto_reconnect = enable; }
|
||||
|
||||
|
||||
static void wifi_event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data)
|
||||
{
|
||||
if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_AP_STACONNECTED)
|
||||
@@ -46,10 +50,18 @@ static void wifi_event_handler(void* arg, esp_event_base_t event_base, int32_t e
|
||||
}
|
||||
else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED)
|
||||
{
|
||||
led_set(LED_RED, BLINK_TRIPLE);
|
||||
led_set(LED_BLU, BLINK_TRIPLE);
|
||||
wifi_event_sta_disconnected_t* event = (wifi_event_sta_disconnected_t*)event_data;
|
||||
ESP_LOGW(TAG, "Disconnected from AP, reason: %s", wifi_reason_str(event->reason));
|
||||
// ESP-IDF will automatically try to reconnect by default.
|
||||
|
||||
if (event->reason != WIFI_REASON_ASSOC_LEAVE)
|
||||
{
|
||||
if (s_auto_reconnect && !nconfig_value_is_not_set(WIFI_SSID))
|
||||
{
|
||||
ESP_LOGI(TAG, "Connection lost, attempting to reconnect...");
|
||||
esp_wifi_connect();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user