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:
Mon Apr 14 19:18:14 2014 +0000
Revision:
57:7ab93ed49b70
Parent:
35:8bea464c2028
Cosmetic Changes, Menus added

Who changed what in which revision?

UserRevisionLine numberNew contents of line
umairaftab 7:1d691f81d455 1 #include "mbed.h"
umairaftab 7:1d691f81d455 2 #include "buzz.h"
umairaftab 7:1d691f81d455 3 //#include "buzz.cpp"
umairaftab 7:1d691f81d455 4
umairaftab 7:1d691f81d455 5
umairaftab 7:1d691f81d455 6 //#include "TextLCD.h"
umairaftab 7:1d691f81d455 7 //extern void timer1(void);
umairaftab 7:1d691f81d455 8 //extern void beep(float freq,int time);
umairaftab 7:1d691f81d455 9
umairaftab 7:1d691f81d455 10 BusIn colonne(PTE2,PTE3,PTE4,PTA16,PTC0,PTC7);
umairaftab 35:8bea464c2028 11 BusOut righe(PTC17,PTD4,PTB10,PTB9,PTB8);//A2->D4, A1->C17
umairaftab 7:1d691f81d455 12 //TextLCD lcd(PTE5,PTE4,PTE3,PTE2,PTB11,PTB10);
umairaftab 7:1d691f81d455 13
umairaftab 7:1d691f81d455 14 char Keypad(void)
umairaftab 7:1d691f81d455 15 {
umairaftab 7:1d691f81d455 16 char key = 100;
umairaftab 7:1d691f81d455 17 // righe.write(31);//11111
umairaftab 7:1d691f81d455 18 // switch(colonne) {
umairaftab 7:1d691f81d455 19 // case 31:
umairaftab 7:1d691f81d455 20 // key = 1;
umairaftab 7:1d691f81d455 21 // break;//011111
umairaftab 7:1d691f81d455 22 // case 47:
umairaftab 7:1d691f81d455 23 // key = 2;
umairaftab 7:1d691f81d455 24 // break;//101111
umairaftab 7:1d691f81d455 25 // case 55:
umairaftab 7:1d691f81d455 26 // key = 3;
umairaftab 7:1d691f81d455 27 // break;//110111
umairaftab 7:1d691f81d455 28 // case 59:
umairaftab 7:1d691f81d455 29 // key = 4;
umairaftab 7:1d691f81d455 30 // break;//111011
umairaftab 7:1d691f81d455 31 // case 61:
umairaftab 7:1d691f81d455 32 // key = 5;
umairaftab 7:1d691f81d455 33 // break;//111101
umairaftab 7:1d691f81d455 34 // case 62:
umairaftab 7:1d691f81d455 35 // key = 6;
umairaftab 7:1d691f81d455 36 // break;//111110
umairaftab 7:1d691f81d455 37 // }
umairaftab 7:1d691f81d455 38 righe.write(30);//11110
umairaftab 7:1d691f81d455 39 switch(colonne) {
umairaftab 7:1d691f81d455 40 case 31:
umairaftab 17:0ff7385db570 41 key = 7;
umairaftab 7:1d691f81d455 42 beep(0.0002,100);
umairaftab 7:1d691f81d455 43 break;//011111
umairaftab 7:1d691f81d455 44 case 47:
umairaftab 17:0ff7385db570 45 key = 8;
umairaftab 7:1d691f81d455 46 beep(0.0002,100);
umairaftab 7:1d691f81d455 47 break;//101111
umairaftab 7:1d691f81d455 48 case 55:
umairaftab 17:0ff7385db570 49 key = 9;
umairaftab 7:1d691f81d455 50 beep(0.0002,100);
umairaftab 7:1d691f81d455 51 break;//110111
umairaftab 7:1d691f81d455 52 case 59:
umairaftab 17:0ff7385db570 53 key = 10;
umairaftab 7:1d691f81d455 54 beep(0.0002,100);
umairaftab 7:1d691f81d455 55 break;//111011
umairaftab 7:1d691f81d455 56 case 61:
umairaftab 17:0ff7385db570 57 key = 11;
umairaftab 7:1d691f81d455 58 beep(0.0002,100);
umairaftab 7:1d691f81d455 59 break;//111101
umairaftab 7:1d691f81d455 60 case 62:
umairaftab 17:0ff7385db570 61 key = 12;
umairaftab 7:1d691f81d455 62 beep(0.0002,100);
umairaftab 7:1d691f81d455 63 break;//111110
umairaftab 7:1d691f81d455 64 }
umairaftab 7:1d691f81d455 65 righe.write(29);
umairaftab 7:1d691f81d455 66 switch(colonne) {
umairaftab 7:1d691f81d455 67 case 31:
umairaftab 17:0ff7385db570 68 key = 13;
umairaftab 7:1d691f81d455 69 beep(0.0002,100);
umairaftab 7:1d691f81d455 70 break;//011111
umairaftab 7:1d691f81d455 71 case 47:
umairaftab 17:0ff7385db570 72 key = 14;
umairaftab 7:1d691f81d455 73 beep(0.0002,100);
umairaftab 7:1d691f81d455 74 break;//101111
umairaftab 7:1d691f81d455 75 case 55:
umairaftab 17:0ff7385db570 76 key = 15;
umairaftab 7:1d691f81d455 77 beep(0.0002,100);
umairaftab 7:1d691f81d455 78 break;//110111
umairaftab 7:1d691f81d455 79 case 59:
umairaftab 17:0ff7385db570 80 key = 16;
umairaftab 7:1d691f81d455 81 beep(0.0002,100);
umairaftab 7:1d691f81d455 82 break;//111011
umairaftab 7:1d691f81d455 83 case 61:
umairaftab 17:0ff7385db570 84 key = 17;
umairaftab 7:1d691f81d455 85 beep(0.0002,100);
umairaftab 7:1d691f81d455 86 break;//111101
umairaftab 7:1d691f81d455 87 case 62:
umairaftab 17:0ff7385db570 88 key = 18;
umairaftab 7:1d691f81d455 89 beep(0.0002,100);
umairaftab 7:1d691f81d455 90 break;//111110
umairaftab 7:1d691f81d455 91 }
umairaftab 7:1d691f81d455 92 righe.write(27);//11011
umairaftab 7:1d691f81d455 93 switch(colonne) {
umairaftab 7:1d691f81d455 94 case 31:
umairaftab 17:0ff7385db570 95 key = 19;
umairaftab 7:1d691f81d455 96 beep(0.0002,100);
umairaftab 7:1d691f81d455 97 break;//011111
umairaftab 7:1d691f81d455 98 case 47:
umairaftab 17:0ff7385db570 99 key = 20;
umairaftab 7:1d691f81d455 100 beep(0.0002,100);
umairaftab 7:1d691f81d455 101 break;//101111
umairaftab 7:1d691f81d455 102 case 55:
umairaftab 17:0ff7385db570 103 key = 21;
umairaftab 7:1d691f81d455 104 beep(0.0002,100);
umairaftab 7:1d691f81d455 105 break;//110111
umairaftab 7:1d691f81d455 106 case 59:
umairaftab 17:0ff7385db570 107 key = 22;
umairaftab 7:1d691f81d455 108 beep(0.0002,100);
umairaftab 7:1d691f81d455 109 break;//111011
umairaftab 7:1d691f81d455 110 case 61:
umairaftab 17:0ff7385db570 111 key = 23;
umairaftab 7:1d691f81d455 112 beep(0.0002,100);
umairaftab 7:1d691f81d455 113 break;//111101
umairaftab 7:1d691f81d455 114 case 62:
umairaftab 17:0ff7385db570 115 key = 24;
umairaftab 7:1d691f81d455 116 beep(0.0002,100);
umairaftab 7:1d691f81d455 117 break;//111110
umairaftab 7:1d691f81d455 118 }
umairaftab 7:1d691f81d455 119 righe.write(23);//10111
umairaftab 7:1d691f81d455 120 switch(colonne) {
umairaftab 7:1d691f81d455 121 case 31:
umairaftab 17:0ff7385db570 122 key = 25;
umairaftab 7:1d691f81d455 123 beep(0.0002,100);
umairaftab 7:1d691f81d455 124 break;//011111
umairaftab 7:1d691f81d455 125 case 47:
umairaftab 17:0ff7385db570 126 key = 26;
umairaftab 7:1d691f81d455 127 beep(0.0002,100);
umairaftab 7:1d691f81d455 128 break;//101111
umairaftab 7:1d691f81d455 129 case 55:
umairaftab 17:0ff7385db570 130 key = 27;
umairaftab 7:1d691f81d455 131 beep(0.0002,100);
umairaftab 7:1d691f81d455 132 break;//110111
umairaftab 7:1d691f81d455 133 case 59:
umairaftab 17:0ff7385db570 134 key = 28;
umairaftab 7:1d691f81d455 135 beep(0.0002,100);
umairaftab 7:1d691f81d455 136 break;//111011
umairaftab 7:1d691f81d455 137 case 61:
umairaftab 17:0ff7385db570 138 key = 29;
umairaftab 7:1d691f81d455 139 beep(0.0002,100);
umairaftab 7:1d691f81d455 140 break;//111101
umairaftab 7:1d691f81d455 141 case 62:
umairaftab 17:0ff7385db570 142 key = 30;
umairaftab 7:1d691f81d455 143 beep(0.0002,100);
umairaftab 7:1d691f81d455 144 break;//111110
umairaftab 7:1d691f81d455 145 }
umairaftab 7:1d691f81d455 146 righe.write(15);//01111
umairaftab 7:1d691f81d455 147 switch(colonne) {
umairaftab 7:1d691f81d455 148 case 31:
umairaftab 17:0ff7385db570 149 key = 31;
umairaftab 7:1d691f81d455 150 beep(0.0002,100);
umairaftab 7:1d691f81d455 151 break;//011111
umairaftab 7:1d691f81d455 152 case 47:
umairaftab 17:0ff7385db570 153 key = 32;
umairaftab 7:1d691f81d455 154 beep(0.0002,100);
umairaftab 7:1d691f81d455 155 break;//101111
umairaftab 7:1d691f81d455 156 case 55:
umairaftab 7:1d691f81d455 157
umairaftab 17:0ff7385db570 158 key = 33;
umairaftab 7:1d691f81d455 159 beep(0.0002,100);
umairaftab 7:1d691f81d455 160 break;//110111
umairaftab 7:1d691f81d455 161 case 59:
umairaftab 17:0ff7385db570 162 key = 34;
umairaftab 7:1d691f81d455 163 beep(0.0002,100);
umairaftab 7:1d691f81d455 164 break;//111011
umairaftab 7:1d691f81d455 165 case 61:
umairaftab 17:0ff7385db570 166 key = 35;
umairaftab 7:1d691f81d455 167 beep(0.0002,100);
umairaftab 7:1d691f81d455 168 break;//111101
umairaftab 7:1d691f81d455 169 case 62:
umairaftab 17:0ff7385db570 170 key = 36;
umairaftab 7:1d691f81d455 171 beep(0.0002,100);
umairaftab 7:1d691f81d455 172 break;//111110
umairaftab 7:1d691f81d455 173 }
umairaftab 17:0ff7385db570 174 key=key+50;
umairaftab 7:1d691f81d455 175 return key;
umairaftab 7:1d691f81d455 176 }
umairaftab 7:1d691f81d455 177
umairaftab 7:1d691f81d455 178