Giter Club home page Giter Club logo

zotbins / waste_watcher_adafruit_io Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 12.83 MB

Waste Watcher is an IoT based sensor module to help keep track of waste data metrics with real-time bin fullness data and waste images. This is intended to help quantify waste and promote actionable solutions to lower the amount of waste people throw away.

Home Page: https://zotbins.github.io/zbceblog

License: MIT License

C 25.93% C++ 74.07%
iot adafruit-io esp32-cam platformio sustainability zero-waste waste-management

waste_watcher_adafruit_io's Introduction

Waste Watcher Adafruit IO

All Contributors

Waste Watcher is an IoT based sensor module to help keep track of waste data metrics with real-time bin fullness data and waste images. This is intended to help quantify and promote actionable solutions to reduce waste. This project is a continuation of waste_watcher.

Features

  • πŸ—‘ Collect waste bin fullness telemetry
  • πŸ“· Capture image of inside the waste bin
  • πŸ”§ Fully customizable (adjust data collection rate, tweak case design for your needs, change camera settings, etc.)

Why? Β―\(ツ)/Β―

Simply put, we generate way too much waste here in the United States 🀧. According to the EPA, 267.8 million tons of trash were generated. And even though the US represents 4% of the global population we generate 12% of global municipal solid waste, right behind India and China ( Verisk Maplecroft, 2019). The trash itself also presents other harmful environmental impacts. US landfills are the 3rd largest source of human-related methane emissions (EPA). Waste also affects 43% of marine mammals (EPA 2017).

Waste monitoring systems already exist in commercial settings, ZotBins expands waste monitoring to the individual and community level. Some of these existing systems include Bigbelly, Compology, and Enevo. ZotBins is completely opensource. Built for people, by people.

Adafruit IO

This repo, in particular, uses Adafruit IO, an off-the-shelf IoT platform. For now, Adafruit IO is a great addition to this project and helps in the following ways:

  • πŸ€— Helps makes the project more user-friendly (no need to setup your own server, ready to use APIs, Dashboard feature)
  • πŸ†“ Free to use F O R E V E R β•°(Β°β–½Β°)β•― (according to their website)
  • 🀝 Great community on Discord willing to help people out
  • πŸ”’ Data is never sold

Getting Started

Follow the Build Guide πŸ› .

Actionable Ideas for Your Waste Data

Besides just collecting data, here are some ideas that you can implement. Again the goal of this project is to help quantify and promote actionable solutions to reduce waste.

  • 🎯 Create a goal to reduce the rate at which you fill up a bin
  • πŸ’» Use the Adafruit IO Integrations (Zapier, IFTTT)
    • Send a summary of weekly fullness rate
    • Send alerts when bin is full
  • πŸ€– Use machine learning to identify what items are thrown always
    • identify frequently thrown away items then try to reduce that waste (eg. plastic straws are identified frequently in the waste stream, so we can ban the straw or give sustainable alternatives)
    • identify which waste items are incorrectly thrown away

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Primal Pappachan

πŸ‘€

Patrick Nguyen

πŸ’» πŸ‘€

This project follows the all-contributors specification. Contributions of any kind welcome!

Credits/Acknowledgements

  1. ESP32Cam-MQTT by abish7643 - Great reference in how to send images through MQTT
  2. ESP32-CAM Projects by Random Nerd Tutorials - Quality background information on getting started with the ESP32-CAM

How this Project Started

This project started at UCI in 2017 with a group of 4 undergraduates for a hackathon hosted by UCI TIPPERS. The aim of the project was to help create a tool to help with UCI's zero waste initiatives. Since then, the project is being shared to the open-source community through ZBCE and the ZotBins UCI undergraduate team continues with new members every year.

Other Links

  1. License
  2. Contributing
  3. Code of Conduct

waste_watcher_adafruit_io's People

Contributors

allcontributors[bot] avatar okyang avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

waste_watcher_adafruit_io's Issues

ESP32-CAM Images Base Code

Features

  1. PlatformIO code for ESP8266 Node MCU
  2. Take a photo and encode it as a base64 string for AdafruitIO MQTT
  3. Send Data to Adafruit IO using MQTT

Code cannot run with FTDI programmer when HCSR-04 is connected.

Describe the bug
Code cannot run with FTDI programmer when HCSR-04 is connected. In the past, this worked by just not using the TX and RX connections AFTER my script was flashed onto the ESP32-CAM. But now it still doesn't seem to work.

The circuit connections are

FTDI 5V <---> HCSR04 5V <---> ESP32-CAM 5V
FTDI GND <---> HCSR04 GND <----> ESP32-CAM GND
FTDI TX <---> ESP32-CAM RX
FTDI RX <---> ESP32-CAM TX

HCSR04 TRIG <---> ESP32-CAM GPIO12
HCSR04 ECHO <---> ESP32-CAM GPIO13

Error from Serial Monitor is

rst:0x10 (RTCWDT_RTC_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57

To Reproduce
Steps to reproduce the behavior:

  1. Only connect FTDI to ESP32-CAM and put on jumper cap GND and GPIO0
  2. Reset board to put it in Flashing mode
  3. Flash the program onto the ESP32-CAM (use scripts from #6)
  4. Connect HCSR-04 to ESP32CAM and FTDI
  5. Take off jumper cap and reset the board
  6. Open the serial monitor to see the error

Expected behavior
The script should run without any flashing errors. In the past, this worked by just not using the TX and RX connections AFTER my script was flashed onto the ESP32-CAM. But now it still doesn't seem to work.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):
contents in platform.ini file

[env:esp32cam]
platform = espressif32
board = esp32cam
framework = arduino
monitor_speed = 115200
lib_deps = 
	adafruit/Adafruit MQTT Library@^2.4.2
	adafruit/Adafruit IO Arduino@^4.1.1

Additional context
Current using code from Pull Request #6

Adafruit IO HCSR-04 Base Code

Features

  1. PlatformIO code for ESP32-CAM AI Thinker
  2. Collect fullness data from a HCSR04 Ultrasonic Sensor
  3. Send Data to Adafruit IO using MQTT this will be done in issue #3

Tester #2

Description

Tester needed for giving feedback on setting up a Waste Watcher by following the build guide.

Steps

  1. Go through the steps in the build guide
  2. Take note of any feedback or improvements you may have.
  3. Two Options to give feedback (or do both)
    1. (Recommended) Submit a Pull Request with your suggested changes
    2. Directly comment on this issue

Add Documentation

Features

  • Build Guide Documentation
  • License, Contributing, etc.
  • Update Readme
  • STL files

Test Issue

This is a test issue for testing out a webhook, please ignore.

Waste Watcher Guide on Instructables

Create a Waste Watcher Guide on Instructables. Historically I have been seeing a lot of good exposure on Instructables, and I think it would be a great way to share the project and potentially get some other people excited to build this out for themselves.

Tester #1

Description

Tester needed for giving feedback on setting up a Waste Watcher by following the build guide.

Steps

  1. Go through the steps in the build guide
  2. Take note of any feedback or improvements you may have.
  3. Two Options to give feedback (or do both)
    1. (Recommended) Submit a Pull Request with your suggested changes
    2. Directly comment on this issue

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.