ESP-Nodes/README.md

70 lines
3.5 KiB
Markdown
Raw Normal View History

2023-11-21 14:52:36 -05:00
# ESP-Nodes
2024-07-06 21:38:37 -04:00
Eco-system of ESP32s Nodes and ATtiny85 peripherals with different functionalities.
2024-07-06 21:20:47 -04:00
2024-07-07 08:55:19 -04:00
<p>The ESP32-Node is designed to be a low-cost, vanila solution for experimenting with embedded and IoT devices. The ESP32-Node is intended to College students taking Electronics program or advanced users who are looking for functional ESP32 embedded board with minimal size.</p>
2024-07-06 21:20:47 -04:00
2024-07-06 21:40:46 -04:00
<img alt="ESP32-Node PCB" src="https://github.com/alexandrebobkov/ESP-Nodes/blob/main/assets/ESP32-Node-001.jpg" width="50%"/>
2024-07-06 21:35:56 -04:00
2024-07-06 21:39:16 -04:00
<p><i>ESP32-Node Features:</i></p>
2024-07-06 22:50:39 -04:00
- ESP32-WROOM-32D Module [^1]
2024-07-06 21:44:07 -04:00
- Direct connections to all GPIOs
- Miniature in size, only 35.7mm x 35.7mm
2024-07-06 23:17:38 -04:00
- Built-in 3V3 voltage regulator (15V input max) and reversed supply voltage polarity protection
2024-07-06 21:38:37 -04:00
- Pre-wired strapping pins for ensuring proper booting on power-on
2024-07-06 21:44:07 -04:00
- blue power-on LED
2024-07-06 21:38:37 -04:00
- two programmable LEDs
2024-07-06 22:58:19 -04:00
- programmable via [UART](https://github.com/alexandrebobkov/ESP-Nodes/tree/main?tab=readme-ov-file#uart) -> no need for serial drivers
2024-07-06 21:48:22 -04:00
2024-07-07 09:14:56 -04:00
### ESP32-WROOM-32D Module Adapter Pinouts
2024-07-07 09:01:55 -04:00
<p>The adapter allows interchangability of ESP32 modules between different nodes. The adapter contains minimal components on its PCB, just enough to ensure module's operation.</p>
2024-07-06 21:48:22 -04:00
2024-07-06 21:51:42 -04:00
<img alt="ESP32-Node Pinout" src="https://github.com/alexandrebobkov/ESP-Nodes/blob/main/assets/ESP32-Node-pinout.png" width="350px"/>
2024-07-06 22:26:19 -04:00
| Physical Pin | Descrption and Logical Pin | Extended Function |
| --- | --- | --- |
| `1` `15` `38` | Ground | |
2024-07-06 22:52:53 -04:00
| `2` | `3V3` | |
2024-07-06 22:26:19 -04:00
| `3` | EN | |
2024-07-06 22:27:34 -04:00
| `4` `5` `6` `7` | **Inputs Only** `GPIO36` `GPIO39` `GPIO34` `GPIO35` | ADC1_CH0, ADC1_CH3, ADC1_CH6, ADC1_CH7 |
2024-07-06 22:26:19 -04:00
| `8` `9` | `GPIO32` `GPIO33` | TOUCH_9, TOUCH_8 |
2024-07-06 22:30:01 -04:00
| `10` `11` | `GPIO25` `GPIO26` | DAC_1, DAC_2 |
| `12` | `GPIO27` | TOUCH_7 |
2024-07-06 22:33:12 -04:00
| `13` `14` | `GPIO14` `GPIO12` | `HSPI_CLK` `HSPI_MISO` TOUCH_6 TOUCH_7 |
| `16` | `GPIO13` | `HSPI_MOSI` ADC2_CH4 |
2024-07-06 22:52:53 -04:00
| `17` `18` `19` `20` `21` `22` | **Module Internal Use Only** `GPIO09` `GPIO10` `GPIO11` `GPIO08` `GPIO07` `GPIO06` |
2024-07-06 22:35:34 -04:00
| `23` `24` | `GPIO02` `GPIO15` | AD2_CH3 ADC2_CH2 |
| `25` `26` | `GPIO00` `GPIO04` | TOUCH_1 TOUCH_0 |
2024-07-06 22:40:34 -04:00
| `27` `28` | `GPIO16` `GPIO17` | `UART2_RXD` `UART2_TXD` |
| `29` `30` `31` | `GPIO05` `GPIO18` `GPIO19` | `VSPI_CS0` `VSPI_CLK` `VSPI_MISO` |
| `32` | Not Connected |
| `33` | `GPIO21` | `SDA` |
| `34` `35` | `GPIO03` `GPIO01` | UART0_RXD UART0_TXD |
| `36` | `GPIO22` | `SCL` |
2024-07-06 22:50:39 -04:00
| `37` | `GPIO23` | VSPI_MOSI |
2024-07-06 22:54:48 -04:00
[^1]: https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf
2024-07-07 09:01:55 -04:00
### UART
2024-07-07 09:16:27 -04:00
## Temperature Node Key Elements and Components
2024-07-07 09:07:15 -04:00
2024-07-07 09:14:56 -04:00
The **Temperature Node** broadcasts the air temperature, atmospheric pressure and air humidity over secured MQTT.
2024-07-07 09:04:53 -04:00
2024-07-07 09:38:42 -04:00
### I2C Air Temperature, Pressure and Humidity Sensor Board (BME280)
2024-07-07 09:04:53 -04:00
2024-07-07 09:40:21 -04:00
The sensor board is 13mm by 10.5mm in size that provides the air temperature, pressure and humidity values over I2C protocol. Sensor board uses **BME280** IC.
2024-07-07 09:29:55 -04:00
2024-07-07 09:32:26 -04:00
<img alt="ESP32-Node Pinout" src="https://github.com/alexandrebobkov/ESP-Nodes/blob/main/assets/BME280.jpg" width="200px"/>
2024-07-07 09:29:55 -04:00
2024-07-07 09:34:32 -04:00
> [!IMPORTANT]
2024-07-07 11:56:28 -04:00
> BM**E**280[^2] and BM**P**280[^3] look almost identical. However, BME280 sensor has a square form, while BMP280 has a rectangular form. In addition, the two sensor boards have different I2C addresses.
2024-07-07 09:34:59 -04:00
>
> <img alt="ESP32-Node Pinout" src="https://github.com/alexandrebobkov/ESP-Nodes/blob/main/assets/BME280-BMP280.jpg" width="100px"/>
2024-07-07 09:34:32 -04:00
2024-07-07 09:27:57 -04:00
2024-07-07 11:54:40 -04:00
### Wiring
2024-07-07 12:06:19 -04:00
[^2]: https://www.bosch-sensortec.com/products/environmental-sensors/humidity-sensors-bme280/
2024-07-07 11:56:28 -04:00
[^3]: https://www.bosch-sensortec.com/products/environmental-sensors/pressure-sensors/bmp280/