Project Autus - Automated Plant Chamber

Dependencies:   TextLCD mbed

Fork of keypad_test by Plamen Totev

Autus

This is the codebase accompanying the project Autus.

Autus is an automated growth chamber for plants.

Features

Control Humidity inside chamber wrt to external humidity. Control Temperature inside chamber. ( Peltier Heaters/Coolers ) Water and shower plants. Control soil humidity. Monitor water tanks level (Load Cell) /media/uploads/umairaftab/frdm_-_new_page1.png

Code Base Features

Fixed timing and CRC for DHT-11 Sensor. Fixed OneWire bug for ds18b20

Cyclic Executive Scheduler with Priority. Async IPC framework for PC App over bluetooth

Fake RTC systick, I was having some trouble with the on board rtc.

/media/uploads/umairaftab/download.png

Committer:
umairaftab
Date:
Wed Apr 09 18:26:03 2014 +0000
Revision:
3:087ce66714c0
2;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
umairaftab 3:087ce66714c0 1 #include "mbed.h"
umairaftab 3:087ce66714c0 2 #include "led_lights.h"
umairaftab 3:087ce66714c0 3 unsigned int led_red_pulsewidth;
umairaftab 3:087ce66714c0 4 unsigned int led_green_pulsewidth;
umairaftab 3:087ce66714c0 5 unsigned int led_blue_pulsewidth;
umairaftab 3:087ce66714c0 6 unsigned int led_period =1000;
umairaftab 3:087ce66714c0 7 unsigned int led_pulsewidth = 0;
umairaftab 3:087ce66714c0 8 unsigned int led_step = 10;
umairaftab 3:087ce66714c0 9
umairaftab 3:087ce66714c0 10 unsigned int pwm_blue_led(int brightness )
umairaftab 3:087ce66714c0 11 {
umairaftab 3:087ce66714c0 12 if (brightness==1) {
umairaftab 3:087ce66714c0 13 led_blue_pulsewidth=led_blue_pulsewidth+led_step;
umairaftab 3:087ce66714c0 14 led_blue.pulsewidth_us(led_blue_pulsewidth);
umairaftab 3:087ce66714c0 15 };
umairaftab 3:087ce66714c0 16 if (brightness==0) {
umairaftab 3:087ce66714c0 17 led_blue_pulsewidth=led_blue_pulsewidth-led_step;
umairaftab 3:087ce66714c0 18 led_blue.pulsewidth_us(led_blue_pulsewidth);
umairaftab 3:087ce66714c0 19 };
umairaftab 3:087ce66714c0 20 return led_blue_pulsewidth;
umairaftab 3:087ce66714c0 21 }
umairaftab 3:087ce66714c0 22 unsigned int pwm_green_led(int brightness)
umairaftab 3:087ce66714c0 23 {
umairaftab 3:087ce66714c0 24 if (brightness==1) {
umairaftab 3:087ce66714c0 25 led_green_pulsewidth=led_green_pulsewidth+led_step;
umairaftab 3:087ce66714c0 26 led_green.pulsewidth_us(led_green_pulsewidth);
umairaftab 3:087ce66714c0 27 }
umairaftab 3:087ce66714c0 28 if (brightness==0) {
umairaftab 3:087ce66714c0 29 led_green_pulsewidth=led_green_pulsewidth-led_step;
umairaftab 3:087ce66714c0 30 led_green.pulsewidth_us(led_green_pulsewidth);
umairaftab 3:087ce66714c0 31 }
umairaftab 3:087ce66714c0 32 return led_green_pulsewidth;
umairaftab 3:087ce66714c0 33 }
umairaftab 3:087ce66714c0 34 unsigned int pwm_red_led(int brightness)
umairaftab 3:087ce66714c0 35 {
umairaftab 3:087ce66714c0 36 if (brightness==1) {
umairaftab 3:087ce66714c0 37 led_red_pulsewidth=led_red_pulsewidth+led_step;
umairaftab 3:087ce66714c0 38 led_red.pulsewidth_us(led_red_pulsewidth);
umairaftab 3:087ce66714c0 39 }
umairaftab 3:087ce66714c0 40 if (brightness==0) {
umairaftab 3:087ce66714c0 41 led_red_pulsewidth=led_red_pulsewidth-led_step;
umairaftab 3:087ce66714c0 42 led_red.pulsewidth_us(led_red_pulsewidth);
umairaftab 3:087ce66714c0 43 }
umairaftab 3:087ce66714c0 44 return led_red_pulsewidth;
umairaftab 3:087ce66714c0 45 }
umairaftab 3:087ce66714c0 46
umairaftab 3:087ce66714c0 47 void led_test(void){
umairaftab 3:087ce66714c0 48 led_blue.period_us(led_period);
umairaftab 3:087ce66714c0 49 led_blue_pulsewidth=led_pulsewidth;
umairaftab 3:087ce66714c0 50 for (int i=1; i<=100; i++) {
umairaftab 3:087ce66714c0 51 pwm_blue_led(1);
umairaftab 3:087ce66714c0 52 wait (0.1);
umairaftab 3:087ce66714c0 53 }
umairaftab 3:087ce66714c0 54 for (int i=1; i<=100; i++) {
umairaftab 3:087ce66714c0 55 pwm_blue_led(0);
umairaftab 3:087ce66714c0 56 wait (0.1);
umairaftab 3:087ce66714c0 57 }
umairaftab 3:087ce66714c0 58 led_blue_pulsewidth=10; // set to 0
umairaftab 3:087ce66714c0 59 pwm_blue_led(0); // set to 0
umairaftab 3:087ce66714c0 60
umairaftab 3:087ce66714c0 61 led_red.period_us(led_period);
umairaftab 3:087ce66714c0 62 led_red_pulsewidth=led_pulsewidth;
umairaftab 3:087ce66714c0 63 for (int i=1; i<=100; i++) {
umairaftab 3:087ce66714c0 64 pwm_red_led(1);
umairaftab 3:087ce66714c0 65 wait (0.1);
umairaftab 3:087ce66714c0 66 }
umairaftab 3:087ce66714c0 67 for (int i=1; i<=100; i++) {
umairaftab 3:087ce66714c0 68 pwm_red_led(0);
umairaftab 3:087ce66714c0 69 wait (0.1);
umairaftab 3:087ce66714c0 70 }
umairaftab 3:087ce66714c0 71 led_red_pulsewidth=10; // set to 0
umairaftab 3:087ce66714c0 72 pwm_red_led(0); // set to 0
umairaftab 3:087ce66714c0 73
umairaftab 3:087ce66714c0 74 led_green.period_us(led_period);
umairaftab 3:087ce66714c0 75 led_green_pulsewidth=led_pulsewidth;
umairaftab 3:087ce66714c0 76 for (int i=1; i<=100; i++) {
umairaftab 3:087ce66714c0 77 pwm_green_led(1);
umairaftab 3:087ce66714c0 78 wait (0.1);
umairaftab 3:087ce66714c0 79 }
umairaftab 3:087ce66714c0 80 for (int i=1; i<=100; i++) {
umairaftab 3:087ce66714c0 81 pwm_green_led(0);
umairaftab 3:087ce66714c0 82 wait (0.1);
umairaftab 3:087ce66714c0 83 }
umairaftab 3:087ce66714c0 84 led_green_pulsewidth=10; // set to 0
umairaftab 3:087ce66714c0 85 pwm_green_led(0); // set to 0
umairaftab 3:087ce66714c0 86 }