-
How to use AutoWats?
06/12/2017 at 15:53 • 0 commentsOpps! Didn't realise that the pipe connection broke...Apology!
-
Planti in the CASE + SOLAR PANEL CIRCUIT
06/12/2017 at 14:58 • 0 commentsI didn't use the 3d printed case due to the size of it. The soil moisture sensor wasn't fitting inside it.
-
Testing the WORKING of AutoWats (WATCH VIDEOS FULLY)
06/12/2017 at 12:01 • 0 commentsAutoWats LCD + APP working DEMO:
1. I'll be putting Planti in one of those cases you see in the right.
2. I''ll also be using one of those 2 solar panels.
3. I did not use the ESP8266 module for the time being and instead used the HC-06 bluetooth module....I Can also use the ESP module.....but due to lack of time whivh was caudes by the late arrival of my order.....I didn't get time to instlall, flast and uodate the firmware of ESP module....I'll surely be using ESP in the FUTURE UPDATATES...thanks a tonne all ...LUV U ALL 'MAKERS' and 'HACKERS'.
4. I have add a protection to Tapo for increasing it's durability.
*There was an error in the app and the 'Soil Stats' label wasn't getting updated...I have fixed the error in my latest apk ...you can download it in the files section
-Apology
--------------------------------------------------------------------------------------------------------------------------------------------
The End of THIS LOG.....more to go....
--------------------------------------------------------------------------------------------------------------------------------------------
*Just for fun project: FARTING CHAIR [And yea That's me! :) ]
Happy April Fool's Day Hackers! (belated)
-
Tapo circuit COMPLETED! + Tested + Programmed
06/12/2017 at 10:47 • 0 comments//----------------------------------------------------------------------------------------------------- // LIBRARIES //----------------------------------------------------------------------------------------------------- #include <VirtualWire.h> #include <LiquidCrystal_I2C.h> #include <Wire.h> //----------------------------------------------------------------------------------------------------- // VARIABLES //----------------------------------------------------------------------------------------------------- const int led=13; const int receive_pin = 2; char temperatureChar[10]; char humidityChar[10]; //----------------------------------------------------------------------------------------------------- // DATA STRUCTURE //----------------------------------------------------------------------------------------------------- struct package //Struct Type Name { int temperature = 0; //Struct Member int humidity = 0; //Struct Member int soil =0; }; int SV = 40; int WT = 22; int smVal = 0; LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //LCD Structure typedef struct package Package; //Define name of Package data; //Object name //----------------------------------------------------------------------------------------------------- // Signs //----------------------------------------------------------------------------------------------------- byte droplet[8] = //icon for droplet { B00100, B00100, B01010, B01010, B10001, B10001, B10001, B01110, }; byte thermometer[8] = //icon for thermometer { B00100, B01010, B01010, B01110, B01110, B11111, B11111, B01110 }; byte WTermo[8] = { B11111, B10001, B10001, B11111, B11111, B00100, B00100, B00100 }; //----------------------------------------------------------------------------------------------------- // SETUP //----------------------------------------------------------------------------------------------------- void setup() { Serial.begin(9600); //start serial comms for output pinMode(led,OUTPUT); //LED set for output pinMode(SV, OUTPUT); pinMode(WT,INPUT); vw_set_rx_pin(receive_pin); //initialize receiver on pin D12 vw_setup(500); // Bits per sec vw_rx_start(); // Start the receiver PLL running lcd.begin(16,2); lcd.backlight(); // finish with backlight on lcd.createChar(1, thermometer); lcd.createChar(2, droplet); lcd.createChar(3, WTermo); lcd.clear(); // clear the screen } //----------------------------------------------------------------------------------------------------- // MAIN LOOP //----------------------------------------------------------------------------------------------------- void loop() { uint8_t buf[sizeof(data)]; //unsigned int 8 bit called buf with size specified in Struct member data uint8_t buflen = sizeof(data); //unsigned int 8 bit called buflen with size specified in Struct member data if (vw_have_message()) //Check for activity { smVal = map(data.soil, 0, 1023, 0, 255); int WTemp = digitalRead(WT); int WWTemp = map(WTemp, 0, 1023, 0, 255); digitalWrite(led,HIGH); //flash LED vw_get_message(buf, &buflen); //get the data, store in variable buf with length of bufflen memcpy(&data,&buf,buflen); //memcpy ( void * destination, const void * source, size_t num ); Serial.print((int)(data.temperature*1.8)+32); Serial.print("|"); Serial.print((int)data.humidity); Serial.print("|"); Serial.println((int)smVal); Serial.print("|"); Serial.println((int)WTemp); Serial.print("|"); if (smVal <= 89) { Serial.print("Done Watering!"); Serial.print("|"); } else if (smVal > 89) { Serial.print("Watering Now.."); Serial.print("|"); } lcd.clear(); lcd.print("TEMP"); lcd.setCursor(6, 0); lcd.write(1); lcd.setCursor(8, 0); lcd.print((data.temperature*1.8)+32); lcd.write(0b11011111); lcd.print("C"); lcd.setCursor(0,1); lcd.print("HUMI"); lcd.setCursor(6, 1); lcd.write(2); lcd.setCursor(8, 1); lcd.print(data.humidity); lcd.print("%"); delay(2000); if (smVal <= 89) { lcd.clear(); lcd.setCursor(0,0); lcd.print("WATER TEMP"); lcd.setCursor(11, 0); lcd.write(3); lcd.setCursor(13, 0); lcd.print(WTemp); lcd.write(0b11011111); lcd.print("C"); lcd.setCursor(0,1); lcd.print("Watering now :)"); if ((WTem*1.8)+32) > 74) { digitalWrite(SV, HIGH); //Valve Close delay(10000); } else if ((WTem*1.8)+32) < 61) {
digitalWrite(SV, HIGH); //Valve Close delay(10000); } else { digitalWrite(SV, LOW); //Valve Opendelay(3000); }
else if (smVal > 89) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Water Temp"); lcd.setCursor(12, 0); lcd.write(3); lcd.setCursor(14, 0); lcd.print(WTemp); lcd.write(0b11011111); lcd.print("C"); lcd.setCursor(0,1); lcd.print("Done Watering"); digitalWrite(SV, HIGH); //Valve close delay(2000); } } } -
Planti circuit COMPLETED! + Tested + Programmed
06/12/2017 at 10:41 • 0 comments//----------------------------------------------------------------------------------------------------- // LIBRARIES //----------------------------------------------------------------------------------------------------- #include <VirtualWire.h> //Library for the Radios #include "DHT.h" //Library for the DHT11 Sensor //----------------------------------------------------------------------------------------------------- // DEFINES //----------------------------------------------------------------------------------------------------- #define DHTPIN 12 //DHT Output on D4 #define DHTTYPE DHT11 //DHT Type (11,21,22) \ //----------------------------------------------------------------------------------------------------- // VARIABLES //----------------------------------------------------------------------------------------------------- const int led_pin = 13; //LED on D13 const int transmit_pin = 2; //Radio input on D12 //----------------------------------------------------------------------------------------------------- // DATA STRUCTURES //----------------------------------------------------------------------------------------------------- // If you are not familiar with Data Structures visit this link http://www.cplusplus.com/doc/tutorial/structures/ struct package //Struct Type Name { int temperature ; //Struct Member int humidity ; //Struct Member int rain; int soil; }; typedef struct package Package; //Define name of Package data; //Object name //----------------------------------------------------------------------------------------------------- // LIBRARY CALLS //----------------------------------------------------------------------------------------------------- DHT dht(DHTPIN, DHTTYPE); //Create instance of DHT called dht //----------------------------------------------------------------------------------------------------- // SETUP //----------------------------------------------------------------------------------------------------- void setup() { vw_set_tx_pin(transmit_pin); //initialize radio on D12 vw_set_ptt_inverted(true); // Required for DR3100 vw_setup(500); // Bits per sec pinMode(led_pin, OUTPUT); //set LED for output pinMode(A0, INPUT); pinMode(A1, INPUT); } //----------------------------------------------------------------------------------------------------- // MAIN LOOP //----------------------------------------------------------------------------------------------------- void loop() { digitalWrite(led_pin, HIGH); // Flash a light to show transmitting readSensor(); //Call readSensor function vw_send((uint8_t *)&data, sizeof(data)); //send data (struct array) vw_wait_tx(); // Wait until the whole message is gone digitalWrite(led_pin, LOW); //LED off delay(2000); //wait 2 seconds } //----------------------------------------------------------------------------------------------------- // FUNCTIONS //----------------------------------------------------------------------------------------------------- void readSensor() //readSensor function { dht.begin(); //initialize dht delay(1000); //wait 1 second data.humidity = dht.readHumidity(); //get humidity & store in Struct variable data.humidity data.temperature = dht.readTemperature(); //get temperature & store in Struct variable data.temperature data.soil = analogRead(A0); data.rain = analogRead(A1); }
-
All components arrived on june 6 2k17
06/12/2017 at 10:21 • 0 comments -
Done soldering my solar panel to the lithium charger
06/12/2017 at 10:17 • 0 comments