cleanup of documentation and image data
This commit is contained in:
parent
b77dfdfcef
commit
f5a448eedd
|
@ -1,55 +0,0 @@
|
||||||
# Hardware
|
|
||||||
|
|
||||||
We are using HelTec Automation Wirelsess Sticks ESP32 Dev-Boards.
|
|
||||||
|
|
||||||
## PinOut
|
|
||||||
|
|
||||||
The PinOut of our version 3 modules can be found here: https://docs.heltec.org/en/node/esp32/dev-board/hardware_update_log.html#wifi-lora-32-hardware-update-logs
|
|
||||||
|
|
||||||
![PinOut](../images/HTIT-WS_V3.png "PinOut")
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
For some parts of the Heltec board you need a ["license"](https://docs.heltec.org/general/view_limited_technical_data.html#esp32-lora-series).
|
|
||||||
|
|
||||||
## USB-C
|
|
||||||
|
|
||||||
Our HelTec Automation Wirelsess Sticks ESP32 Dev-Boards already have USB-C. But they do not support Power Deliver (PD). If your computer tries to do PD, just plug a cheap USB hub between the board and your computer.
|
|
||||||
|
|
||||||
## Arduino IDE
|
|
||||||
|
|
||||||
HelTecs GitHub repo can be found here: https://github.com/HelTecAutomation/Heltec_ESP32
|
|
||||||
|
|
||||||
I had to install VCP Drivers, first: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads
|
|
||||||
|
|
||||||
You can add their Board Manager to the boards managers URLs: https://github.com/HelTecAutomation/Heltec_ESP32/blob/master/library.json and find their libraries in the IDE (Sketch -> Include Library -> Manage Libraries... Search for "heltec esp32").
|
|
||||||
|
|
||||||
> These boards are already _V3_ boards, so be careful selecting the right board and port (VCP).
|
|
||||||
|
|
||||||
![Arduino IDE](../images/flash-with-arduino.png "select the right board and port")
|
|
||||||
|
|
||||||
## Install esptool
|
|
||||||
|
|
||||||
Esptool is a Pyhton program to flash ESP32. As it's a Pyhton tool you can install it using `pip`:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
pip install esptool
|
|
||||||
```
|
|
||||||
|
|
||||||
## Find the port
|
|
||||||
|
|
||||||
Usually you can find the used port using `esptool.py`:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
esptool.py write_flash_status --non-volatile 0
|
|
||||||
```
|
|
||||||
|
|
||||||
### Using MicroPython
|
|
||||||
|
|
||||||
Download the firmware: https://micropython.org/download/
|
|
||||||
|
|
||||||
Flash it using `esptool`: https://micropython.org/download/GENERIC_S3/
|
|
||||||
|
|
||||||
```sh
|
|
||||||
esptool.py --chip esp32s3 write_flash -z 0 ~/Desktop/GENERIC_S3-20220117-v1.18.bin
|
|
||||||
```
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Energy Monitor
|
# Energy Monitor
|
||||||
|
|
||||||
Our energy monitor is based on the openenergymonitor.org project (Licence GNU GPL V3).
|
Our energy monitor is based on the [openenergymonitor.org](https://openenergymonitor.org/) project (Licence GNU GPL V3).
|
||||||
|
|
||||||
It uses our HelTec Wireless Stick. This - of course - can be replaced by a cheaper ESP32 module.
|
It uses our HelTec Wireless Stick. This - of course - can be replaced by a cheaper ESP32 module.
|
||||||
|
|
||||||
|
@ -14,6 +14,10 @@ Power Measurement is done by a SCT013 clamp (100A:50mA).
|
||||||
|
|
||||||
### PinOut
|
### PinOut
|
||||||
|
|
||||||
|
We are using HelTec Automation Wirelsess Sticks ESP32 Dev-Boards.
|
||||||
|
|
||||||
|
The PinOut of our version 3 modules can be found here: https://docs.heltec.org/en/node/esp32/dev-board/hardware_update_log.html#wifi-lora-32-hardware-update-logs
|
||||||
|
|
||||||
![PinOut](../images/HTIT-WS_V3.png "PinOut")
|
![PinOut](../images/HTIT-WS_V3.png "PinOut")
|
||||||
|
|
||||||
We use A1, A2 and A3 because they are free (most ADCs are already used on the HelTec Board)
|
We use A1, A2 and A3 because they are free (most ADCs are already used on the HelTec Board)
|
||||||
|
@ -59,8 +63,24 @@ R3 is the burden resistor. Ideal burden would be 19 Ω. As this is not a common
|
||||||
|
|
||||||
See the Fritzing file for [details](./energy-monitor.fzz).
|
See the Fritzing file for [details](./energy-monitor.fzz).
|
||||||
|
|
||||||
|
## USB-C
|
||||||
|
|
||||||
|
Our HelTec Automation Wirelsess Sticks ESP32 Dev-Boards already have USB-C. But they do not support Power Deliver (PD). If your computer tries to do PD, just plug a cheap USB hub between the board and your computer.
|
||||||
|
|
||||||
## Code
|
## Code
|
||||||
|
|
||||||
|
### Arduino IDE
|
||||||
|
|
||||||
|
HelTecs GitHub repo can be found here: https://github.com/HelTecAutomation/Heltec_ESP32
|
||||||
|
|
||||||
|
I had to install VCP Drivers, first: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads
|
||||||
|
|
||||||
|
You can add their Board Manager to the boards managers URLs: https://github.com/HelTecAutomation/Heltec_ESP32/blob/master/library.json and find their libraries in the IDE (Sketch -> Include Library -> Manage Libraries... Search for "heltec esp32").
|
||||||
|
|
||||||
|
> These boards are already _V3_ boards, so be careful selecting the right board and port (VCP).
|
||||||
|
|
||||||
|
![Arduino IDE](../images/flash-with-arduino.png "select the right board and port")
|
||||||
|
|
||||||
### Print to serial out
|
### Print to serial out
|
||||||
|
|
||||||
Start with a simple code that just prints the values. The code is quite simple, as we can use the existing _[EmonLib libary V1.1.0 by OpenEnergyMonitor](https://docs.openenergymonitor.org/electricity-monitoring/ct-sensors/)_.
|
Start with a simple code that just prints the values. The code is quite simple, as we can use the existing _[EmonLib libary V1.1.0 by OpenEnergyMonitor](https://docs.openenergymonitor.org/electricity-monitoring/ct-sensors/)_.
|
||||||
|
@ -109,6 +129,10 @@ The `mqtt_server` in tis example posts to my local IP adress. The Wifi network i
|
||||||
|
|
||||||
The `mqtt_prefix` should be different per device, as this is the topic prefix used to identify the device.
|
The `mqtt_prefix` should be different per device, as this is the topic prefix used to identify the device.
|
||||||
|
|
||||||
|
We now can consume this messages in Node-RED, store them in InfluxDB and build a dashboard in Grafana.
|
||||||
|
|
||||||
|
If you haven't deployed the [IoT prototyping backend yet, check out our guide](https://code.curious.bio/curious.bio/iot-backend/).
|
||||||
|
|
||||||
### Testing
|
### Testing
|
||||||
|
|
||||||
You can subscribe to your local MQTT server and subscribe to all or just the interesting topics:
|
You can subscribe to your local MQTT server and subscribe to all or just the interesting topics:
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 232 KiB |
|
@ -70,52 +70,7 @@ It will post MQTT messages unter a topic `tele/tasmota_891E97/SENSOR` like this
|
||||||
|
|
||||||
We now can consume this messages in Node-RED, store them in InfluxDB and build a dashboard in Grafana.
|
We now can consume this messages in Node-RED, store them in InfluxDB and build a dashboard in Grafana.
|
||||||
|
|
||||||
### InfluxDB Bucket
|
If you haven't deployed the [IoT prototyping backend yet, check out our guide](https://code.curious.bio/curious.bio/iot-backend/).
|
||||||
|
|
||||||
I created a bucket called `shelly`in InfluxDB, so we can store the messages in this bucket.
|
|
||||||
|
|
||||||
### Node-RED
|
|
||||||
|
|
||||||
I create a usual flow in Node-RED. A MQTT node fetches the values.
|
|
||||||
|
|
||||||
![Node-RED](../images/node-red.png)
|
|
||||||
|
|
||||||
The message is fed into a filter function to only store usefull information:
|
|
||||||
|
|
||||||
```ini
|
|
||||||
return {
|
|
||||||
payload: {
|
|
||||||
power: Number(msg.payload.ENERGY.Power),
|
|
||||||
voltage: Number(msg.payload.ENERGY.Voltage),
|
|
||||||
current: Number(msg.payload.ENERGY.Current)
|
|
||||||
}
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
The `payload` will be stored in InfluxDB in the bucket "shelly".
|
|
||||||
|
|
||||||
### InfluxDB Data Explorer
|
|
||||||
|
|
||||||
In Influx DB Data Explorer you can query the stored data.
|
|
||||||
|
|
||||||
![Data Explorer](../images/data-explorer.png)
|
|
||||||
|
|
||||||
The query created by Data Explorer looks like that:
|
|
||||||
|
|
||||||
```flux
|
|
||||||
from(bucket: "shelly")
|
|
||||||
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|
|
||||||
|> filter(fn: (r) => r["_measurement"] == "msg")
|
|
||||||
|> filter(fn: (r) => r["_field"] == "power" or r["_field"] == "voltage" or r["_field"] == "current")
|
|
||||||
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|
|
||||||
|> yield(name: "mean")
|
|
||||||
```
|
|
||||||
|
|
||||||
### Grafana
|
|
||||||
|
|
||||||
Using this query you can crate a dashboard in Grafana.
|
|
||||||
|
|
||||||
![Grafana](../images/grafana.png)
|
|
||||||
|
|
||||||
## Links
|
## Links
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
# Bill of Materials (BOM)
|
# Bill of Materials (BOM)
|
||||||
|
|
||||||
| Part | Quantity | Note | Link |
|
| Part | Quantity | Note | Link |
|
||||||
| --------------------------- | -------: | ------------- | ------------------------------------------ |
|
| --------------------------- | -------: | ---------------- | ------------------------------------------ |
|
||||||
| ESP Microcontroller | 1 | | |
|
| ESP Microcontroller | 1 | ESP8266 or ESP32 | |
|
||||||
| SCT-013-100 | 3 | one per phase | http://openenergymonitor.org/emon/node/156 |
|
| SCT-013-100 | 1 | one per phase | http://openenergymonitor.org/emon/node/156 |
|
||||||
| 10 kOhm Resistors 1/4 W | 6 | two per phase | |
|
| 10 kOhm Resistors 1/4 W | 2 | two per phase | |
|
||||||
| 22 Ohm Resistor 1/4 W | 3 | | |
|
| 22 Ohm Resistor 1/4 W | 1 | one per phase | |
|
||||||
| 10 uF Elko 10 V | 3 | | |
|
| 10 uF Elko 10 V | 1 | one per phase | |
|
||||||
| 3,5 mm audio jack connector | 3 | | |
|
| 3,5 mm audio jack connector | 1 | one per phase | |
|
||||||
|
|
Loading…
Reference in a new issue