Manish-Subedi / Vaisala-co2-controller

As a final project for ARM processor-FreeRTOS course, a program to control and monitor a Green House.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Vaisala CO2 Controller

Final project for ARM processors and Embedded Systems operations course.

Created by Metropolia University of Applied Science students, 3rd year, Smart IoT Systems major.
Contributors: Manish Subedi, Ahmed Al-Tuwaijari, Melany Macias, Janne Kinnunen.

More detailed documentation about the project architecture can be found in: LINK

Contents

Description

As it is well-known, carbon dioxide supplementation on plant growth and production is a key factor in a healthy greenhouse environment. Carbon dioxide (CO2) is an essential component of photosynthesis (also called carbon assimilation), whose process is of extremely importance in human’s wellbeing as it is the source of energy and food for all organisms.

As there is a need to create a system that helps the healthy growth of plants, especially in enclosed spaces, the project has been developed. Therefore, the project's objective is to create a greenhouse's CO2 fertilization controller system, where the CO2 level is maintained by a controller at the level chosen from the local user interface.

User manual

Product specifications

The hardware used during the project development is shown in the picture below: Ventilation System Ventilation System The system consists of several components:

  • LPC1549 (MCU): LPC1549, an ARM-cortex M3 based microcontroller was used in this project, that features a rich peripheral set with very low power consumption. The LPC1549 operate at CPU frequencies of up to 72 MHz. The LPC1549 include up to 256 kB of flash memory, 32 kB of ROM, a 4 kB EEPROM, and up to 36 kB of SRAM. Among the features, mainly, NVIC, Systick Timer, Watchdog timer, communication protocols: I2C, Modbus, and UART, were used for this project.
  • LCD Screen: The LCD (Liquid Crystal Display) screen is an electronic display module and has a wide range of applications. A 16x2 LCD display is very basic module which is very commonly used in various devices and circuits, as it can display 16 characters per line and there are 2 such lines. It is used to show the current Co2 levels and display the information provided by the sensors.
  • Rotary Encoder: A rotary encoder is a type of position sensor, they measure rotary movements and displacement and can either be absolute or incremental. The systems uses it to get information on position, speed, count or direction that it is placed on, and adjusting the Co2 levels to the user’s input.
  • Arduino Uno: Arduino is an open hardware development board that is used to design and build devices that interact with the real world. During the development process, the Arduino Uno has been used to simulate input from the temperature, humidity and CO2 sensors and its purpose is to serve for basic testing of the software. When the product is used with real sensors, the software behaves in the same way as with the simulator and it does not make use of the Arduino Uno.
  • ESP8266-01 Wifi Module: The ESP8266 WiFi Module is a self contained SOC with integrated TCP/IP protocol stack that can give any microcontroller access to your WiFi network. Therefore, this module brings to the system the possibility to connect to internet, which is a key factor in the data transmission.

The sensors used to collect data in the embedded system are the following:

  • GMP252 co2 probe: Vaisala's GMP252 co2 probe was used to measure and collect information on the co2 concentration. GMP252 is designed for CO2 measurement in demanding applications that require reliable and accurate performance. The measurement range is 0 - 10 000 ppmCO2 (measurements can be carried out in the 10 000 - 30 000 ppmCO2 range with reduced accuracy). It is an intelligent, stand-alone, ppm-level probe. It's intended for measuring CO2 igreenhouses, among other places.
  • HMP60: Another one from Vaisala, HMP60 Humidity and Temperature Probe measures and transmittes temperature and humidity readings. HMP60 series probes use the interchangeable Vaisala INTERCAP® sensor. No recalibration is required after sensor replacement. It is a simple, durable and cost-effective humidity probe suitable for greenhouses.

Intent use

The software’s purpose is to be used in a greenhouse environment, as shown below: Physical Greenhouse

Installation instructions

Download the zip or clone into the repo. Create a workspace in MCUxpresso IDE and copy all of the projects. Resolve all 'header includes' related warnings and errors, if no errors, debug. You will have the LCD displaying the data, MQTT messages published to the respective topic, and the program adjusts co2 level as per the set point.

How to operate the product?

After you are done with above installation phase, only thing you need to do is to select 'co2_setpoint' menu item on the LCD and click on it. You will be able to set certain value. The valve that controlls the flow of co2 from the tank will close every 2 seconds. There is a timer that starts everytime the valve opens. The co2 level is checked again and if necessary, the valve opens up again. If the setpoint is lower than the actual reading from the sensor, the valve is kept closed and for test purposes, a fan (manually operated) was used to blow off co2 from the greenhouse.

About

As a final project for ARM processor-FreeRTOS course, a program to control and monitor a Green House.

License:GNU General Public License v3.0


Languages

Language:C 92.0%Language:C++ 7.6%Language:CSS 0.3%Language:CMake 0.1%