first commit
This commit is contained in:
commit
5893b00dd2
1669 changed files with 1982740 additions and 0 deletions
|
|
@ -0,0 +1,9 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
/*
|
||||
Example of using only unit component without UnitUnified manager
|
||||
*/
|
||||
#include "main/ComponentOnly.cpp"
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
# M5UnitUnified example
|
||||
## ComponentOnly
|
||||
### Overview
|
||||
This is an example of using only the component of unit without the management mechanism of the unit.
|
||||
The source uses UnitCO2, so if you want to use other units, you will need to modify it accordingly.
|
||||
|
||||
### ArduinoIDE
|
||||
Install each unit's library with the library manager.
|
||||
|
||||
### PlatformIO
|
||||
For convenience of unit testing, the libraries for each unit are registered in lib\_deps.
|
||||
Use the env of the applicable Core device.
|
||||
|
||||
---
|
||||
### 概要
|
||||
ユニットの管理機構を使わず、各ユニットのコンポーネントのみで使用する例です。
|
||||
ソースでは UnitCO2 を使用していますので、他のユニットを使用する場合は適宜変更が必要です。
|
||||
|
||||
### ArduinoIDE
|
||||
各ユニットのライブラリをライブラリマネージャでインストールしてください。
|
||||
|
||||
### PlatformIO
|
||||
ユニットテストの都合上、各ユニット毎のライブラリは lib\_deps に登録されています
|
||||
該当する Core デバイスの env を使用しください。
|
||||
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
/*
|
||||
Example of using only unit component without UnitUnified manager
|
||||
If you use other units, change include files(*1), instances(*2), and get values(*3)
|
||||
*/
|
||||
#include <M5Unified.h>
|
||||
#include <M5UnitUnified.h>
|
||||
#include <M5UnitUnifiedENV.h> // *1 Include the header of the unit to be used
|
||||
|
||||
m5::unit::UnitCO2 unit; // *2 Instance of the unit
|
||||
|
||||
void setup()
|
||||
{
|
||||
M5.begin();
|
||||
|
||||
auto pin_num_sda = M5.getPin(m5::pin_name_t::port_a_sda);
|
||||
auto pin_num_scl = M5.getPin(m5::pin_name_t::port_a_scl);
|
||||
M5_LOGI("getPin: SDA:%u SCL:%u", pin_num_sda, pin_num_scl);
|
||||
Wire.begin(pin_num_sda, pin_num_scl, 400 * 1000U);
|
||||
|
||||
M5.Display.clear(TFT_DARKGREEN);
|
||||
if (!unit.assign(Wire) // Assign Wire
|
||||
|| unit.begin()) { // Begin unit
|
||||
M5_LOGE("Failed to assign/begin");
|
||||
M5.Display.clear(TFT_RED);
|
||||
}
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
M5.update();
|
||||
unit.update(); // Explicitly call unit.update() yourself
|
||||
if (unit.updated()) {
|
||||
// *3 Obtaining unit-specific measurements
|
||||
M5_LOGI("CO2:%u Temp:%f Hum:%f", unit.co2(), unit.temperature(), unit.humidity());
|
||||
}
|
||||
}
|
||||
25
libraries/M5UnitUnified/examples/Basic/SelfUpdate/README.md
Normal file
25
libraries/M5UnitUnified/examples/Basic/SelfUpdate/README.md
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# M5UnitUnified example
|
||||
## SelfUpdate
|
||||
### Overview
|
||||
Here is an example of how to update a unit independently in a separate task.
|
||||
The source uses UnitCO2, so if you want to use other units, you will need to modify it accordingly.
|
||||
|
||||
### ArduinoIDE
|
||||
Install each unit's library with the library manager.
|
||||
|
||||
### PlatformIO
|
||||
For convenience of unit testing, the libraries for each unit are registered in lib\_deps.
|
||||
Use the env of the applicable Core device.
|
||||
|
||||
---
|
||||
### 概要
|
||||
ユニットの更新を別タスクで独自に行う場合の例です。
|
||||
ソースでは UnitCO2 を使用していますので、他のユニットを使用する場合は適宜変更が必要です。
|
||||
|
||||
### ArduinoIDE
|
||||
各ユニットのライブラリをライブラリマネージャでインストールしてください。
|
||||
|
||||
### PlatformIO
|
||||
ユニットテストの都合上、各ユニット毎のライブラリは lib\_deps に登録されています
|
||||
該当する Core デバイスの env を使用しください。
|
||||
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
/*
|
||||
To update the unit yourself usage example
|
||||
*/
|
||||
#include "main/SelfUpdate.cpp"
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
/*
|
||||
To update the unit yourself usage example (UnitCO2)
|
||||
If you use other units, change include files(*1), instances(*2), and get values(*3)
|
||||
*/
|
||||
#include <M5Unified.h>
|
||||
#include <M5UnitUnified.h>
|
||||
#include <M5UnitUnifiedENV.h> // *1 Include the header of the unit to be used
|
||||
m5::unit::UnitUnified Units;
|
||||
m5::unit::UnitCO2 unit; // *2 Instance of the unit
|
||||
|
||||
void update_task(void*)
|
||||
{
|
||||
for (;;) {
|
||||
// If exclusive control is required for access to Wire, insert appropriate controls
|
||||
unit.update(); // Explicitly call unit.update() yourself
|
||||
if (unit.updated()) {
|
||||
// *3 Obtaining unit-specific measurements
|
||||
M5_LOGI("CO2:%u Temp:%f Hum:%f", unit.co2(), unit.temperature(), unit.humidity());
|
||||
}
|
||||
m5::utility::delay(1);
|
||||
}
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
M5.begin();
|
||||
|
||||
auto pin_num_sda = M5.getPin(m5::pin_name_t::port_a_sda);
|
||||
auto pin_num_scl = M5.getPin(m5::pin_name_t::port_a_scl);
|
||||
M5_LOGI("getPin: SDA:%u SCL:%u", pin_num_sda, pin_num_scl);
|
||||
Wire.begin(pin_num_sda, pin_num_scl, 400 * 1000U);
|
||||
|
||||
auto ccfg = unit.component_config();
|
||||
ccfg.self_update = true;
|
||||
unit.component_config(ccfg);
|
||||
|
||||
M5.Display.clear(TFT_DARKGREEN);
|
||||
if (!Units.add(unit, Wire) // Add unit to UnitUnified manager
|
||||
|| !Units.begin()) { // Begin each unit
|
||||
M5_LOGE("Failed to add/begin");
|
||||
M5.Display.clear(TFT_RED);
|
||||
return;
|
||||
}
|
||||
xTaskCreateUniversal(update_task, "update_task", 8192, nullptr, 1, nullptr,
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
PRO_CPU_NUM);
|
||||
#else
|
||||
APP_CPU_NUM);
|
||||
#endif
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
M5.update();
|
||||
Units.update(); // unit.update() is not called within this function
|
||||
M5_LOGI("loop");
|
||||
m5::utility::delay(1000);
|
||||
}
|
||||
24
libraries/M5UnitUnified/examples/Basic/Simple/README.md
Normal file
24
libraries/M5UnitUnified/examples/Basic/Simple/README.md
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
# M5UnitUnified example
|
||||
## Simple
|
||||
### Overview
|
||||
Here is an example of the most standard usage.
|
||||
The source uses UnitCO2, so if you want to use other units, you will need to modify it accordingly.
|
||||
|
||||
### ArduinoIDE
|
||||
Install each unit's library with the library manager.
|
||||
|
||||
### PlatformIO
|
||||
For convenience of unit testing, the libraries for each unit are registered in lib\_deps.
|
||||
Use the env of the applicable Core device.
|
||||
|
||||
---
|
||||
### 概要
|
||||
最もスタンダードな使い方の例です。
|
||||
ソースでは UnitCO2 を使用していますので、他のユニットを使用する場合は適宜変更が必要です。
|
||||
|
||||
### ArduinoIDE
|
||||
各ユニットのライブラリをライブラリマネージャでインストールしてください。
|
||||
|
||||
### PlatformIO
|
||||
ユニットテストの都合上、各ユニット毎のライブラリは lib\_deps に登録されています
|
||||
該当する Core デバイスの env を使用しください。
|
||||
9
libraries/M5UnitUnified/examples/Basic/Simple/Simple.ino
Normal file
9
libraries/M5UnitUnified/examples/Basic/Simple/Simple.ino
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
/*
|
||||
Simple usage example
|
||||
*/
|
||||
#include "main/Simple.cpp"
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
/*
|
||||
Simple usage example (UnitCO2)
|
||||
If you use other units, change include files(*1), instances(*2), and get values(*3)
|
||||
*/
|
||||
#include <M5Unified.h>
|
||||
#include <M5UnitUnified.h>
|
||||
#include <M5UnitUnifiedENV.h> // *1 Include the header of the unit to be used
|
||||
|
||||
m5::unit::UnitUnified Units;
|
||||
m5::unit::UnitCO2 unit; // *2 Instance of the unit
|
||||
|
||||
void setup()
|
||||
{
|
||||
M5.begin();
|
||||
|
||||
auto pin_num_sda = M5.getPin(m5::pin_name_t::port_a_sda);
|
||||
auto pin_num_scl = M5.getPin(m5::pin_name_t::port_a_scl);
|
||||
M5_LOGI("getPin: SDA:%u SCL:%u", pin_num_sda, pin_num_scl);
|
||||
Wire.begin(pin_num_sda, pin_num_scl, 400 * 1000U);
|
||||
|
||||
M5.Display.clear(TFT_DARKGREEN);
|
||||
if (!Units.add(unit, Wire) // Add unit to UnitUnified manager
|
||||
|| !Units.begin()) { // Begin each unit
|
||||
M5_LOGE("Failed to add/begin");
|
||||
M5.Display.clear(TFT_RED);
|
||||
}
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
M5.update();
|
||||
Units.update();
|
||||
if (unit.updated()) {
|
||||
// *3 Obtaining unit-specific measurements
|
||||
M5_LOGI("CO2:%u Temp:%f Hum:%f", unit.co2(), unit.temperature(), unit.humidity());
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue