Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
N
neOCampus-arduino
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
GIS-neOCampus
neOSensor
neOCampus-arduino
Commits
41829afc
Commit
41829afc
authored
2 years ago
by
thiebolt
Browse files
Options
Downloads
Patches
Plain Diff
update
parent
19485916
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
ChangeLog.txt
+13
-0
13 additions, 0 deletions
ChangeLog.txt
neosensor/libraries/neocampus/wifiParametersMgt.cpp
+59
-8
59 additions, 8 deletions
neosensor/libraries/neocampus/wifiParametersMgt.cpp
neosensor/neosensor.ino
+0
-11
0 additions, 11 deletions
neosensor/neosensor.ino
with
72 additions
and
19 deletions
ChangeLog.txt
+
13
−
0
View file @
41829afc
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
Bumps to esp32 2.0.9
Bumps to esp32 2.0.9
Bumps to esp8266 3.1.2
Bumps to esp8266 3.1.2
- switch WiFi to both 802.11b AND 802.11g (DSI cut down 802.11b !!)
- switch WiFi to both 802.11b AND 802.11g (DSI cut down 802.11b !!)
- esp8266 now features a configTzTime() that unifies NTP setup for both ESPs
- make use of NVS namespace to save WiFi crdentials (in order to avoid SPIFFS
- make use of NVS namespace to save WiFi crdentials (in order to avoid SPIFFS
partitionning issues)
partitionning issues)
- recompiled lwip for NTP server support from DHCP answer (IDF 4.4.4)
- recompiled lwip for NTP server support from DHCP answer (IDF 4.4.4)
...
@@ -41,7 +42,19 @@ defaults
...
@@ -41,7 +42,19 @@ defaults
- setting up defaults partitionning IRAM to 32kb (defaults) in
- setting up defaults partitionning IRAM to 32kb (defaults) in
boards.local.txt
boards.local.txt
=== Release 220328
=== Release 220328
- save WiFi credentials even if wrongly typed or end device has not been able
- save WiFi credentials even if wrongly typed or end device has not been able
to connect to WiFi gateway
to connect to WiFi gateway
=== Changes before 2022
* F.Thiebolt nov.21 corrected timezone definition for esp32
* F.Thiebolt sep.21 added display module support (e.g oled or 7segment displays)
* F.Thiebolt aug.21 added digital inputs support (e.g PIR sensor)
* added support for shared JSON document for data exchange
* between modules
* F.Thiebolt aug.20 initial port from neOSensor based on ESP8266
* added esp32 adc calibration support
* setupNTP called AFTER network setup
This diff is collapsed.
Click to expand it.
neosensor/libraries/neocampus/wifiParametersMgt.cpp
+
59
−
8
View file @
41829afc
...
@@ -63,6 +63,8 @@ extern bool _need2reboot;
...
@@ -63,6 +63,8 @@ extern bool _need2reboot;
// NVS namespace for WiFi credentials
// NVS namespace for WiFi credentials
#define WIFI_NVS_NAMESPACE "wifiCredentials" // 15 chars max.
#define WIFI_NVS_NAMESPACE "wifiCredentials" // 15 chars max.
#define WIFI_NVS_SSID_KEY "ssid"
#define WIFI_NVS_PASS_KEY "pass"
// constructor
// constructor
...
@@ -328,6 +330,8 @@ bool wifiParametersMgt::_setopt_eraseALL( bool value ) {
...
@@ -328,6 +330,8 @@ bool wifiParametersMgt::_setopt_eraseALL( bool value ) {
/*
/*
* apply DEFAULTS values
* apply DEFAULTS values
* Note: options ought to get false as defaults
* Note: options ought to get false as defaults
* [may.23] trying to read WiFi credentials from ESP32 NVS
* specific namesace ... or from WiFi global vars @ ESP8266
*/
*/
void
wifiParametersMgt
::
_applyDefaults
(
void
)
{
void
wifiParametersMgt
::
_applyDefaults
(
void
)
{
...
@@ -347,22 +351,46 @@ void wifiParametersMgt::_applyDefaults( void ) {
...
@@ -347,22 +351,46 @@ void wifiParametersMgt::_applyDefaults( void ) {
// PIR sensor set as an option because it can't get detected
// PIR sensor set as an option because it can't get detected
_opt_PIRsensor
=
false
;
_opt_PIRsensor
=
false
;
/*
* add additioanl options here
*/
// Whole destruction option
// Whole destruction option
_opt_eraseALL
=
false
;
_opt_eraseALL
=
false
;
/*
/*
* [may.23] now trying to access wifi credentia
s
NVS namespace
* [may.23] now trying to access wifi credentia
ls from
NVS namespace
*/
*/
Preferences
nvs_area
;
#ifdef ESP32
if
(
nvs_area
.
begin
(
WIFI_NVS_NAMESPACE
,
true
)
)
{
// readonly mode
Preferences
nvs_wifi
;
if
(
nvs_wifi
.
begin
(
WIFI_NVS_NAMESPACE
,
true
)
)
{
// readonly mode
log_debug
(
F
(
"
\n
[wifiParams] opened NVS WiFi credentials namespace ..."
));
log_flush
();
log_debug
(
F
(
"
\n
[wifiParams] opened NVS WiFi credentials namespace ..."
));
log_flush
();
if
(
nvs_wifi
.
isKey
(
WIFI_NVS_SSID_KEY
)
)
{
// TO BE CONTINUED
nvs_wifi
.
getBytes
(
WIFI_NVS_SSID_KEY
,
_ssid
,
sizeof
(
_ssid
));
log_debug
(
F
(
"
\n\t
[NVS] SSID :"
));
log_debug
(
_ssid
);
log_flush
();
}
if
(
nvs_wifi
.
isKey
(
WIFI_NVS_PASS_KEY
)
)
{
nvs_wifi
.
getBytes
(
WIFI_NVS_PASS_KEY
,
_pass
,
sizeof
(
_pass
));
log_debug
(
F
(
"
\n\t
[NVS] PASS :"
));
log_debug
(
_pass
);
log_flush
();
}
// close NVS namespace
nvs_wifi
.
end
();
}
}
#elif defined (ESP8266)
#warning "[ESP8266] retrieving WiFi credentials from WiFi library is experimental"
if
(
WiFi
.
SSID
().
length
()
)
{
strncpy
(
_ssid
,
WiFi
.
SSID
().
c_str
(),
sizeof
(
_ssid
));
_ssid
[
sizeof
(
_ssid
)
-
1
]
=
'\0'
;
log_debug
(
F
(
"
\n\t
[NVS-like] SSID :"
));
log_debug
(
_ssid
);
log_flush
();
}
if
(
WiFi
.
psk
().
length
()
)
{
strncpy
(
_pass
,
WiFi
.
psk
().
c_str
(),
sizeof
(
_pass
));
_pass
[
sizeof
(
_pass
)
-
1
]
=
'\0'
;
log_debug
(
F
(
"
\n\t
[NVS-like] PASS :"
));
log_debug
(
_pass
);
log_flush
();
}
#endif
/*
/*
* finally structure is initialized
* finally structure is initialized
...
@@ -374,6 +402,9 @@ void wifiParametersMgt::_applyDefaults( void ) {
...
@@ -374,6 +402,9 @@ void wifiParametersMgt::_applyDefaults( void ) {
/*
/*
* fill JSON structure with things to save
* fill JSON structure with things to save
* [may.23] save WiFi credentials in NVS area of ESP32 too
* ... this is intended to avoid SPIFFS wrong partitionning
* that will cut access to WiFi credentials !
*/
*/
bool
wifiParametersMgt
::
_saveConfig
(
JsonObject
root
)
{
bool
wifiParametersMgt
::
_saveConfig
(
JsonObject
root
)
{
...
@@ -381,6 +412,26 @@ bool wifiParametersMgt::_saveConfig( JsonObject root ) {
...
@@ -381,6 +412,26 @@ bool wifiParametersMgt::_saveConfig( JsonObject root ) {
if
(
strlen
(
_ssid
)
)
{
if
(
strlen
(
_ssid
)
)
{
root
[
"ssid"
]
=
_ssid
;
root
[
"ssid"
]
=
_ssid
;
root
[
"pass"
]
=
_pass
;
root
[
"pass"
]
=
_pass
;
#ifdef ESP32
// save WiFi credentials to NVS
Preferences
nvs_wifi
;
if
(
nvs_wifi
.
begin
(
WIFI_NVS_NAMESPACE
,
false
)
)
{
// R/W mode
log_debug
(
F
(
"
\n
[wifiParams] save WiFi credentials to NVS namespace '"
));
log_debug
(
WIFI_NVS_NAMESPACE
);
log_debug
(
F
(
"' ... "
));
log_flush
();
if
(
nvs_wifi
.
putBytes
(
WIFI_NVS_SSID_KEY
,
_ssid
,
strlen
(
_ssid
)
+
1
)
!=
strlen
(
_ssid
)
+
1
)
{
log_error
(
F
(
"
\n
[wifiParams] ERROR while saving SSID to NVS ?!?!"
));
log_flush
();
}
if
(
nvs_wifi
.
putBytes
(
WIFI_NVS_PASS_KEY
,
_pass
,
strlen
(
_pass
)
+
1
)
!=
strlen
(
_pass
)
+
1
)
{
log_error
(
F
(
"
\n
[[wifiParams] ERROR while saving PASS to NVS ?!?!"
));
log_flush
();
}
// close NVS namespace
nvs_wifi
.
end
();
}
else
{
log_error
(
F
(
"
\n
[wifiParams] unable to create WiFi credentials namespace in NVS ?!?!"
));
log_flush
();
}
#endif
/* ESP32 */
}
}
else
{
else
{
log_debug
(
F
(
"
\n
[wifiParams] no WIFI credentials to save ..."
));
log_flush
();
log_debug
(
F
(
"
\n
[wifiParams] no WIFI credentials to save ..."
));
log_flush
();
...
...
This diff is collapsed.
Click to expand it.
neosensor/neosensor.ino
+
0
−
11
View file @
41829afc
...
@@ -22,19 +22,8 @@
...
@@ -22,19 +22,8 @@
*
*
* ---
* ---
* TODO:
* TODO:
* - esp8266 now features a configTzTime() in newer API
* - loadSensoConfig --> avoid data duplication, implement an iterator
* - loadSensoConfig --> avoid data duplication, implement an iterator
* - remove DISABLE_SSL compilation flag
* - remove DISABLE_SSL compilation flag
* ---
* ======= SEE 'ChangeLog.txt' for information about updates starting 2023 =========
* F.Thiebolt nov.21 corrected timezone definition for esp32
* F.Thiebolt sep.21 added display module support (e.g oled or 7segment displays)
* F.Thiebolt aug.21 added digital inputs support (e.g PIR sensor)
* added support for shared JSON document for data exchange
* between modules
* F.Thiebolt aug.20 initial port from neOSensor based on ESP8266
* added esp32 adc calibration support
* setupNTP called AFTER network setup
* ----------------------------------------------------------------------------- */
* ----------------------------------------------------------------------------- */
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment