From 6c1d4c82f1cf2a00e9ea506d880ee04e620caa0c Mon Sep 17 00:00:00 2001 From: Alberto Bettin Date: Sun, 19 Sep 2021 19:41:27 +0200 Subject: [PATCH] Add esp32 wroom howto --- README.md | 4 +-- ...er_rj45.md => Esp32_max485_epever_rj45.md} | 27 +++++++++++++----- images/esp32_wroom_38_pin.jpg | Bin 0 -> 34868 bytes 3 files changed, 22 insertions(+), 9 deletions(-) rename docs/{Esp32_d1_mini_max485_epever_rj45.md => Esp32_max485_epever_rj45.md} (58%) create mode 100644 images/esp32_wroom_38_pin.jpg diff --git a/README.md b/README.md index 48baa06..41576ce 100644 --- a/README.md +++ b/README.md @@ -66,9 +66,9 @@ Follow links to get them. Refer to [Sw_getting_started.md](docs/Sw_getting_started.md) -Some details about some specific implementations: +Some details: - ESP8266 + MAX485 + EPEVER Solar Tracer [HOW TO](docs/Esp8266_max485_epever_rj45.md) -- ESP32 D1 MINI + MAX485 + EPEVER Solar Tracer [HOW TO](docs/Esp32_d1_mini_max485_epever_rj45.md) +- ESP32 + MAX485 + EPEVER Solar Tracer [HOW TO](docs/Esp32_max485_epever_rj45.md) ## Reference diff --git a/docs/Esp32_d1_mini_max485_epever_rj45.md b/docs/Esp32_max485_epever_rj45.md similarity index 58% rename from docs/Esp32_d1_mini_max485_epever_rj45.md rename to docs/Esp32_max485_epever_rj45.md index 3824e8d..5b8b18c 100644 --- a/docs/Esp32_d1_mini_max485_epever_rj45.md +++ b/docs/Esp32_max485_epever_rj45.md @@ -1,19 +1,22 @@ -# Connect ESP32 D1 MINI to EPEVER A/B Series ( + MAX485) +# Connect ESP32 to EPEVER A/B Series ( + MAX485) Here the material involved: -* [ESP32 D1 MINI](https://www.aliexpress.com/premium/esp32-d1-mini.html?d=y&origin=y&catId=0&initiative_id=SB_20210919083440&SearchText=esp32%20d1%20mini) +* ESP 32 MODULE, below the modules tested: + * [ESP32 D1 MINI](https://www.aliexpress.com/premium/esp32-d1-mini.html?d=y&origin=y&catId=0&initiative_id=SB_20210919083440&SearchText=esp32%20d1%20mini) + * [ESP32 WROOM DEV MODULE](https://it.aliexpress.com/wholesale?catId=0&initiative_id=SB_20210919092741&isPremium=y&SearchText=esp+wroom-32+38+pin+devkit) + * or any esp32 module you like * [EPSolar/EPEver Tracer A/B-Series](https://www.aliexpress.com/wholesale?catId=0&initiative_id=SB_20170114172728&SearchText=tracer+mppt+rs485) * [MAX 485 UART Module](https://www.aliexpress.com/wholesale?catId=0&initiative_id=SB_20210919083609&isPremium=y&SearchText=max485+module) * An old ethernet cable with RJ45 connector you are happy to cut open -## ESP32 D1 MINI <-> MAX485 module +## ESP32 <-> MAX485 module ![This one worked for me](../images/max485_module.jpg) It's powered from `+5V` from ESP32 module, and wired as following: - +### ESP32 D1 MINI - `DI` -> `IO17` / `GPIO17` / `TX2` - `RO` -> `IO16` / `GPIO16` / `RX2` - `DE` and `RE` are interconnected with a jumper and then connected to pin `TCK` / `GPIO13` @@ -22,6 +25,14 @@ It's powered from `+5V` from ESP32 module, and wired as following: ![ESP32 D1 MINI](../images/esp32_d1_mini_pins.png) +### ESP32 WRROOM 38 PIN +- `DI` -> `28` / `GPIO17` / `TX2` +- `RO` -> `27` / `GPIO16` / `RX2` +- `DE` and `RE` are interconnected with a jumper and then connected to pin `15` / `GPIO13` +- `VCC` to `+3.3V` / `3.3v` on ESP32 + +![ESP32 WRROOM 38 PIN](../images/esp32_wroom_38_pin.jpg) + ## MAX485 module <-> EPEVER CONTROLLER (RJ45) Cut open your ethernet cable and split out pin 3, 5, 7 (B, A, GND). Refer to [Tracer Modbus PDF](../docs/1733_modbus_protocol.pdf) for additional info. @@ -38,14 +49,16 @@ Connect cables as follows: ## BASE SW CONFIGURATION Edits required on *src/config.h*: -- `#define BOARD_ST_SERIAL_PIN_MAPPING_RX 16` -- `#define BOARD_ST_SERIAL_PIN_MAPPING_TX 17` +- `#define BOARD_ST_SERIAL_STREAM Serial2` [default] - Uncomment `#define USE_SERIAL_MAX485` - `#define MAX485_DE 13` - `#define MAX485_RE_NEG 13` Edit on *platformio.ini* (Platformio only): -- `platformio.default_envs = wemos_d1_mini32` (usb/serial fw flash) or `platformio.default_envs = wemos_d1_mini32_ota` (ota fw flash) +- **ESP32 MINI D1 - only** + - `platformio.default_envs = wemos_d1_mini32` (usb/serial fw flash) or `platformio.default_envs = wemos_d1_mini32_ota` (ota fw flash) +- **ESP32 DEV MODULE - only** + - `platformio.default_envs = esp32dev` (usb/serial fw flash) or `platformio.default_envs = esp32dev_ota` (ota fw flash) You may need to make more changes according to your needs (ntp syn/led status/ data to monitor ...). diff --git a/images/esp32_wroom_38_pin.jpg b/images/esp32_wroom_38_pin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0bb43f2a9050addc53dd583ec943ebe241d5eadf GIT binary patch literal 34868 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 Z0;b6fLJm(ZFkN(D1*Jgh6O8|F0s!sJ0fqno literal 0 HcmV?d00001