This commit is contained in:
jomjol
2020-10-26 18:30:45 +01:00
14 changed files with 144 additions and 20 deletions

View File

@@ -25,13 +25,18 @@ A 3d-printable housing can be found here: https://www.thingiverse.com/thing:4571
**General remark:** Beside the `firmware.bin`, typically also the content of `/html` needs to be updated! **General remark:** Beside the `firmware.bin`, typically also the content of `/html` needs to be updated!
##### Rolling - (2020-10-25)
* based on v3.1.0 (2020-10-26)
##### Rolling - (2020-10-14)
* based on v3.0.0 (2020-10-14) ##### 3.1.0 MQTT-Client - (2020-10-26)
* Update digital CNN to v6.5.0 and HTML (Info to hostname, IP, ssid)
* New implementation of "checkDigitConsistency" also for digits
* MQTT-Adapter: user and password for sign in MQTT-Broker
##### 3.0.0 MQTT-Client (2020-10-14) ##### 3.0.0 MQTT-Client (2020-10-14)

View File

@@ -22,6 +22,7 @@ static const char *MAIN_TAG = "connect_wlan";
std::string ssid; std::string ssid;
std::string passphrase; std::string passphrase;
std::string hostname; std::string hostname;
std::string ipaddress;
std::string std_hostname = "watermeter"; std::string std_hostname = "watermeter";
@@ -123,6 +124,7 @@ void initialise_wifi(std::string _ssid, std::string _passphrase, std::string _ho
xEventGroupWaitBits(wifi_event_group,CONNECTED_BIT,true,true,portMAX_DELAY); xEventGroupWaitBits(wifi_event_group,CONNECTED_BIT,true,true,portMAX_DELAY);
tcpip_adapter_ip_info_t ip_info; tcpip_adapter_ip_info_t ip_info;
ESP_ERROR_CHECK(tcpip_adapter_get_ip_info(TCPIP_ADAPTER_IF_STA, &ip_info)); ESP_ERROR_CHECK(tcpip_adapter_get_ip_info(TCPIP_ADAPTER_IF_STA, &ip_info));
ipaddress = std::string(ip4addr_ntoa(&ip_info.ip));
printf("IPv4 : %s\n", ip4addr_ntoa(&ip_info.ip)); printf("IPv4 : %s\n", ip4addr_ntoa(&ip_info.ip));
printf("HostName : %s\n", hostname.c_str()); printf("HostName : %s\n", hostname.c_str());
} }
@@ -191,3 +193,14 @@ void LoadWlanFromFile(std::string fn, std::string &_ssid, std::string &_passphra
} }
std::string getHostname(){
return hostname;
}
std::string getIPAddress(){
return ipaddress;
}
std::string getSSID(){
return ssid;
}

View File

@@ -10,4 +10,8 @@ void initialise_wifi(std::string _ssid, std::string _passphrase, std::string _ho
void LoadWlanFromFile(std::string fn, std::string &_ssid, std::string &_passphrase, std::string &_hostname); void LoadWlanFromFile(std::string fn, std::string &_ssid, std::string &_passphrase, std::string &_hostname);
std::string getHostname();
std::string getIPAddress();
std::string getSSID();
#endif #endif

View File

@@ -10,6 +10,8 @@
#include "camera_define.h" #include "camera_define.h"
#include "driver/ledc.h"
CCamera Camera; CCamera Camera;
@@ -20,6 +22,42 @@ typedef struct {
size_t len; size_t len;
} jpg_chunking_t; } jpg_chunking_t;
///////////////////////////////////////////////////////////////////////////////////////////////////////
#define LEDC_LS_CH2_GPIO (4)
#define LEDC_LS_CH2_CHANNEL LEDC_CHANNEL_2
#define LEDC_LS_TIMER LEDC_TIMER_1
#define LEDC_LS_MODE LEDC_LOW_SPEED_MODE
#define LEDC_TEST_DUTY (4000)
void test(){
ledc_channel_config_t ledc_channel = { };
ledc_channel.channel = LEDC_LS_CH2_CHANNEL;
ledc_channel.duty = 0;
ledc_channel.gpio_num = FLASH_GPIO;
ledc_channel.speed_mode = LEDC_LS_MODE;
ledc_channel.hpoint = 0;
ledc_channel.timer_sel = LEDC_LS_TIMER;
ledc_channel_config(&ledc_channel);
ledc_set_duty(ledc_channel.speed_mode, ledc_channel.channel, LEDC_TEST_DUTY);
ledc_update_duty(ledc_channel.speed_mode, ledc_channel.channel);
vTaskDelay(1000 / portTICK_PERIOD_MS);
};
////////////////////////////////////////////////////////////////////////////////////////////////////////
static size_t jpg_encode_stream(void * arg, size_t index, const void* data, size_t len){ static size_t jpg_encode_stream(void * arg, size_t index, const void* data, size_t len){
jpg_chunking_t *j = (jpg_chunking_t *)arg; jpg_chunking_t *j = (jpg_chunking_t *)arg;
if(!index){ if(!index){

View File

@@ -404,6 +404,9 @@ void doReboot(){
LogFile.WriteToFile("Reboot - now"); LogFile.WriteToFile("Reboot - now");
KillTFliteTasks(); KillTFliteTasks();
xTaskCreate(&task_reboot, "reboot", configMINIMAL_STACK_SIZE * 64, NULL, 10, NULL); xTaskCreate(&task_reboot, "reboot", configMINIMAL_STACK_SIZE * 64, NULL, 10, NULL);
vTaskDelay(5000 / portTICK_PERIOD_MS);
esp_restart();
hard_restart();
} }

View File

@@ -335,25 +335,23 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
Value = std::stof(zw); Value = std::stof(zw);
if (checkDigitIncreaseConsistency) if (checkDigitIncreaseConsistency)
{ {
// Value = checkDigitConsistency(Value, DecimalShift, isanalog); Value = checkDigitConsistency(Value, DecimalShift, isanalog);
} }
zwvalue = RundeOutput(Value, AnzahlAnalog - DecimalShift); zwvalue = RundeOutput(Value, AnzahlAnalog - DecimalShift);
if ((!AllowNegativeRates) && (Value < PreValue)) if ((!AllowNegativeRates) && (Value < PreValue))
{ {
error = "Negative Rate - Returned old value - read value: " + zwvalue; error = error + "Negative Rate - Returned old value - read value: " + zwvalue + " ";
Value = PreValue; Value = PreValue;
zwvalue = RundeOutput(Value, AnzahlAnalog - DecimalShift); zwvalue = RundeOutput(Value, AnzahlAnalog - DecimalShift);
} }
else
if (useMaxRateValue && (abs(Value - PreValue) > MaxRateValue))
{ {
if (useMaxRateValue && (abs(Value - PreValue) > MaxRateValue)) error = error + "Rate too high - Returned old value - read value: " + zwvalue + " ";
{ Value = PreValue;
error = "Rate too high - Returned old value - read value: " + zwvalue; zwvalue = RundeOutput(Value, AnzahlAnalog - DecimalShift);
Value = PreValue;
zwvalue = RundeOutput(Value, AnzahlAnalog - DecimalShift);
}
} }
ReturnValueNoError = zwvalue; ReturnValueNoError = zwvalue;
@@ -426,7 +424,7 @@ float ClassFlowPostProcessing::checkDigitConsistency(float input, int _decilamsh
float zw; float zw;
pot = _decilamshift; pot = _decilamshift;
if (!_isanalog) // falls es keine analogwerte gibt, kann die letzte nicht bewerte werden if (!_isanalog) // falls es keine analogwerte gibt, kann die letzte nicht bewertet werden
{ {
pot++; pot++;
} }

View File

@@ -7,6 +7,8 @@
#include "time_sntp.h" #include "time_sntp.h"
#include "connect_wlan.h"
#include "version.h" #include "version.h"
#include "esp_wifi.h" #include "esp_wifi.h"
@@ -94,6 +96,34 @@ esp_err_t info_get_handler(httpd_req_t *req)
return ESP_OK; return ESP_OK;
} }
if (_task.compare("Hostname") == 0)
{
std::string zw;
zw = std::string(getHostname());
httpd_resp_sendstr_chunk(req, zw.c_str());
httpd_resp_sendstr_chunk(req, NULL);
return ESP_OK;
}
if (_task.compare("IP") == 0)
{
std::string zw;
zw = std::string(getIPAddress());
httpd_resp_sendstr_chunk(req, zw.c_str());
httpd_resp_sendstr_chunk(req, NULL);
return ESP_OK;
}
if (_task.compare("SSID") == 0)
{
std::string zw;
zw = std::string(getSSID());
httpd_resp_sendstr_chunk(req, zw.c_str());
httpd_resp_sendstr_chunk(req, NULL);
return ESP_OK;
}
return ESP_OK; return ESP_OK;
} }

Binary file not shown.

View File

@@ -13,7 +13,7 @@ SearchFieldY = 20
[Digits] [Digits]
Model=/config/dig0640s3.tflite Model=/config/dig0650s3.tflite
LogImageLocation = /log/digit LogImageLocation = /log/digit
ModelInputSize 20, 32 ModelInputSize 20, 32
digit1, 306, 120, 37, 67 digit1, 306, 120, 37, 67

Binary file not shown.

Binary file not shown.

View File

@@ -73,8 +73,8 @@ li.dropdown {
<body style="font-family: arial"> <body style="font-family: arial">
<h1>Watermeter - AI on the edge</h1> <h1>Digitizer - AI on the edge</h1>
<h2>An ESP32 all in neural network recognition system</h2> <h2>An ESP32 all inclusive neural network recognition system for meter digitalization</h2>
<ul> <ul>
<li><a href="#"onclick="document.getElementById('maincontent').src = '/wasserzaehler_roi.html';">Overview</a></li> <li><a href="#"onclick="document.getElementById('maincontent').src = '/wasserzaehler_roi.html';">Overview</a></li>

View File

@@ -23,9 +23,42 @@ div {
</head> </head>
<body style="font-family: arial; padding: 0px 10px;"> <body style="font-family: arial; padding: 0px 10px;">
<h3>Host Info</h3>
<table style="font-family: arial">
<tr>
<td>
Hostname:
</td>
<td>
<div id="gitbranch">
<object data="/version?type=Hostname"></object>
</div>
</td>
</tr>
<tr>
<td>
IP-Address:
</td>
<td>
<div id="gitbranch">
<object data="/version?type=IP"></object>
</div>
</td>
</tr>
<tr>
<td>
WLan-SSID:
</td>
<td>
<div id="gitbranch">
<object data="/version?type=SSID"></object>
</div>
</td>
</tr>
</table>
<h3>Version Info</h3> <h3>Version Info</h3>
<table style="font-family: arial"> <table style="font-family: arial">

View File

@@ -1 +1 @@
1.0.0 1.1.0