IOT Greenhouse
Dependencies: HC_SR04_Ultrasonic_Library PixelArrayBuffer Servo TSL2561 mbed-rtos mbed
Diff: support.h
- Revision:
- 0:7ebf4813882d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/support.h Tue May 01 13:59:00 2018 +0000 @@ -0,0 +1,100 @@ +#ifndef SUPPORT_H +#define SUPPORT_H +#include <string>11 +#include <sstream> + + +#define DATA_PIN p5 + +Mutex lightmutex; +Mutex watermutex; + +DigitalOut myled(LED1); +AnalogIn moisture(A0); +RawSerial pi(USBTX, USBRX); +Servo myservo(p24); +TH02 MyTH02 (p9,p10,TH02_I2C_ADDR<<1); +TSL2561 sensor(p28, p27); + +bool lights_on = false; +bool watering = false; +//float prev_height = 0.0f; +float plant_height = 0.0f; +float temperature = 0.0f; +float humidity = 0.0f; +float moisture_level = 0.0f; +float lux = 0.0f; + +//patch::to_string() +namespace patch +{ + template < typename T > std::string to_string( const T& n ) + { + std::ostringstream stm ; + stm << n ; + return stm.str() ; + } +} + +//function to water the plant +void water_plant() { + watering = true; + watermutex.lock(); + for(float p=0; p<1.5; p += 0.05) { + myservo = p; + wait(0.1); + } + wait(1); + for(float p=1.5; p>0.0; p -= 0.05) { + myservo = p; + wait(0.1); + } + watermutex.unlock(); + watering = false; +} + +//function to turn on/off neo-pixels +void switch_lights() { + DigitalIn(DATA_PIN, PullDown); + neopixel::PixelArray array(DATA_PIN); + uint16_t numPixels = 32; + neopixel::Pixel pixels[numPixels]; + if (lights_on){ + for (int i=0; i<numPixels; ++i){ + pixels[i].red = 255; + pixels[i].green = 255; + pixels[i].blue = 255; + } + } else { + for (int i=0; i<numPixels; ++i){ + pixels[i].red = 0; + pixels[i].green = 0; + pixels[i].blue = 0; + } + } + lightmutex.lock(); + array.update(pixels, numPixels); + lightmutex.unlock(); +} + + +void read_temp(){ + int iTemp; + MyTH02.startTempConv(true,true); + MyTH02.waitEndConversion(); + iTemp= MyTH02.getConversionValue(); + temperature = iTemp/10.0; +} + + +void read_humidity() { + int iRH; + MyTH02.startRHConv(true,true); + MyTH02.waitEndConversion(); + iRH= MyTH02.getConversionValue(); + humidity = iRH/10.0; +} + + + +#endif \ No newline at end of file