Coder Social home page Coder Social logo

plantpal's Introduction

Teapotlabs Plantpal

drawing

Meet Teapotlabs Plantpal - Your pal in plant care! This adorable device uses capacitive sensing to measure soil moisture. Its low-power e-paper display keeps you updated without draining energy. Plus, with the BME688 sensor, it is able to monitor air quality and CO2 levels, ensuring your plants thrive in optimal conditions.

Teapotlabs Plantpal is part of Teapotlabs open-hardware project.

Sponsorship

Huge thanks to PCBWay to sponsored this project! All PCB and Assembly in this project is using their services.

Acknowledgement

The project won't be possible without the amazing work from people across the globe. The following are the reference to those awesome projects!

Specification

  • ESP32-C6FH4: ESP32-C6 with 4 MB in-package flash
  • AEM10941: Solar energy harvesting
  • USB-C for charging and programming
  • ~20uA Deep-Sleep
  • 1.54 Inch E-Paper Display
  • Sensor:
    • BME688 for Environmental Sensing
    • Built-in Soil Moisture sensor
    • Battery voltage sensing
  • 1A charge rate via USB
  • 3.7 Volts LiPo Battery

Revision

  • Revision 1: Initial public release
  • Revision 2: Remove via in pad
  • Revision 3:
    • Fix incorrect BOM component for D1
    • Fix D6 Polarity
    • Remove Power Gate
    • Change Soil Sensor SENSE_OUT pin
    • Add EPD power switch
    • Change to 4-layer board
    • Move BME688 to bottom layer
    • Improve antenna layout
  • Revision 4: Re-wire EPD remaining power to +3V3D

Schematics

schematic

Built using KiCAD 7.0.5 A detailed schematic can be found here

Boards

pcb_render
PCB Render

Built using KiCAD, the board is design to be as small as possible with all components placed on the top side of the PCB.

⚠️ The following design are based on revision 3 but is similar to revision 4.

More images can be found here

Top Board Bottom Board

assembled_front

assembled_back

pcb_front

pcb_bottom

pcb
PCB Top and Bottom Layout

pcb
Assembled Front Close-up

Case and Showcase

case_render

Built using TinkerCAD. The case are 3D printable with any generic 3D printer with/without support. The STL files are available here

drawing
Case Open

BME688 sensor is available in the back, facing 3 small vents in the back of the case

drawing
BME688 Position

Soil Moisture Sensing Showcase

Based on the amazing project in b-parasite, Plantpal has the built-in soil moisture sensor via capacitive sensing. Using capacitive sensing, enables the device to measure soil moisture without any traces exposed to the environment. See rbaron's b-parasite project for more information on how the sensor works and more additional information to protect the soil moisture sensor!

soil moisture sensing test
Soil Moisture Sensing Showcase

Measurement

Power consumption and solar charging current are measured using Nordic PPK2 and Joulescope. The following are the summary of the measurement:

  • Deep-sleep : 22uA
  • Read Sensor, Update Display, and Store Data to Flash: 31mA @ 2.5s
  • Read Sensor, Update Display, Store Data to Flash, and Publish to MQTT: 54mA @ 3.77s
  • Direct Sunlight Solar Charge: 7.5mA
  • Indirect Sunlight Solar Charge: 400uA

⚠️ Tested on Revision 4-equivalent board, but should be similar to Revision 4

deep-sleep
Deep-sleep

power-display-sensor-all-and-store
Read Sensor, Update Display, and Store Data to Flash

power-display-sensor-all-store-and-mqtt-publish
Read Sensor, Update Display, Store Data to Flash, and Publish to MQTT

simple-monitor-direct-solar-charge
Solar Charge - Direct Sunlight

test-deep-sleep-indirect-sunlight
Solar Charge - Indirect Sunlight

More measurement can be found here

Bill Of Materials

Most of the components are generic and can be bought from any electornics/semi-conductor distributor. The bill of materials can be downloaded here. The EPD display used and tested is GDEY0154D67 from GoodDisplay. The following display should be compatible, but the example code would need to be adjusted:

  • GDEW0154T8
  • GDEW0154Z17
  • GDEW0154Z04
  • GDEW0154C39
  • GDEW0154I9F

Those displays are available from AliExpress

Programming

Programming the device can be done easily over the USB-C. Out of factory, the ESP32-C6 will be blank and need to be put in bootloader mode. The following is a step-by-step guide to initially program the device

  1. Plug-in the USB-C to host computer and check if the device is detected
  2. If not, check that you have the battery plug-in and try to shine the solar cell using any source of bright light ( phone flashlight, sun, lamp )
  3. Wait until the USB is detected in the host computer
  4. Press and Hold BOOT and RESET button
  5. Release RESET button
  6. Wait couple seconds
  7. Release BOOT button
  8. Plantpal should be in bootloader mode and you can flash it via ESP-IDF or Arduino

A more detailed information about USB behavior on ESP32-C6 can be here

How to Purchase

At the moment, we do not mass produce the device. The fastest way you can get the device is to order it directly from the manufacturer here (does NOT include the display and case). You need to buy the display separately from Aliexpress or other distributor.

If you'd like to buy it from us fully assembled, we might be available and please contact [email protected]

Disclaimer and notes

Some disclaimer about Plantpal:

  • WiFi antenna is not optimized and not certified
  • RTC components have not been tested
  • Deep-sleep with esp_sleep_enable_timer_wakeup() on Arduino SDK have weird behavior where it only sleeps for the half amount of time it instructed to do.
  • The solar charge rate is 1.5mA lower than Teapotlabs BWLR1E even though they use the same components and configuration.

Questions?

For any questions feel free to create a issue or contact [email protected]

License

The product is open-source! However, some part of library used under firmware or hardware, might have it's own license. Please reach out or create a ticket if Teapotlabs Plantpal violated any licenses.

License: MIT

plantpal's People

Contributors

aldwinhermanudin avatar

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.