Fung_OS is an open source embeded system to control & monitor multiple enclosed mushroom cultivation envrionments for lab environments and hobby / research applications.
Utilizing an ArduinoMEGA as the backend hardware controller and Rasbery PI 3B+ as the frontside user interface and system manager.
The system is broken into two parts. The Arduino "Backend" and the PI "frontside".
The Arduino is resposible for life support(s) managment and its attached environments that are controlled by the life support sub system.
The Rasbery PI is responsible for the collection of data from the backend as well as providing an easy user interface to manage several systems and subsystems.
- Proof of concept frameworks
- Hardware & software experimentation
- Overall for personal learning
- Free to use for anyone in the mycology feild or as hobby equipment
- To fill a need for cheap hardware and simple software in the mycology feild / hobby.
- Large community support for the project online.
- Product research and desgine
Definition: The Arduino( backend) is the hardware controller for life support subsystems and their connected environments...
The Arduino backend is witten in C++.
Each Arduino can control 3 life supports. > ( envrionmental control hardware )
Each life support can by default, support 4 environments > ( fruiting chambers / tents / rooms )
Note
Environments are isolated Fruiting [ Chambers / Tents / Rooms ]
Life support subsystem manages:
- Lighting
- Heating
- Humidity/Air exchange
- Water tank cleaning
- Waste pumps
- Door/lighting bypass switch
- Water level sensor
- Valve system control
The rasbery pi frontside features:
- User interface
- Full/Multi system control (multi Arduino communication)
- Wifi - local network cluster communication
- Data logging
- Powerd by Pygame as rendering engine
- Multithreaded application
The Rasbery pi ( frontside user interface ) is able to communicate and manage 4 Arduinos at a time using a simple USB connection. No additional hardware required.
Basic example:
Arduino <-- communication via USB --> RasberyPI : ( user interface layer )
flow chart:
graph TD;
EnvironmentA_1-8-->Arduino_1-->PI_1;
EnvironmentB_1-8-->Arduino_2-->PI_1;
EnvironmentC_1-8-->Arduino_3-->PI_1;
EnvironmentD_1-8-->Arduino_4-->PI_1;
Life support(s) are environent contollers. Life support subsystems are responsible for all aspects of the environemt core functions.
8 pins are dedicated by default to manage core functions:
Note Core features by pin index: 🔶
( Click to expand )
pin index:
- Lighting
- air/humidity exhange
- Waste water collection pumps
- Tank cleaning ( ozone scrubber )
- Heating
- Ozone gas release valve
- Water tank level sensor
- Door/light override toggle button
Each life support subsystem that is created has a large number of settings to maintain its function. These settings can be changed via serial communication through the front end interface.
Warning manually setting from source: see ending for headless running [ no pi needed ! ] )
Basic example: ( environments can be assigned to any life support ! )
life support (A) ---> FC_1, FC_2, FC_3
life support (B) ---> FC_4, FC_5
flow chart:
graph TD;
Environment_A-->Life_support_1-->Arduino_1;
Environment_B-->Life_support_1;
Environment_C-->Life_support_1;
Environment_D-->Life_support_2-->Arduino_1;
Environment_E-->Life_support_2;
Environment_F-->Life_support_2;
Arduino_1-->PI_1;
flow chart: [ single life support air routing ]
graph TD;
filter_air_intake--> Water/Fog_tank;
Water/Fog_tank-->ozone_release_valve;
Water/Fog_tank-->valve_1 -->FC_1;
Water/Fog_tank-->valve_2-->FC_2;
Water/Fog_tank-->valve_3-->FC_3;
Water/Fog_tank-->valve_4-->FC_4;
FC_1 --> filtered_air_out_passive_or_valved;
FC_2 --> filtered_air_out_passive_or_valved;
FC_3 --> filtered_air_out_passive_or_valved;
FC_4 --> filtered_air_out_passive_or_valved;
Note
Warning
Click to expand
- hidden a
- hidden b