Mycodo
An environmental monitoring and regulation system
Install / Use
/learn @kizniche/MycodoREADME
Mycodo
Environmental Regulation System
Latest version: 8.16.2
Mycodo is open source software for the Raspberry Pi that couples inputs and outputs in interesting ways to sense and manipulate the environment.
|Build Status| |Codacy Badge| |Translation Badge| |DOI|
.. contents:: Table of Contents :depth: 1
Quick Install
Prerequisites: Debian-based Linux operating system (tested with Raspberry Pi OS 13 Trixie).
Recommended: Single board computer (SBC) with General-Purpose Input-Output (GPIO) pins.
Install Command:
.. code:: bash
curl -L https://kizniche.github.io/Mycodo/install | bash
See the Install Mycodo <#install-mycodo>__ section for more details.
Support
Documentation
`Mycodo Manual <https://kizniche.github.io/Mycodo>`__
`Mycodo API <https://kizniche.github.io/Mycodo/mycodo-api.html>`__ (Version: v1)
`Mycodo Wiki <https://github.com/kizniche/Mycodo/wiki>`__
`Mycodo Custom Module Repository <https://github.com/kizniche/Mycodo-custom>`__
Discussion
~~~~~~~~~~
`Mycodo Issues (Bug Reports/Feature Requests) <https://github.com/kizniche/Mycodo/issues>`__
`Mycodo Forum <https://forum.radicaldiy.com>`__
`Mycodo Discord <https://discord.gg/kmDNky4ZHZ>`__
Bug in the Mycodo Software
If you believe there is a bug in the Mycodo software, first search through the github Issues <https://github.com/kizniche/Mycodo/issues>__ and see if your issue has already recently been discussed or resolved. If your issue is novel or significantly more recent than a similar one, you should create a New Issue <https://github.com/kizniche/Mycodo/issues/new>__. When creating a new issue, make sure to read all information in the issue template and follow the instructions. Replace the template text with the information being requested (e.g. "step 1" under "Steps to Reproduce the issue" should be replaced with the actual steps to reproduce the issue). The more information you provide, the easier it is to reproduce and diagnose the issue. If the issue is not able to reproduced because not enough information is provided, it may delay or prevent solving the issue.
Donate
I have always made Mycodo free and I don't intend on changing that. However, if you find Mycodo useful and would like to support its continued development, please consider becoming a sponsor at github.com/sponsors/kizniche <https://github.com/sponsors/kizniche>__ or donate at kylegabriel.com/donate <https://kylegabriel.com/donate>__.
Features
Inputs <https://kizniche.github.io/Mycodo/Inputs/>__ that record measurements from sensors, GPIO pin states, analog-to-digital converters, and more (or create your ownCustom Inputs <https://kizniche.github.io/Mycodo/Inputs/#custom-inputs>). See allSupported Inputs <https://kizniche.github.io/Mycodo/Supported-Inputs-By-Measurement/>.Outputs <https://kizniche.github.io/Mycodo/Outputs/>__ that perform actions such as switching GPIO pins high/low, generating PWM signals, executing shell scripts and Python code, and more (or create your ownCustom Outputs <https://kizniche.github.io/Mycodo/Outputs/#custom-outputs>). See allSupported Outputs <https://kizniche.github.io/Mycodo/Supported-Outputs/>.Functions <https://kizniche.github.io/Mycodo/Functions/>__ that perform tasks, such as coupling Inputs and Outputs in interesting ways, such asPID <https://kizniche.github.io/Mycodo/Functions/#pid-controller>,Conditional <https://kizniche.github.io/Mycodo/Functions/#conditional>,Trigger <https://kizniche.github.io/Mycodo/Functions/#trigger>, to name a few (or create your ownCustom Functions <https://kizniche.github.io/Mycodo/Functions/#custom-functions>). See allSupported Functions <https://kizniche.github.io/Mycodo/Supported-Functions/>__.Web Interface <https://kizniche.github.io/Mycodo/About/#web-interface>__ for securely accessing Mycodo using a web browser on your local network or anywhere in the world with an internet connection, to view and configure the system, which includes several light and dark themes.Dashboards <https://kizniche.github.io/Mycodo/Data-Viewing/#dashboard>__ that display configurable widgets, including interactive live and historical graphs, gauges, output state indicators, measurements, and more (or create your ownCustom Widgets <https://kizniche.github.io/Mycodo/Widgets/#custom-widgets>). See allSupported Widgets <https://kizniche.github.io/Mycodo/Supported-Widgets/>.Alert Notifications <https://kizniche.github.io/Mycodo/Alerts/>__ to send emails when measurements reach or exceed user-specified thresholds, important for knowing immediately when issues arise.Setpoint Tracking <https://kizniche.github.io/Mycodo/Methods/>__ for changing a PID controller setpoint over time, for use with things like terrariums, reflow ovens, thermal cyclers, sous-vide cooking, and more.Notes <https://kizniche.github.io/Mycodo/Notes/>__ to record events, alerts, and other important points in time, which can be overlaid on graphs to visualize events with your measurement data.Cameras <https://kizniche.github.io/Mycodo/Camera/>__ for remote live streaming, image capture, and time-lapse photography.Energy Usage Measurement <https://kizniche.github.io/Mycodo/Energy-Usage/>__ for calculating and tracking power consumption and cost over time.Upgrade System <https://kizniche.github.io/Mycodo/Upgrade-Backup-Restore/>__ to easily upgrade the Mycodo system to the latest release to get the newest features or restore to a previously-backed up version.Translations <https://kizniche.github.io/Mycodo/Translations/>__ that enable the web interface to be presented in differentLanguages <https://github.com/kizniche/Mycodo#features>__.
.. image:: https://kylegabriel.com/projects/wp-content/uploads/sites/3/2020/06/Screenshot_2020-04-25-hydra-Default-Dashboard-Mycodo-8-4-0-dashboard_2.png :target: https://kylegabriel.com/projects/wp-content/uploads/sites/3/2020/06/Screenshot_2020-04-25-hydra-Default-Dashboard-Mycodo-8-4-0-dashboard_2.png
Figure: Automated Hydroponic System Build <https://kylegabriel.com/projects/2020/06/automated-hydroponic-system-build.html>__
Uses
Originally developed to cultivate edible mushrooms, Mycodo has evolved to do much more. Here are a few things that have been done with Mycodo:
Projects by Kyle Gabriel (core developer)
- `Mushroom Cultivation Automation <https://kylegabriel.com/projects/2021/09/mushroom-cultivation-automation.html>`__ (`Archive <https://archive.is/HUtdp>`__)
- `Hydroponic System Automation <https://kylegabriel.com/projects/2020/06/automated-hydroponic-system-build.html>`__ (`Archive <http://archive.is/mB2zc>`__)
- `Mushroom cultivation <https://kylegabriel.com/projects/2015/04/mushroom-cultivation-revisited.html>`__ (`Archive <http://archive.is/J92Xa>`__)
- `Ground-based plant cultivation <https://www.youtube.com/watch?v=QNCx_VE7D-8>`__
- `Maintaining honey bee apiary homeostasis <https://kylegabriel.com/projects/2015/12/environmentally-controlled-apiary.html>`__ (`Archive <http://archive.is/RLo6n>`__)
- `Maintaining humidity in an underground artificial bat cave <https://kylegabriel.com/projects/2015/10/artificial-bat-cave.html>`__ (`Archive <http://archive.is/QIJ5G>`__)
- `Remote radiation monitoring and mapping <https://kylegabriel.com/projects/2019/08/remote-radiation-monitoring.html>`__ (`Archive <http://archive.is/PF44Z>`__)
- `Cooking sous-vide <https://hackaday.io/project/11997-mycodo-environmental-regulation-system/log/45733-sous-vide-pid-tuning-and-the-unexpected-electrical-fire>`__ (`Archive <http://archive.is/Mx52U>`__)
- `Maintaining a light schedule and regulating humidity <https://fieldstation.kennesaw.edu/summer-days-2020.php#2020_07_16_gabriel_chestnut>`__, ramping from 90 % to 50 % over a 4 week period to acclimatize micropropagated American chestnut plantlets from laboratory to ambient outdoor conditions (`Archive <http://archive.is/Jp60P>`__)
Featured Projects
~~~~~~~~~~~~~~~~~
.. image:: https://kylegabriel.com/projects/wp-content/uploads/sites/3/2021/09/MushroomCultivation_512x288.jpg
:target: https://www.youtube.com/watch?v=z41Wy5ZF4O8
.. image:: https://kylegabriel.com/projects/wp-content/uploads/sites/3/2020/07/VID_PROJ_HYDRO_512x288.jpg
:target: https://www.youtube.com/watch?v=nyqykZK2Ev4
Projects by Others
~~~~~~~~~~~~~~~~~~
- Maintaining aquatic systems (e.g. fish, hydroponic, aquaponic)
- Maintaining terrarium, herpetarium, and vivarium environments
- Incubating young animals and eggs
- Aging cheese
- Dry-aging, curing, and smoking meat (`Link 1 <http://www.charcuterie-worst.nl/forum/index.php/topic,425.0.html>`__ (`Archive <http://archive.is/NHKqp>`__), `Link 2 <https://www.floriske.nl/wordpress/2019/06/meat-curing-cabinet/>`__ (`Archive <https://archive.ph/57ouJ>`__))
- Fermenting beer, food, and tobacco
- Controlling reflow ovens
- Culturing microorganisms
- `Treating agricultural waste water <https://projects.sare.org/project-reports/gne17-158/>`__ (`Archive <http://archive.is/enJQs>`__, `Publication <https://pubs.acs.org/doi/pdf/10.1021/acsestwater.0c00234>`__)
- ...and more
`Let me know <https://kylegabriel.com/contact/>`__ how you use Mycodo and I may include it on this list.
Screenshots
-----------
Visit the `Screenshots <https://github.com/kizniche/Mycodo/wiki/Screenshots>`__ page of the Wiki.
Install Mycodo
--------------
Prerequisites
~~~~~~~~~~~~~
Required:
- Debian-based operating system (tested with Raspberry Pi OS 13 Trixie)
- An active internet connection
Recommended:
- `Raspberry Pi <https://www.raspberrypi.org>`__ single-board computer: 3, 4, or 5 (Zero, 1, and 2 are no longer recommended)
- `Raspberry Pi Operating System <https://www.raspberrypi.com/software/>`__ flashed to a micro SD card or SSD
Mycodo has bee
Related Skills
imsg
351.4kiMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.
oracle
351.4kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
tmux
351.4kRemote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
lobster
351.4kLobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (s
