https://www.dumas.io/teaching/2021/fall/mcs260/nbview/projects/project4.html
Greenhouse monitoring The aim of the project is to monitor the environment of a Greenhouse. The greenhouse needs to have a specific environment to grow. For example, it needs to have a pH between 5.5. and 6.5, a water pH levels between 6.2 to 6.5 and a temperature between 70F to 75F in order to be healthy. If these conditions are not met it can impact the plant. The user would use the keyboard to input values. In the circumstance the input is out of the boundaries, the monitor will print out a solution to show to the person what they could do in such a scenario and also indicate the associated risks if it is not taken care of. For example, if the input pH of the soil is more than 6.5, the program would suggest adding aluminum sulfate or sulfuric acid and would also inform the user that if the pH isn’t reduced it would cause gaps in nutrient availability and the presence of high concentrations of minerals that are harmful to plants. The program ends when the greenhouse environment is completely fine for plant growth. CONDITIONS: I want to make sure the program is going to do more than simply comparing three numbers to target values and print something about the results, as that would be a little too thin for a project. You sketch out possible ideas for how it would work, but I didn't completely understand certain points. Here's a more specific proposal you can accept or use as the basis for a revised proposal, at your option. Why don't you simulate a control system for a greenhouse that would monitor sensors for things like temperature, soil pH, and moisture levels, and decide what actions should be taken. Such a program should store a log of past values in a CSV file, and expect to receive new values as keyboard input. The use of keyboard input would replace the direct monitoring of sensors that would happen in a real control program. The output of the program would be a set of actions, e.g. open greenhouse roof vents to lower temperature, close vents to raise temperature, open watering values, close watering values, release limestone soil additive to raise pH, release aluminum sulfate soil additive to lower pH, ... Ideally, the program would make note of the past trends to decide how severe an action is justified. For example, if the temperature is not just above ideal but is rising quickly, it would respond more aggressively by fully opening the roof vents, whereas a temperature slightly above ideal would only result in a small roof vent opening action. This means that current state of the program would involve several variables, like roof vent status (float between 0.0=closed and 1.0=fully open), watering valve status (float between 0.0=closed and 1.0=fully open), soil additive release status (0=None, 1=limestone, -1 = Al2(SO4)3 )