Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jorgeloopzz/plants_bpa-de2


https://github.com/jorgeloopzz/plants_bpa-de2

brno-university-of-technology digital-electronics electronics esp32 micropython python wokwi

Last synced: 20 days ago
JSON representation

Awesome Lists containing this project

README

        


πŸͺ΄ Measurement of the environment for tropical plants πŸͺ΄

The goal of this project is to create a system that measures key environmental parameters such as temperature, humidity, light levels, soil moisture for tropical plants. This system also allows the user to visualize the data obtained.

- [πŸ§‘β€πŸ§‘β€πŸ§’ Team members](#-team-members)
- [βš™οΈ Hardware description](#️-hardware-description)
- [πŸ•ΉοΈ Software description](#️-software-description)
- [πŸ–ΌοΈ Instructions and photos](#️-instructions-and-photos)
- [πŸ› οΈ References and tools](#️-references-and-tools)

Β 

# πŸ§‘β€πŸ§‘β€πŸ§’ Team members

- Carles TΓ rrega Molins
- Jorge LΓ³pez Viera
- Marta Tejera LΓ³pez

Β 

# βš™οΈ Hardware description

Parts used:

- [ESP32](/assets/esp32.png)
- 1 light sensor
- 2 pushbuttons
- 1 resistor
- SSD1306 OLED Display
- 1 Neopixel LED strip

![image](/assets/circuit.png)

More details
- For NeoPixel, 1 pin for voltage, other for ground, and the last connected to any digital input.

- 2 of the 4 pushbuttons pins must be disconnected, the other 2 can be connected to any digital input.

- Since OLED display requires I2C commmunications we need to connect the correspond pins to SDA and SCL, pins 21 and 22.

Β 

# πŸ•ΉοΈ Software description

### βœ… Test files

```
src/
β”œβ”€β”€ 01-i2c_scan.py
β”œβ”€β”€ 02-i2c_rtc.py
β”œβ”€β”€ 02-i2c_sensor.py
β”œβ”€β”€ 02-i2c_sensor_bme280.py
β”œβ”€β”€ 03-i2c_oled.py
β”œβ”€β”€ 04-i2c_sensor_oled.py
β”œβ”€β”€ sh1106_org.py
└── sh1106.py
```

### πŸ—ƒοΈ Classes

```
src/
β”œβ”€β”€ bme280.py
β”œβ”€β”€ Button.py
└── dht12.py
```

> πŸ“ **Note:** the `Button` class was made by ourselves, apart for controlling pushbuttons, to know and control when they are pressed.

### 🎨 Colours

In order to manage lights we've made functions to change each pixel color through a **_for_** loop.

```python
# src/leds.py
...

def off():
off = (0, 0, 0)
for i in range(n):
pixels[i] = off
pixels.write()
sleep(0.1)

def blue():
azul = (0, 102, 255)
for i in range(n):
pixels[i] = azul
pixels.write()
sleep(0.1)

...
```

Β 

# πŸ–ΌοΈ Instructions and photos

| **_Flowchart 1_** | **_Flowchart 2_** |
| :-----------------------------------: | :-----------------------------------: |
| ![flowchart1](/assets/flowchart1.png) | ![flowchart2](/assets/flowchart2.png) |

Β 

| **_Result 1_** | **_Result 2_** |
| :------------------------------: | :------------------------------: |
| ![result1](/assets/result1.jpeg) | ![result2](/assets/result2.jpeg) |

Β 

# πŸ› οΈ References and tools

- [Course repository](https://github.com/tomas-fryza/esp-micropython)
- [Markdown guide](https://www.markdownguide.org/)
- [Thonny IDE](https://thonny.org/)
- [NeoPixel](https://docs.micropython.org/en/latest/esp8266/tutorial/neopixel.html)
- [Wokwi](https://wokwi.com/micropython)
- [Git](https://www.w3schools.com/git/)

Β