From 842debc2bc1839a621fe9ac3bbae4878b7071e1d Mon Sep 17 00:00:00 2001 From: Spencer Yan Date: Tue, 19 Dec 2023 00:04:34 +0800 Subject: [PATCH] update indicator_lorawan README --- CHANGELOG.md | 20 ++++++ README.md | 1 + components/LoRaWAN/Kconfig.projbuild | 2 +- examples/indicator_lorawan/README.md | 59 +++++++++--------- examples/indicator_lorawan/feature.png | Bin 0 -> 28314 bytes .../main/cmd/indicator_cmd.c | 2 +- 6 files changed, 51 insertions(+), 33 deletions(-) create mode 100644 examples/indicator_lorawan/feature.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 36640ea..e181343 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,11 +11,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +## 2023-12-18 +### Changed +- Update indicator_lorawan demo README + +## 2023-12-15 +### Changed +- File structure to dependent +### Fixed +- LoRaWAN frequency change rebooting + +## 2023-11-23 +### Changed +- Modify sdkconfig.defaults for lvgl,photo,squareline_demo +### Added +- Add Project Share to README + ## 2023-11-17 ### Changed - No longer need patching IDF (thx to Hermit from SqureLine Studio) - Update README to compile with ESP-IDF v5.1.1 +## 2023-10-31 +### Added +- lorawan demo and fix bugs + ## 2023-10-09 ### Fixed - Connection bug in Home Assistant (dc0b8b7). diff --git a/README.md b/README.md index 4912131..1c4f3fe 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ The project includes various examples that demonstrate how to effectively use ES - `lvgl_demos` Demonstrated some demos of lvgl. - `photo_demo` Demonstrates how to display a photo of yourself. - `squareline_demo` Demonstrates how to display the UI file exported by the squareline project. +- `lorawan_demo` Demonstrates how to communicate using lorawan in SenseCAP Indicator. ## Usage diff --git a/components/LoRaWAN/Kconfig.projbuild b/components/LoRaWAN/Kconfig.projbuild index 1fbafef..ee92eb9 100644 --- a/components/LoRaWAN/Kconfig.projbuild +++ b/components/LoRaWAN/Kconfig.projbuild @@ -1,4 +1,4 @@ -menu "LoRWAN" +menu "LoRaWAN" menu "Enable built-in REGION" config REGION_EU868 bool "Enable EU868" diff --git a/examples/indicator_lorawan/README.md b/examples/indicator_lorawan/README.md index 22740f1..62117a5 100644 --- a/examples/indicator_lorawan/README.md +++ b/examples/indicator_lorawan/README.md @@ -1,31 +1,28 @@ -# Indicator Basis Demo - -This demo mainly implements time, sensor data display, and some configuration functions. - -
- - -
- -## Function -- [x] Time display. -- [x] CO2, tVOC, Temperature and Humidity data real-time display. -- [x] CO2, tVOC, Temperature and Humidity history data display. -- [x] Wifi config. -- [x] Display config. -- [x] time config. - - -## How to use example - -Please first read the [User Guide](https://wiki.seeedstudio.com/SenseCAP_Indicator_Get_Started) of the SenseCAP Indicator Board to learn about its software and hardware information. - - -### Build and Flash - -1. The project configure PSRAM with Octal 120M by default. please see [here](../../tools/patch/README.md#idf-patch) to enable `PSRAM Octal 120M` feature. -2. Run `idf.py -p PORT flash monitor` to build, flash and monitor the project. - -(To exit the serial monitor, type ``Ctrl-]``.) - -See the [Getting Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html) for full steps to configure and use ESP-IDF to build projects. +# SenseCAP Indicator LoRaWAN Demo + +## Introduction +The SenseCAP Indicator LoRaWAN Demo, developed for the ESP32 platform, showcases the application of LoRaWAN technology in environmental monitoring. It provides a user-friendly interface for managing LoRaWAN network connections and transmitting sensor data. + +## Usage +![LoRaWAN Screen](./feature.png) +The LoRaWAN screen is the user's gateway to control the device's network connection activities. It automates the connection to the LoRaWAN network and efficiently transmits captured sensor data. + +### Console Commands +To adjust device settings, use the `lorawan` command in the console. This command allows you to set essential parameters like EUI, Join EUI, and App Key, crucial for connecting and authenticating your device with a LoRaWAN network. + + +### Examples +```sh +lorawan --eui --join_eui --app_key +``` +1. **Set EUI**: + ```sh + lorawan --eui 0004A30B001C0530 + ``` + This sets the EUI of your device. + +2. **Set Join EUI and App Key**: + ```sh + lorawan --join_eui 70B3D57ED0007E4A --app_key 8AFE71A145B253E49C3031AD06827777 + ``` + Use this to set the Join EUI and App Key for network authentication. \ No newline at end of file diff --git a/examples/indicator_lorawan/feature.png b/examples/indicator_lorawan/feature.png new file mode 100644 index 0000000000000000000000000000000000000000..984d9a0de6b1b5231b4316eaf535a29f1cd15f47 GIT binary patch literal 28314 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