Code Monkey home page Code Monkey logo

plantspeak's Introduction

⚠️ Currently under development

PlantSpeak

PlantSpeak is an IoT project that publishes sensor data from an "ESP-32 Soil Moisture Sensor Module" to ThingSpeak. It collects data related to soil humidity, air temperature, air humidity, voltage, and RSSI, and sends it to ThingSpeak for further analysis and visualization.

The default upload period is one minute and if an error accoured, the esp32 will sleep for 5 minutes and then retry to upload (with new sensor data).

This project was inspired by:

Installation

To install and set up PlantSpeak, please follow these steps:

1. Create a ThingSpeak Account

If you haven't already, create an account on ThingSpeak to host your sensor data.

This is my channel: Thingspeak channel 1270350

2. Create a New Channel on ThingSpeak

Create a new channel on ThingSpeak with at least five fields. The default fields for PlantSpeak are as follows: channelSetup

Also activate Show Status.

3. Clone the Repository

Clone the PlantSpeak repository to your local machine.

git clone https://github.com/SamKry/PlantSpeak.git

4. The secrets

4.1 Create a secrets.h File

Create a file in the src directory with the file name secrets.h.

4.2 Add credentials

Add this content to the secrets.h file:

// Use this file to store all of the private credentials 
// and connection details. Pay attention to not commit this file!

#define SECRET_SSID "MySSID"		    // replace MySSID with your WiFi network name
#define SECRET_PASS "MyPassword"	    // replace MyPassword with your WiFi password

#define SECRET_CH_ID 0000000 		    // replace 0000000 with your channel number
#define SECRET_WRITE_API_KEY "MyAPIKey" // replace MyAPIKey with your channel write API key

Modify the secrets.h file to include your network and ThingSpeak credentials. This file should not be committed to version control, as it contains sensitive information.

5. Hardware Setup

Follow the steps below to set up the hardware components for PlantSpeak.

5.1 Solder the Voltage Sensor

Voltage Sensor Installation

Solder the two 100K Ohm resistors to the ESP-32 board according to the provided diagram. The resistors are used to measure the voltage of the battery. Use GPIO 35 for the voltage measurement.

If you don't want to measure the voltage, you can skip this step. However, you have to remove the corresponding code from the main.cpp file.

5.2 (Optional) Add Solar Panel

Solar Panel Installation

If you want to power the system with a solar panel, solder the solar panel to the ESP-32 board following the provided diagram. A small battersie is sufficient to survive a day, but I recommend using a slightly larger LiPo, as it is not sunny every day in my region. Two 5V 250mA solar panels are sufficient to power the system. I use the following solar panels:

The battery can also be charged via the micro USB port.

6. Upload Code to the ESP-32

Use your preferred development environment (e.g., Visual Studio Code with the PlatformIO plugin or Arduino IDE) to upload the code to the ESP-32 board.

Used Libraries

The following libraries are used in the PlantSpeak project:

Make sure to install these libraries before uploading the code to the ESP-32.

Contributing

Contributions to PlantSpeak are welcome! If you have any ideas, improvements, or bug fixes, please open an issue or submit a pull request on this repository.

License

MIT License

plantspeak's People

Contributors

samkry avatar

Stargazers

 avatar YodaheaD avatar

Watchers

 avatar

plantspeak's Issues

Soil Humidity Calibration

Implement a function to calibrate the Soil Capacity sensor.

  1. Dry off the sensor
  2. Take the measurement (average)
  3. Place the sensor in water (100% Hum)
  4. Take the measurement (average)
  5. Store in EEPROM

Check for Voltage in setup phase

If the battery voltage drops, at some point, the esp resets itself during the setup phase resulting in a constant bootup which consumps allot of power cause the sleeptime is reset

additionally: Increase defautl sleep time to max (like if 3.5V)

Reduce power consumption on low battery

Currently every Minute a sensor value is sent. Change it to respect the current battery level (reduce sending frequency when power drop)
Eventually entirely turn off on low voltage.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.