From 24ca1fa8c0b0f126b2052b9bdb0becfebf5f286e Mon Sep 17 00:00:00 2001 From: TaddyHC Date: Sun, 26 May 2024 15:30:11 -0600 Subject: [PATCH 1/5] Initial commit - 6M device addition --- .../content.md | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md b/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md index 59c38a4591..423b81afd3 100644 --- a/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md +++ b/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md @@ -55,7 +55,7 @@ Below is a visual representation of the intended application: ### Software Requirements - [Arduino IDE 1.8.10+](https://www.arduino.cc/en/software), [Arduino IDE 2.0+](https://www.arduino.cc/en/software), or [Arduino Web Editor](https://create.arduino.cc/editor) -- If you choose an offline Arduino IDE, you must install the following libraries: `ArduinoRS485`, `ArduinoModbus` and `Scheduler`. You can install those libraries via the Library Manager of the Arduino IDE. +- If you choose an offline Arduino IDE, you must install the following libraries: [**ArduinoRS485**](https://github.com/arduino-libraries/ArduinoRS485), [**ArduinoModbus**](https://github.com/arduino-libraries/ArduinoModbus) and Scheduler. You can install those libraries via the Library Manager of the Arduino IDE. Optionally, [**Finder6M**](https://github.com/dndg/Finder6M) library can be installed for use with the **6M.Tx** series energy meters. - For the Wi-Fi® connectivity feature of Opta™, we will use [Arduino Cloud](https://create.arduino.cc/iot/things); you will need to create an account if you still need to create one. - [Opta™ Energy Manager Example Code](assets/energy_management.zip) @@ -63,15 +63,23 @@ Below is a visual representation of the intended application: The electrical connections of the intended application design are shown in the diagram below: -![Electrical connections of the application](assets/electrical_connections.png) +![Electrical connections of the application with the 7M.24 Energy Meter](assets/electrical_connections.png) -The Opta™ system will access real-time consumption details from the energy meter, using the Modbus RTU over the RS-485 interface. Power from the solar panels undergoes multiple processes before it reaches the energy meter. Household appliances can be managed using the Opta™ system's built-in relay functions. It is also worth noting that other power sources can replace the solar panels. +The Opta™ system will access real-time consumption details from the 7M.24 energy meter, using the Modbus RTU over the RS-485 interface. Power from the solar panels undergoes multiple processes before it reaches the energy meter. + +Household appliances can be managed using the Opta™ system's built-in relay functions. It is also worth noting that other power sources can replace the solar panels. + +***The __6M.TA Energy Meter__ can be used instead of the 7M.24 energy meter maintaining similar overall setup shown prviously. For more details, please refer to the tutorial dedicated to __6M.TA Energy Meter__ [here](https://docs.arduino.cc/tutorials/opta/opta-6m-power-analyzer/).*** ## Opta™ Energy Management Model Description The main role of Opta™ is to efficiently handle power, using data from the energy meter linked to the solar panel as its basis. It fetches and processes data from the energy meter, estimating real-time consumption based on the meter's thresholds and the current power output of the solar panel. -For this application, we are using the __7M.24 energy meter__ model from Finder. You can access its datasheet [here](https://cdn.findernet.com/app/uploads/2021/09/20090052/Modbus-7M24-7M38_v2_30062021.pdf). This model communicates via the Modbus RTU on the RS-485 interface. The relay functions of Opta™ will operate the relevant household appliances. To gather data and oversee power allocation, Opta™ carries out the following steps: +For this application, we are using the __7M.24 energy meter__ model from Finder. You can access its datasheet [here](https://cdn.findernet.com/app/uploads/2021/09/20090052/Modbus-7M24-7M38_v2_30062021.pdf). + +***For the __6M.TA Energy Meter__, you can refer to this document containing [communication protocol](https://cdn.findernet.com/app/uploads/Modbus_RS485_6MTx.pdf) information. For more details, please refer to the tutorial dedicated to __6M.TA Energy Meter__ [here](https://docs.arduino.cc/tutorials/opta/opta-6m-power-analyzer/).*** + +The __7M.24 energy meter__ communicates via the Modbus RTU on the RS-485 interface. The relay functions of Opta™ will operate the relevant household appliances. To gather data and oversee power allocation, Opta™ carries out the following steps: - Procure voltage and current readings from the energy meter. - Gather three types of power readings from the energy meter: _Active Power Total - Pt (`W`)_, _Reactive Power Total - Qt (`var`)_, and _Apparent Power Total - St (`VA`)_. @@ -81,7 +89,7 @@ For this application, we are using the __7M.24 energy meter__ model from Finder. While all these processes are handled by Opta™ locally, it is also connected to the Arduino Cloud through Wi-Fi®. This connection allows users to view their energy usage and remotely control connected devices via the Arduino Cloud. -### Opta™ Energy Management Example Code +### Opta™ Energy Management with 7M.24 Example Code The provided code showcases the capabilities of Opta™ as described earlier. It is worth noting that some code functions are generated by the Arduino Cloud during dashboard configuration. For immediate access to the full example, the files can be downloaded [here](assets/energy_management.zip). We will now delve into key code components to break down how the example code works. @@ -615,6 +623,8 @@ The header, automatically generated by Arduino Cloud based on the defined variab The above header is an illustrative example tailored to a demonstration script. This script can either be employed as-is or adjusted to meet different system requirements per your preference. +***If the __6M.TA Energy Meter__ is used instead of the 7M.24 energy meter, please refer to the dedicated tutorial's [Cloud Data Recollection](https://docs.arduino.cc/tutorials/opta/opta-6m-power-analyzer/#cloud-data-recollection) section.*** + ## Connecting Opta™ with Arduino Cloud For integrating Opta™ with the Cloud platform, visit the [Arduino Cloud](https://cloud.arduino.cc/). If you are new to this, our [Getting started with the Arduino Cloud](https://docs.arduino.cc/arduino-cloud/getting-started/iot-cloud-getting-started) tutorial offers a step-by-step guide on beginning your journey with the Arduino Cloud. For a more comprehensive exploration of tutorials, feel free to navigate [the Arduino Cloud](https://docs.arduino.cc/arduino-cloud/) documentation page. From 884c847cec2f37e74c046681e7124ecaa87e28a5 Mon Sep 17 00:00:00 2001 From: TaddyHC Date: Tue, 28 May 2024 17:36:24 -0600 Subject: [PATCH 2/5] Tutorial content update --- .../content.md | 76 ++++++++++++------- 1 file changed, 49 insertions(+), 27 deletions(-) diff --git a/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md b/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md index 423b81afd3..c5f9ac4abf 100644 --- a/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md +++ b/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md @@ -23,13 +23,13 @@ hardware: ## Introduction -The Opta™ can be an irreplaceable support for home energy management. Getting information on instantaneous electrical consumption and interacting with the customer’s consumption plan, daily usage statistics, and seasonal forecasts can help in planning and managing electrical devices to optimize energetical efficiency. Always be connected and informed by integrating the Arduino Cloud, and add self-adjustment capability by monitoring and logging electrical statistics along with the option to operate the connected devices on-demand based on pre-set triggers. +The Opta™ can be an irreplaceable support for home energy management. Getting information on instantaneous electrical consumption and interacting with the customer’s consumption plan, daily usage statistics, and seasonal forecasts can help plan and manage electrical devices to optimize energy efficiency. Always be connected and informed by integrating the Arduino Cloud. Add self-adjustment capability by monitoring and logging electrical statistics and the option to operate the connected devices on-demand based on pre-set triggers. As the industry shifts towards Industry 4.0, also known as the Industrial Internet of Things (IIoT), the focus is on improved energy management and the ability to operate devices on-demand within power grids. This transition promises significant cost savings and enhanced production performance. Opta™ prioritizes security, featuring elements that ensure data integrity, encryption, and secure certificate storage. This makes it a suitable IoT node for creating a private and secure IIoT network. ## Goals -This application note shows an example of an energy management system, leveraging Opta™ and Arduino Cloud capabilities to perform the following operations: +This application note shows an example of an energy management system leveraging Opta™ and Arduino Cloud capabilities to perform the following operations: - Allow Opta™ to receive and process remote actuation commands from the Arduino Cloud - Enable Opta™ to control devices based on the user's energy consumption patterns and the energy available from solar panels or any other power sources @@ -55,7 +55,7 @@ Below is a visual representation of the intended application: ### Software Requirements - [Arduino IDE 1.8.10+](https://www.arduino.cc/en/software), [Arduino IDE 2.0+](https://www.arduino.cc/en/software), or [Arduino Web Editor](https://create.arduino.cc/editor) -- If you choose an offline Arduino IDE, you must install the following libraries: [**ArduinoRS485**](https://github.com/arduino-libraries/ArduinoRS485), [**ArduinoModbus**](https://github.com/arduino-libraries/ArduinoModbus) and Scheduler. You can install those libraries via the Library Manager of the Arduino IDE. Optionally, [**Finder6M**](https://github.com/dndg/Finder6M) library can be installed for use with the **6M.Tx** series energy meters. +- If you choose an offline Arduino IDE, you must install the following libraries: [**ArduinoRS485**](https://github.com/arduino-libraries/ArduinoRS485), [**ArduinoModbus**](https://github.com/arduino-libraries/ArduinoModbus) and Scheduler. You can install those libraries via the Library Manager of the Arduino IDE. Optionally, the [**Finder6M**](https://github.com/dndg/Finder6M) library can be installed with the **6M.Tx** series energy meters. - For the Wi-Fi® connectivity feature of Opta™, we will use [Arduino Cloud](https://create.arduino.cc/iot/things); you will need to create an account if you still need to create one. - [Opta™ Energy Manager Example Code](assets/energy_management.zip) @@ -65,11 +65,11 @@ The electrical connections of the intended application design are shown in the d ![Electrical connections of the application with the 7M.24 Energy Meter](assets/electrical_connections.png) -The Opta™ system will access real-time consumption details from the 7M.24 energy meter, using the Modbus RTU over the RS-485 interface. Power from the solar panels undergoes multiple processes before it reaches the energy meter. +The Opta™ system will access real-time consumption details from the 7M.24 energy meter using the Modbus RTU over the RS-485 interface. Power from the solar panels undergoes multiple processes before it reaches the energy meter. Household appliances can be managed using the Opta™ system's built-in relay functions. It is also worth noting that other power sources can replace the solar panels. -***The __6M.TA Energy Meter__ can be used instead of the 7M.24 energy meter maintaining similar overall setup shown prviously. For more details, please refer to the tutorial dedicated to __6M.TA Energy Meter__ [here](https://docs.arduino.cc/tutorials/opta/opta-6m-power-analyzer/).*** +***The __6M.TA Energy Meter__ can be used instead of the 7M.24 energy meter, maintaining a similar overall setup as previously shown. For more details, please refer to the tutorial dedicated to __6M.TA Energy Meter__ [here](https://docs.arduino.cc/tutorials/opta/opta-6m-power-analyzer/).*** ## Opta™ Energy Management Model Description @@ -77,7 +77,7 @@ The main role of Opta™ is to efficiently handle power, using data from the ene For this application, we are using the __7M.24 energy meter__ model from Finder. You can access its datasheet [here](https://cdn.findernet.com/app/uploads/2021/09/20090052/Modbus-7M24-7M38_v2_30062021.pdf). -***For the __6M.TA Energy Meter__, you can refer to this document containing [communication protocol](https://cdn.findernet.com/app/uploads/Modbus_RS485_6MTx.pdf) information. For more details, please refer to the tutorial dedicated to __6M.TA Energy Meter__ [here](https://docs.arduino.cc/tutorials/opta/opta-6m-power-analyzer/).*** +***For the __6M.TA Energy Meter__, refer to this document containing [communication protocol](https://cdn.findernet.com/app/uploads/Modbus_RS485_6MTx.pdf) information. For more details, please refer to the tutorial dedicated to __6M.TA Energy Meter__ [here](https://docs.arduino.cc/tutorials/opta/opta-6m-power-analyzer/).*** The __7M.24 energy meter__ communicates via the Modbus RTU on the RS-485 interface. The relay functions of Opta™ will operate the relevant household appliances. To gather data and oversee power allocation, Opta™ carries out the following steps: @@ -85,15 +85,15 @@ The __7M.24 energy meter__ communicates via the Modbus RTU on the RS-485 interfa - Gather three types of power readings from the energy meter: _Active Power Total - Pt (`W`)_, _Reactive Power Total - Qt (`var`)_, and _Apparent Power Total - St (`VA`)_. - Organize the collected data on Voltage, Current, and Power (Active, Reactive, and Apparent) into various categories to represent the _Actual_, _Average_, _Maximum_, and _Minimum_ values of each. - Access the Energy Counter figures in _`Wh`_ and _`varh`_ units. -- Distribute power optimally to regulate selected household appliances, based to the user's energy profile. +- Distribute power optimally to regulate selected household appliances based on the user's energy profile. -While all these processes are handled by Opta™ locally, it is also connected to the Arduino Cloud through Wi-Fi®. This connection allows users to view their energy usage and remotely control connected devices via the Arduino Cloud. +While all these processes are handled by Opta™ locally, it is also connected to the Arduino Cloud through Wi-Fi®. This connection lets users view their energy usage and remotely control connected devices via the Arduino Cloud. ### Opta™ Energy Management with 7M.24 Example Code -The provided code showcases the capabilities of Opta™ as described earlier. It is worth noting that some code functions are generated by the Arduino Cloud during dashboard configuration. For immediate access to the full example, the files can be downloaded [here](assets/energy_management.zip). We will now delve into key code components to break down how the example code works. +The provided code showcases the capabilities of Opta™ as described earlier. It is worth noting that the Arduino Cloud generates some code functions during dashboard configuration. The files can be downloaded [here](assets/energy_management.zip) for immediate access to the full example. We will dive into key code components to explain how the example code works. -The code requires the inclusion of specific headers. These headers enable the RS-485 interface, the Modbus RTU protocol, the Arduino Cloud connection, and the scheduler. The scheduler oversees data exchange through the RS-485 interface using the Modbus RTU protocol. Moreover, it includes the parameters essential for stable communication, adhering to Modbus RTU standards. +The code requires the inclusion of specific headers. These headers enable the RS-485 interface, the Modbus RTU protocol, the Arduino Cloud connection, and the scheduler. The scheduler oversees data exchange through the RS-485 interface using the Modbus RTU protocol. Moreover, it includes the parameters essential for stable communication and adhering to Modbus RTU standards. ```arduino #include "stm32h7xx_ll_gpio.h" @@ -153,27 +153,27 @@ constexpr auto preDelayBR { bitduration * 9.6f * 3.5f * 1e6 }; constexpr auto postDelayBR { bitduration * 9.6f * 3.5f * 1e6 }; ``` -It is vital to configure the user parameters correctly to ensure appropriate system operation. Such parameters are: +Configuring the user parameters correctly is vital to ensure appropriate system operation. Such parameters are: - `operation_safety_margin`: This is the safety margin multiplier factor. It is expressed in decimal format. For instance, to have a 20% safety buffer, the input should resemble `1.2`. -- `estimated_max_power`: It is the anticipated maximum power (measured in Watts) under which the network will operate. It serves to set a benchmark average power based on user input, which is then compared to the energy meter reading. This helps verify if the network is running in line with the desired electrical attributes set by the user. +- `estimated_max_power`: The anticipated maximum power (measured in Watts) under which the network will operate. It sets a benchmark average power based on user input and then compares it to the energy meter reading. This helps verify if the network is running in line with the desired electrical attributes set by the user. -- `estimated_max_energy`: Similar to `estimated_max_power`, this parameter marks the forecasted maximum active energy limit (in Wh) for the network. Its role is to ensure that the network remains stable in delivering consistent power to the connected devices. +- `estimated_max_energy`: Similar to `estimated_max_power`, this parameter marks the network's forecasted maximum active energy limit (in Wh). Its role is to ensure the network remains stable, delivering consistent power to the connected devices. - `Device_X_Limiter`: This sets the maximum limit for a chosen parameter for devices 1 & 2. Its definition should align with that of the `Device_X_CompRef`. -- `Device_X_CompRef`: It is the reference value obtained from energy meter used to determine whether the device, considering priority parameter type, can be activated for accurate system operation. +- `Device_X_CompRef`: It is the reference value obtained from the energy meter used to determine whether the device, considering priority parameter type, can be activated for accurate system operation. ***For a deeper understanding of implementing Modbus RTU with Opta™, consider the tutorial [Getting Started with Modbus RTU on Opta™](https://docs.arduino.cc/tutorials/opta/getting-started-with-modbus-rtu).*** -The method `relay_Trigger()` performs a straightforward comparison between a `desired target` and a `required target`. Based on this comparison, it outputs a signal to activate a relay. It will also help the user know if the system is at stable capacity or having possible electrical disturbances that may cause unstable operation. +The method `relay_Trigger()` compares a `desired target` and a `required target`. Based on this comparison, it outputs a signal to activate a relay. It will also help the user know if the system is at stable capacity or has possible electrical disturbances that may cause unstable operation. The user specifies the `desired target` value, which indicates the optimal threshold limit for the relay's activation to maintain stable operation. On the other hand, the `required target` signifies the current power or other relevant electrical parameter reading introduced as an argument from the user. It works as a two-flag condition, using the safety margin percentile to ensure electrical headroom is available without putting undue strain on the system. An example metric obtained from the energy meter for this purpose is `W_actual`, which represents the real-time total active power at the time of inquiry. -The `user_profile.uV_code` defines the operational buffer in terms of percentage. This is the safety margin multiplier factor derived from the user's profile. For instance, setting the margin at 10% as `1.1` within the `consumption_profile()` method offers a safety overhead headroom. This method's parameters come preset but can be adjusted later via the Arduino Cloud dashboard. +The `user_profile.uV_code` defines the operational buffer in percentage. This is the safety margin multiplier factor derived from the user's profile. For instance, setting the margin at 10% as `1.1` within the `consumption_profile()` method offers a safety overhead headroom. This method's parameters come preset but can be adjusted later via the Arduino Cloud dashboard. The `relayTarget` defines the output port prompted under certain activation conditions. @@ -222,11 +222,11 @@ The function `energy_distro_ctrl()` uses energy meter data and user inputs from This ensures that devices operate when energy consumption is within a range that is 10% below the maximum safe operation level. The `handleDevice()` function streamlines parameter adjustments and troubleshooting for each device state, facilitating desired relay activation. -If the average power demand surpasses the predefined user profile threshold, the system will send an alert to the user. This application note takes into account specific data from the devices used, serving as a proof of concept for this scenario. +The system will alert the user if the average power demand surpasses the predefined user profile threshold. This application note considers specific data from the devices used, serving as a proof of concept for this scenario. The `Device #1` is configured for low-power devices that need a consistent current or the existing power to switch on securely. Users also have the option to control it remotely. -The `Device #2` caters to devices with higher power demands. It will begin its operations if the current or average power available meets the specified power requirement. +The `Device #2` caters to devices with higher power demands. It will begin operations if the current or average power available meets the specified power requirement. ```arduino /** @@ -301,7 +301,7 @@ The information will be categorized, if applicable, as: - `actual`: Represents the captured real-time data. - `average`: Represents the mean data value over the operation duration. - `maximum`: Represents the peak data value observed during active operation. -- `minimum`: Represents the lowest data value detected throughout active operation. +- `minimum`: Represents the lowest data value detected throughout the active operation. ```arduino /** @@ -366,7 +366,7 @@ void RTU_Setup(){ The provided functions are designed for data retrieval from a target device via the Modbus RTU protocol. Each function is designed to fetch specific data types from the device using distinct register addresses. -By indicating the device and the register address, these functions simplify the process of accessing data from devices that communicate through Modbus RTU. We will employ these functions to extract data from the 7M.24 energy meter. +By indicating the device and the register address, these functions simplify accessing data from devices communicating through Modbus RTU. We will employ these functions to extract data from the 7M.24 energy meter. ```arduino /** @@ -452,9 +452,9 @@ These functions aim to fetch and handle data types `T5`, `T6`, `T2`, and `T_floa - `T2`: 16-bit Signed Value - `T_float`: 32-bit IEEE754 Floating-Point Single Precision Value -***For incorporating or using 7M.24 energy meter parameters with different data types, refer to the Modbus Data Types section on page 19 of the [7M.24 Modbus protocol sheet](https://cdn.findernet.com/app/uploads/2021/09/20090052/Modbus-7M24-7M38_v2_30062021.pdf).*** +***To incorporate or use 7M.24 energy meter parameters with different data types, refer to the Modbus Data Types section on page 19 of the [__7M.24 Modbus protocol sheet__](https://cdn.findernet.com/app/uploads/2021/09/20090052/Modbus-7M24-7M38_v2_30062021.pdf).*** -The `iot_cloud_setup()` function serves as the connection bridge between the Arduino Cloud and Opta™. By grouping the processes into one task, the code is streamlined and easier to maintain. +The `iot_cloud_setup()` function serves as the connection bridge between the Arduino Cloud and Opta™. The code is streamlined and easier to maintain by grouping the processes into a single task. ```arduino /** @@ -516,9 +516,9 @@ void setup() { } ``` -The Opta™ will have the main `loop()` to prioritize tasks to communicate with Arduino Cloud and local processes. It will have the job of managing profile data and energy distribution control logic with Arduino Cloud instance updates. While the `modbus_line()` will focus on handling Modbus RTU protocol-based communication over the RS-485 interface. +The Opta™ will have the main `loop()` to prioritize tasks to communicate with Arduino Cloud and local processes. It will manage profile data and energy distribution control logic with Arduino Cloud instance updates. While the `modbus_line()` will focus on handling Modbus RTU protocol-based communication over the RS-485 interface. -The `modbus_com_monitor()` serves to display all the essential electrical information obtained via 7M.24 energy meter, +The `modbus_com_monitor()` displays all the essential electrical information obtained via the 7M.24 energy meter. ```arduino void loop() { @@ -635,7 +635,7 @@ Once set up, you will have the opportunity to design an interface resembling the ## Complete Opta™ Energy Management Sketch -Access the complete sketch used in the design of energy management for Opta™ in conjunction with the Arduino Cloud [here](assets/energy_management.zip). The compressed file can be imported directly to Arduino Cloud Web Editor for your convenience. +Access the complete sketch used in the energy management design for Opta™ in conjunction with the Arduino Cloud [here](assets/energy_management.zip). The compressed file can be imported directly to Arduino Cloud Web Editor for your convenience. ## Conclusion @@ -643,8 +643,30 @@ You have built an Opta™ energy manager adept at monitoring an electrical syste Opta™ can help manage the energetical balance in industrial environments: in this example, we have considered a scenario where machines can be operated opportunistically, based on power availability, over a 24/7 span, to improve the overall power efficiency. -With a few tweaks, such as integrating different types of power sources, setting varied conditions for machinery operations, and adjusting power-related parameters, this project can be adapted. This flexibility allows for the creation of tailored solutions, addressing numerous scenarios and optimizing energy distribution effectively. +This project can be adapted with a few tweaks, such as integrating different types of power sources, setting varied conditions for machinery operations, and adjusting power-related parameters. This flexibility allows for customized solutions, effectively addressing numerous scenarios and optimizing energy distribution. ## Next Steps -Setting up an energy management system, whether at home or in a industrial setting, can greatly minimize unneeded power usage. Delve into the potential of energy management harnessing the Arduino Cloud to develop a more energy-conscious environment. \ No newline at end of file +Setting up an energy management system at home or in an industrial setting can greatly minimize unneeded power usage. Delve into the potential of energy management by harnessing the Arduino Cloud to develop a more energy-conscious environment. + +## Support + +If you encounter any issues or have questions while working with Opta™ devices, we provide various support resources to help you find answers and solutions. + +### Help Center + +Explore our Help Center, which offers a comprehensive collection of articles and guides for Opta™ devices. The Help Center is designed to provide in-depth technical assistance and help you make the most of your device. + +- [Opta™ help center page](https://support.arduino.cc/hc/en-us/categories/360001637274-Hardware-Support) + +### Forum + +Join our community forum to connect with other Opta™ devices users, share your experiences, and ask questions. The Forum is an excellent place to learn from others, discuss issues, and discover new ideas and projects related to Opta™. + +- [Opta™ category in the Arduino Forum](https://forum.arduino.cc/c/hardware/opta/179) + +### Contact Us + +Please get in touch with our support team if you need personalized assistance or have questions not covered by the help and support resources described before. We're happy to help you with any issues or inquiries about Opta™ devices. + +- [Contact us page](https://www.arduino.cc/en/contact-us/) \ No newline at end of file From eb451434e1bfccc00f3428b74890d5a1b5eb4849 Mon Sep 17 00:00:00 2001 From: TaddyHC Date: Tue, 28 May 2024 18:26:10 -0600 Subject: [PATCH 3/5] Tutorial content minor update --- .../tutorials/13.energy-management-application-note/content.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md b/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md index c5f9ac4abf..5f19aacc0d 100644 --- a/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md +++ b/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md @@ -51,6 +51,7 @@ Below is a visual representation of the intended application: - RS-485 connection wire as recommended by the standard specification (x3): - STP/UTP 24-18AWG (Unterminated) 100-130 Ω rated - STP/UTP 22-16AWG (Terminated) 100-130 Ω rated +- Power cables for supply and load: Wires with a cross-sectional area ranging from 13.3 mm² to 21.2 mm², corresponding to AWG sizes 6 to 4. ### Software Requirements @@ -65,6 +66,8 @@ The electrical connections of the intended application design are shown in the d ![Electrical connections of the application with the 7M.24 Energy Meter](assets/electrical_connections.png) +***To address the power demands and ensure reliable connections with the load, using cables that comply with appropriate electrical standards, such as ASTM B 258 standard, and can support up to __50 A__ of current is advisable. __Cables with a cross-sectional area ranging from 13.3 mm² to 21.2 mm², roughly equivalent to AWG 6-4, should be sufficient for 50 A of current.__*** + The Opta™ system will access real-time consumption details from the 7M.24 energy meter using the Modbus RTU over the RS-485 interface. Power from the solar panels undergoes multiple processes before it reaches the energy meter. Household appliances can be managed using the Opta™ system's built-in relay functions. It is also worth noting that other power sources can replace the solar panels. From a0f5d15e012f66da6833045c32cc1010c642e55c Mon Sep 17 00:00:00 2001 From: TaddyHC Date: Wed, 5 Jun 2024 18:02:50 -0600 Subject: [PATCH 4/5] App note content update --- .../arduino_iot_cloud_dashboard_intro.png | Bin 0 -> 52598 bytes .../assets/opta-core.png | Bin 0 -> 98111 bytes .../content.md | 47 +++++++++++++++++- 3 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/assets/arduino_iot_cloud_dashboard_intro.png create mode 100644 content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/assets/opta-core.png diff --git a/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/assets/arduino_iot_cloud_dashboard_intro.png b/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/assets/arduino_iot_cloud_dashboard_intro.png new file mode 100644 index 0000000000000000000000000000000000000000..04fbf77d40030f50724bfffbb89d018f37decfe6 GIT binary patch literal 52598 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 R)72~Bk`j{#SBe;X{a*#)is1kN literal 0 HcmV?d00001 diff --git a/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/assets/opta-core.png b/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/assets/opta-core.png new file mode 100644 index 0000000000000000000000000000000000000000..3c0d9acd517c3f721b11c6a7b881fec265159e76 GIT binary patch literal 98111 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 literal 0 HcmV?d00001 diff --git a/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md b/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md index 5f19aacc0d..3e6b5d38be 100644 --- a/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md +++ b/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md @@ -23,9 +23,11 @@ hardware: ## Introduction -The Opta™ can be an irreplaceable support for home energy management. Getting information on instantaneous electrical consumption and interacting with the customer’s consumption plan, daily usage statistics, and seasonal forecasts can help plan and manage electrical devices to optimize energy efficiency. Always be connected and informed by integrating the Arduino Cloud. Add self-adjustment capability by monitoring and logging electrical statistics and the option to operate the connected devices on-demand based on pre-set triggers. +The Opta™ can be an irreplaceable support for home energy management, offering real-time consumption data, interaction with usage plans and forecasts, and optimization of energy efficiency. It integrates with the Arduino Cloud and features self-adjustment and on-demand device operation. -As the industry shifts towards Industry 4.0, also known as the Industrial Internet of Things (IIoT), the focus is on improved energy management and the ability to operate devices on-demand within power grids. This transition promises significant cost savings and enhanced production performance. Opta™ prioritizes security, featuring elements that ensure data integrity, encryption, and secure certificate storage. This makes it a suitable IoT node for creating a private and secure IIoT network. +![Opta™ Energy Management Interactive Dashboard on Arduino Cloud Preview](assets/arduino_iot_cloud_dashboard_intro.png) + +Embracing Industry 4.0 (IIoT), Opta™ focuses on energy management, device operation, cost savings, and performance improvements. Its security features ensure data integrity, encryption, and secure certificate storage, making it ideal for secure IIoT networks. ## Goals @@ -60,6 +62,47 @@ Below is a visual representation of the intended application: - For the Wi-Fi® connectivity feature of Opta™, we will use [Arduino Cloud](https://create.arduino.cc/iot/things); you will need to create an account if you still need to create one. - [Opta™ Energy Manager Example Code](assets/energy_management.zip) +## Pre-Requisite Setup + +### Setting Up the Arduino IDE + +For this application note, ensure you have the latest version of the Arduino IDE, which is available for download [here](https://www.arduino.cc/en/software). Within the Arduino IDE, you need to install the **`Arduino Mbed OS Opta Boards`** core for Opta™ devices. + +To install this core, go to **Tools > Board > Boards Manager** or click the **Boards Manager** icon on the left side of the IDE. + +In the Boards Manager, search for `opta` and install the latest version of the `Arduino Mbed OS Opta Boards` core. + +![Installing the Opta™ core in the Arduino IDE](assets/opta-core.png) + +### Installing the Required Libraries + +Install the latest versions of the following libraries: + +- [**ArduinoModbus**](https://github.com/arduino-libraries/ArduinoModbus) +- [**ArduinoRS485**](https://github.com/arduino-libraries/ArduinoRS485) + +These libraries are necessary for Modbus RTU and RS-485 communication. You can easily install them through the Library Manager in the Arduino IDE. + +The Library Manager can be accessed using the **"Ctrl + Shift + I"** shortcut or by going to **Tools > Manage Libraries...**, navigating the Arduino IDE's left panel, and selecting the third option from the top. + +***If you are using the Arduino Cloud Web Editor, manual installation of these libraries is not required.*** + +## Power Analyzer & Modbus RTU + +A **power analyzer** or **energy meter** measures and analyzes electrical parameters in power systems, which is essential for monitoring energy efficiency, checking network performance, and diagnosing issues. By providing insights into voltage, current, power factor, and energy consumption, these devices help optimize load operation and reduce energy costs. + +The **6M.Tx** series includes three single-phase power monitors for AC and DC systems, handling AC frequencies from 1 to 400 Hz and nominal currents from 50 to 300 A (up to 400 A for DC). They measure parameters like peak voltage (`Vpk`), peak current (`Ipk`), and Total Harmonic Distortion (`THD(U)`), which are important for assessing power quality. Data is accessible via Modbus RTU over RS-485, using 16-bit registers. + +The **7M.24** series is a single-phase bi-directional energy meter designed to monitor domestic and industrial energy consumption in settings such as offices, campsites, and photovoltaic systems. This series supports single-phase 230 V AC at 50/60 Hz and currents up to 40 A with a reference current of 5 A. + +It features a backlit LCD that shows real-time values like voltage (`V`), current (`I`), power factor (`PF`), frequency (`Hz`), total harmonic distortion (`THD V` and `THD I`), and power flow direction. Energy measurement includes total or partial consumption in `kWh`, `kVAh`, and `kvarh`, with 2 MID-certified active energy counters, two reactive energy counters, and eight resettable counters for various energy metrics. + +The series provides real-time data logging and advanced diagnostics with a run-time counter for preventive maintenance activities. It includes an integrated Modbus RS485 interface for easy data integration into larger systems. The series boasts active energy accuracy **Class B** according to **EN 50470-3 (MID)** and reactive energy accuracy **Class 2** according to **EN 62053-23**. + +For both series, measurements are available as 16-bit reads, with energy measurements as 32-bit values from two adjacent 16-bit registers. Note that all offsets are register offsets, not byte offsets, with Modbus addressing starting from 0. + +***For more details on the Modbus protocol, refer to the [__Arduino® & Modbus Protocol__](https://docs.arduino.cc/learn/communication/modbus/) tutorial and the [__ArduinoModbus__](https://github.com/arduino-libraries/ArduinoModbus) library. For practical implementation of Modbus RTU on Opta™, see the [__Getting Started with Modbus RTU on Opta™__](https://docs.arduino.cc/tutorials/opta/getting-started-with-modbus-rtu/) tutorial.*** + ## Hardware Setup Overview The electrical connections of the intended application design are shown in the diagram below: From 6bfc7c76db8118736da9047d8233c2eaf428d79a Mon Sep 17 00:00:00 2001 From: TaddyHC Date: Sun, 9 Jun 2024 14:17:58 -0600 Subject: [PATCH 5/5] Tutorial content update --- .../content.md | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md b/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md index 3e6b5d38be..845adf86bb 100644 --- a/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md +++ b/content/hardware/07.opta/opta-family/opta/tutorials/13.energy-management-application-note/content.md @@ -1,6 +1,6 @@ --- title: 'Energy Management with Opta™' -description: "This application note describes how to implement Opta™ for a domestic energy management system." +description: "This application note explains how to use Opta™ for managing energy consumption in a domestic environment." difficulty: intermediate tags: - Energy @@ -48,7 +48,7 @@ Below is a visual representation of the intended application: - Opta™ PLC with RS-485 support: [Opta™ RS485](https://store.arduino.cc/products/opta-rs485), or [Opta™ WiFi](https://store.arduino.cc/products/opta-wifi) (x1) - [USB-C® cable](https://store.arduino.cc/products/usb-cable2in1-type-c) (x1) - 7M.24 Energy meter (x1) -- Solar panel with respective system (Controller, battery, and inverter) or similar power system +- Power source: e.g., solar panels with their respective system (controller, battery, and inverter) - Domestic appliances or devices of interest - RS-485 connection wire as recommended by the standard specification (x3): - STP/UTP 24-18AWG (Unterminated) 100-130 Ω rated @@ -66,7 +66,7 @@ Below is a visual representation of the intended application: ### Setting Up the Arduino IDE -For this application note, ensure you have the latest version of the Arduino IDE, which is available for download [here](https://www.arduino.cc/en/software). Within the Arduino IDE, you need to install the **`Arduino Mbed OS Opta Boards`** core for Opta™ devices. +For this application note, ensure you have the latest version of the Arduino IDE, available for download [here](https://www.arduino.cc/en/software). Within the Arduino IDE, you need to install the **`Arduino Mbed OS Opta Boards`** core for Opta™ devices. To install this core, go to **Tools > Board > Boards Manager** or click the **Boards Manager** icon on the left side of the IDE. @@ -89,7 +89,7 @@ The Library Manager can be accessed using the **"Ctrl + Shift + I"** shortcut or ## Power Analyzer & Modbus RTU -A **power analyzer** or **energy meter** measures and analyzes electrical parameters in power systems, which is essential for monitoring energy efficiency, checking network performance, and diagnosing issues. By providing insights into voltage, current, power factor, and energy consumption, these devices help optimize load operation and reduce energy costs. +A **power analyzer** or **energy meter** measures and analyzes electrical parameters in power systems, essential for monitoring energy efficiency, checking network performance, and diagnosing issues. By providing insights into voltage, current, power factor, and energy consumption, these devices help optimize load operation and reduce energy costs. The **6M.Tx** series includes three single-phase power monitors for AC and DC systems, handling AC frequencies from 1 to 400 Hz and nominal currents from 50 to 300 A (up to 400 A for DC). They measure parameters like peak voltage (`Vpk`), peak current (`Ipk`), and Total Harmonic Distortion (`THD(U)`), which are important for assessing power quality. Data is accessible via Modbus RTU over RS-485, using 16-bit registers. @@ -99,19 +99,19 @@ It features a backlit LCD that shows real-time values like voltage (`V`), curren The series provides real-time data logging and advanced diagnostics with a run-time counter for preventive maintenance activities. It includes an integrated Modbus RS485 interface for easy data integration into larger systems. The series boasts active energy accuracy **Class B** according to **EN 50470-3 (MID)** and reactive energy accuracy **Class 2** according to **EN 62053-23**. -For both series, measurements are available as 16-bit reads, with energy measurements as 32-bit values from two adjacent 16-bit registers. Note that all offsets are register offsets, not byte offsets, with Modbus addressing starting from 0. +For both series, measurements are available as 16-bit reads, with energy measurements as 32-bit values from two adjacent 16-bit registers. **Note that all offsets are register offsets, not byte offsets, with Modbus addressing starting from 0**. ***For more details on the Modbus protocol, refer to the [__Arduino® & Modbus Protocol__](https://docs.arduino.cc/learn/communication/modbus/) tutorial and the [__ArduinoModbus__](https://github.com/arduino-libraries/ArduinoModbus) library. For practical implementation of Modbus RTU on Opta™, see the [__Getting Started with Modbus RTU on Opta™__](https://docs.arduino.cc/tutorials/opta/getting-started-with-modbus-rtu/) tutorial.*** ## Hardware Setup Overview -The electrical connections of the intended application design are shown in the diagram below: +This application note is focused on using the 7M.24 energy meter. The electrical connections for the intended application design are shown in the diagram below: ![Electrical connections of the application with the 7M.24 Energy Meter](assets/electrical_connections.png) -***To address the power demands and ensure reliable connections with the load, using cables that comply with appropriate electrical standards, such as ASTM B 258 standard, and can support up to __50 A__ of current is advisable. __Cables with a cross-sectional area ranging from 13.3 mm² to 21.2 mm², roughly equivalent to AWG 6-4, should be sufficient for 50 A of current.__*** +***To meet the power demands and ensure reliable connections with the load, using cables that comply with appropriate electrical standards, such as ASTM B 258 standard, and can support up to __50 A__ of current is advisable. __Cables with a cross-sectional area ranging from 13.3 mm² to 21.2 mm², roughly equivalent to AWG 6-4, should be sufficient for 50 A of current.__*** -The Opta™ system will access real-time consumption details from the 7M.24 energy meter using the Modbus RTU over the RS-485 interface. Power from the solar panels undergoes multiple processes before it reaches the energy meter. +The Opta™ system will access real-time consumption details from the 7M.24 energy meter using Modbus RTU over the RS-485 interface. Power from the solar panels undergoes multiple processes before it reaches the energy meter. Household appliances can be managed using the Opta™ system's built-in relay functions. It is also worth noting that other power sources can replace the solar panels. @@ -119,13 +119,13 @@ Household appliances can be managed using the Opta™ system's built-in relay fu ## Opta™ Energy Management Model Description -The main role of Opta™ is to efficiently handle power, using data from the energy meter linked to the solar panel as its basis. It fetches and processes data from the energy meter, estimating real-time consumption based on the meter's thresholds and the current power output of the solar panel. +The main role of Opta™ is to manage power distribution as efficiently as possible, using data from the energy meter connected to the solar panel as its basis. It fetches and processes data from the energy meter, estimating real-time consumption based on the meter's thresholds and the current power supply of the solar panel. For this application, we are using the __7M.24 energy meter__ model from Finder. You can access its datasheet [here](https://cdn.findernet.com/app/uploads/2021/09/20090052/Modbus-7M24-7M38_v2_30062021.pdf). ***For the __6M.TA Energy Meter__, refer to this document containing [communication protocol](https://cdn.findernet.com/app/uploads/Modbus_RS485_6MTx.pdf) information. For more details, please refer to the tutorial dedicated to __6M.TA Energy Meter__ [here](https://docs.arduino.cc/tutorials/opta/opta-6m-power-analyzer/).*** -The __7M.24 energy meter__ communicates via the Modbus RTU on the RS-485 interface. The relay functions of Opta™ will operate the relevant household appliances. To gather data and oversee power allocation, Opta™ carries out the following steps: +The __7M.24 energy meter__ communicates via the Modbus RTU on the RS-485 interface. The relay functions of Opta™ will control the relevant household appliances. To gather data and oversee power allocation, Opta™ carries out the following steps: - Procure voltage and current readings from the energy meter. - Gather three types of power readings from the energy meter: _Active Power Total - Pt (`W`)_, _Reactive Power Total - Qt (`var`)_, and _Apparent Power Total - St (`VA`)_. @@ -133,11 +133,11 @@ The __7M.24 energy meter__ communicates via the Modbus RTU on the RS-485 interfa - Access the Energy Counter figures in _`Wh`_ and _`varh`_ units. - Distribute power optimally to regulate selected household appliances based on the user's energy profile. -While all these processes are handled by Opta™ locally, it is also connected to the Arduino Cloud through Wi-Fi®. This connection lets users view their energy usage and remotely control connected devices via the Arduino Cloud. +While all these processes are managed by Opta™ locally, it is also connected to the Arduino Cloud through Wi-Fi®. This connection lets users view their energy usage and remotely control connected devices via the Arduino Cloud. ### Opta™ Energy Management with 7M.24 Example Code -The provided code showcases the capabilities of Opta™ as described earlier. It is worth noting that the Arduino Cloud generates some code functions during dashboard configuration. The files can be downloaded [here](assets/energy_management.zip) for immediate access to the full example. We will dive into key code components to explain how the example code works. +The provided code showcases the capabilities of Opta™ as described earlier. It is worth noting that the Arduino Cloud generates some code functions during dashboard configuration. The files can be downloaded [here](assets/energy_management.zip) to access the complete example immediately. We will dive into key code components to explain how the example code works. The code requires the inclusion of specific headers. These headers enable the RS-485 interface, the Modbus RTU protocol, the Arduino Cloud connection, and the scheduler. The scheduler oversees data exchange through the RS-485 interface using the Modbus RTU protocol. Moreover, it includes the parameters essential for stable communication and adhering to Modbus RTU standards. @@ -199,13 +199,13 @@ constexpr auto preDelayBR { bitduration * 9.6f * 3.5f * 1e6 }; constexpr auto postDelayBR { bitduration * 9.6f * 3.5f * 1e6 }; ``` -Configuring the user parameters correctly is vital to ensure appropriate system operation. Such parameters are: +Configuring the user parameters correctly is important to ensure appropriate system operation. Such parameters are: -- `operation_safety_margin`: This is the safety margin multiplier factor. It is expressed in decimal format. For instance, to have a 20% safety buffer, the input should resemble `1.2`. +- `operation_safety_margin`: This is the safety margin multiplier factor. It is expressed in decimal format. For instance, to have a 20% safety buffer, the input should be `1.2`. - `estimated_max_power`: The anticipated maximum power (measured in Watts) under which the network will operate. It sets a benchmark average power based on user input and then compares it to the energy meter reading. This helps verify if the network is running in line with the desired electrical attributes set by the user. -- `estimated_max_energy`: Similar to `estimated_max_power`, this parameter marks the network's forecasted maximum active energy limit (in Wh). Its role is to ensure the network remains stable, delivering consistent power to the connected devices. +- `estimated_max_energy`: Similar to `estimated_max_power`, this parameter characterizes the network's forecasted maximum active energy limit (in Wh). Its role is to ensure the network remains stable, delivering consistent power to the connected devices. - `Device_X_Limiter`: This sets the maximum limit for a chosen parameter for devices 1 & 2. Its definition should align with that of the `Device_X_CompRef`. @@ -268,11 +268,11 @@ The function `energy_distro_ctrl()` uses energy meter data and user inputs from This ensures that devices operate when energy consumption is within a range that is 10% below the maximum safe operation level. The `handleDevice()` function streamlines parameter adjustments and troubleshooting for each device state, facilitating desired relay activation. -The system will alert the user if the average power demand surpasses the predefined user profile threshold. This application note considers specific data from the devices used, serving as a proof of concept for this scenario. +The system will warn the user if the average power demand surpasses the predefined user profile threshold. This application note considers specific data from the devices used, serving as a proof of concept for this scenario. The `Device #1` is configured for low-power devices that need a consistent current or the existing power to switch on securely. Users also have the option to control it remotely. -The `Device #2` caters to devices with higher power demands. It will begin operations if the current or average power available meets the specified power requirement. +The `Device #2` can be seen as a device with higher power demands. It will begin operations if the current or average power available meets the specified power requirement. ```arduino /** @@ -412,7 +412,7 @@ void RTU_Setup(){ The provided functions are designed for data retrieval from a target device via the Modbus RTU protocol. Each function is designed to fetch specific data types from the device using distinct register addresses. -By indicating the device and the register address, these functions simplify accessing data from devices communicating through Modbus RTU. We will employ these functions to extract data from the 7M.24 energy meter. +By indicating the device and the register address, these functions simplify accessing data from devices communicating through Modbus RTU. We will use these functions to extract data from the 7M.24 energy meter. ```arduino /** @@ -685,15 +685,15 @@ Access the complete sketch used in the energy management design for Opta™ in c ## Conclusion -You have built an Opta™ energy manager adept at monitoring an electrical system, evaluating power availability and consumption, and remotely managing devices prioritized by power or energy via the Arduino Cloud. +You have built an Opta™ energy manager to monitor an electrical system, evaluate power availability and consumption, and remotely manage devices prioritized by power or energy via the Arduino Cloud. Opta™ can help manage the energetical balance in industrial environments: in this example, we have considered a scenario where machines can be operated opportunistically, based on power availability, over a 24/7 span, to improve the overall power efficiency. -This project can be adapted with a few tweaks, such as integrating different types of power sources, setting varied conditions for machinery operations, and adjusting power-related parameters. This flexibility allows for customized solutions, effectively addressing numerous scenarios and optimizing energy distribution. +This project can be adapted with a few tweaks, such as integrating different power sources, setting varied conditions for machinery operations, and adjusting power-related parameters. This flexibility allows customized solutions, effectively addressing numerous scenarios and optimizing energy distribution. ## Next Steps -Setting up an energy management system at home or in an industrial setting can greatly minimize unneeded power usage. Delve into the potential of energy management by harnessing the Arduino Cloud to develop a more energy-conscious environment. +Setting up an energy management system at home or in an industrial setting can greatly minimize unnecessary power usage. Dive into the potential of energy management by harnessing the Arduino Cloud to develop a more energy-conscious environment. The 6M.TA energy meter can also be used to meet demands as an alternative using a similar setup. For more details, please refer to the dedicated tutorial [here](https://docs.arduino.cc/tutorials/opta/opta-6m-power-analyzer/). ## Support