Best Example/best-home0000755000000000000000000000000014315312756012030 5ustar Best Example/best-home/best-home.ino0000755000000000000000000001334613741576444014523 0ustar #include #include #include /* ESP & Blynk */ #include #include #include // pewaktu #define OUT1 D7 //output PING #define OUT2 D8 // output PIR #define OUT3 D4 // output SUHU (on pompa) #define PIR D5 #define TRIGGER D2 #define ECHO D1 //#define BLYNK_PRINT Serial // Comment this out to disable prints and save space // GRUP SENSOR dht #define DHTPIN D3 // Digital pin 3 sensor suhu // Uncomment whatever type you're using! #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321 //#define DHTTYPE DHT21 // DHT 21, AM2301 DHT dht(DHTPIN, DHTTYPE); // sensor dht char auth[] = "r_gH7mO92csgjU4jgJfFRbBZd3txreZN"; /* WiFi credentials */ char ssid[] = "wildan"; char pass[] = "99887766"; bool pirValue = LOW; int timezone = 8 * 3600; // time zone int dst = 0; int jam; int menit; unsigned long waktuSebelumPIR=0; bool statusPIR=LOW; bool simpanPIR=LOW; void setup() { //Serial.begin(9600); Blynk.begin(auth, ssid, pass); //Blynk.virtualWrite(V6, millis() / 1000); //timer.setInterval(1000L, kirimData); pinMode(PIR, INPUT); pinMode(OUT1, OUTPUT); pinMode(OUT2, OUTPUT); pinMode(OUT3, OUTPUT); pinMode(TRIGGER, OUTPUT); pinMode(ECHO, INPUT); pinMode(BUILTIN_LED, OUTPUT); configTime(timezone, dst, "pool.ntp.org","time.nist.gov"); Serial.println("\nWaiting for Internet time"); while(!time(nullptr)){ Serial.print("*"); delay(1000); } Serial.println("\nTime response....OK"); dht.begin(); // start sensor suhu lembab } // Setup a function to be called every second //timer.setInterval(1000L, sendSensor); void loop() { long duration, distance; digitalWrite(TRIGGER, LOW); delayMicroseconds(2); digitalWrite(TRIGGER, HIGH); delayMicroseconds(10); digitalWrite(TRIGGER, LOW); duration = pulseIn(ECHO, HIGH); distance = (duration/2) / 29.1; //Blynk.virtualWrite(V10, distance); if (distance <= 20) { digitalWrite(OUT1, HIGH); //Blynk.virtualWrite(V10, 255); } else { digitalWrite(OUT1, LOW); //Blynk.virtualWrite(V10, 100); } //Serial.print(distance); //Serial.println("Centimeter:"); Blynk.virtualWrite(V5, 300-distance); //millis pir pirValue = digitalRead(PIR); unsigned long waktuSekarangPIR=millis(); // milis - delay tanpa mempenaruhi timing yg lain // Serial.print("waktu sekarang = "); // Serial.println(waktuSekarangPIR); // Serial.print("waktu sebelum = "); // Serial.print(waktuSebelumPIR); if (digitalRead(PIR)==HIGH) { waktuSebelumPIR=millis(); //Serial.println("ADA ORANG BOS!!"); Blynk.virtualWrite(V18, 255); } else { //Serial.println("SEDANG SENDIRI"); Blynk.virtualWrite(V18, 100); } if ((millis() - waktuSebelumPIR) < 10000) { Blynk.virtualWrite(V8, "ADA ORANG BOS!!"); digitalWrite(OUT2, HIGH); } else { Blynk.virtualWrite(V8, "SEDANG SENDIRI"); digitalWrite(OUT2, LOW); } // Serial.print(" Gerak : "); // Serial.println(pirValue); //timer.run(); // Initiates SimpleTimer // TIMER POMPA time_t now = time(nullptr); /* mengambil time*/ struct tm* p_tm = localtime(&now); jam=(p_tm->tm_hour); // ambil jam menit=(p_tm->tm_min); // ambil menit if (jam == 23 && menit == 12) { //aksi sesuai jam Blynk.virtualWrite(V13, "SEDANG NYEMBUR...."); digitalWrite(OUT3, HIGH); } else if (jam == 23 && menit == 20) { Blynk.virtualWrite(V13, "SEDANG NYEMBUR...."); digitalWrite(OUT3, HIGH); } else { Blynk.virtualWrite(V13, "ISTIRAHAT BOS!!"); digitalWrite(OUT3, LOW); } // DHT float h = dht.readHumidity(); float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return; } // You can send any value at any time. // Please don't send more that 10 values per second. Blynk.virtualWrite(V11, h); //V5 is for Humidity Blynk.virtualWrite(V12, t); //V6 is for Temperature // DHT delay(500); Blynk.run(); // timer.run(); } /*************************************************** * Send Sensor data to Blynk **************************************************/ /* void kirimData() { pirValue = digitalRead(PIR); long duration, distance; digitalWrite(TRIGGER, LOW); delayMicroseconds(2); digitalWrite(TRIGGER, HIGH); delayMicroseconds(10); digitalWrite(TRIGGER, LOW); duration = pulseIn(ECHO, HIGH); distance = (duration/2) / 29.1; if (distance <= 20) { digitalWrite(OUT1, HIGH); Blynk.virtualWrite(V4, 255); } else { digitalWrite(OUT1, LOW); Blynk.virtualWrite(V4, 0); } Serial.print(distance); Serial.println("Centimeter:"); Blynk.virtualWrite(V5, distance); Blynk.virtualWrite(V8, pirValue); } void sendSensor() // kirim data sensor lembab suhu { float h = dht.readHumidity(); float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return; } // You can send any value at any time. // Please don't send more that 10 values per second. Blynk.virtualWrite(V11, h); //V5 is for Humidity Blynk.virtualWrite(V12, t); //V6 is for Temperature } //jam Serial.println(jam); Serial.print(p_tm->tm_hour); Serial.print(":"); Serial.print(p_tm->tm_min); Serial.print(":"); Serial.println(p_tm->tm_sec); */ Best Example/best-smart0000755000000000000000000000000014315312531012215 5ustar Best Example/best-smart/best-smart.ino0000755000000000000000000002631214071443115015075 0ustar //#define BLYNK_PRINT Serial // disable baris ini jika sudah fix #include // lib wifi #include // lib blynk #include // lib sensor DHT11 #include #include //lib cek realtime waktu // DEFINISIKAN PIN #define PIR D1 // triger ping (5v) #define DHTPIN D5 // input sensor DHT #define RELkabut D6 // output Relay-1 #define RELteras D7 // output Relay-2 #define RELpir D9 // output Relay-2 #define DHTTYPE DHT11 // jenis sensor DHT 11 DHT dht(DHTPIN, DHTTYPE); BlynkTimer timer; BlynkTimer timerPIR; BlynkTimer timerSEND; BlynkTimer timerCek; WidgetLED led2(V6); // PREDEFINE long duration; int distance; bool Connected2Blynk = false; int statusnya = 0; int lamaON = 0; int lamaOFF = 0; int statusMalam = 0; //int air = 1; bool pirValue = LOW; int timezone = 8 * 3600; // time zone int dst = 0; int jam; int menit; unsigned long waktuSebelumPIR=0; bool statusPIR=LOW; bool simpanPIR=LOW; // PREDEFINE TIMER SLIDER int WM1=3; int timerON=5; // Global variable used in Slider widget and runEveryMinute() int timerOFF=60; // Global variable used in Slider widget and runEveryMinute() int bacasuhu,setsuhu=28; int bacahumap,sethumap=70; int x, y; int CounterOn = 0; int CounterOff = 0; int ledStatus = 0; //PASTE KODE TOKEN char auth[] = "A5BWvt9B0hFHtssytdYQ_Giaek_RW1dK"; // char ssid[] = "wildan"; // ssid untuk konek internet char pass[] = "99887766"; // pass ssid //------- start ambil nilai slider time mist BLYNK_WRITE(V3) { // add a slider to your project on V0 range 0 to 120 (seconds) x = param.asInt(); // set variable as Slider value timerON = x; } BLYNK_WRITE(V4) { // add a slider to your project on V1 range 0 to 120 (seconds) y = param.asInt(); // set variable as Slider value timerOFF = y; } BLYNK_WRITE(V11) { // add a slider to your project on V1 range 0 to 120 (seconds) bacahumap = param.asInt(); // set variable as Slider value sethumap = bacahumap; } BLYNK_WRITE(V12) { // add a slider to your project on V1 range 0 to 120 (seconds) bacasuhu= param.asInt(); // set variable as Slider value setsuhu = bacasuhu; // } } //--------- end ambil nilai slider time mist //----start membuat blink indikator //void statusLED() // { // digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) // delay(200); // wait for a second // digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW // delay(100); // } //----end membuat blink indikator //----- start kontrol misting void led_control() { if ((CounterOn > 0) && (ledStatus == 0))// && (siram == 1)) // && (air==1)) { // digitalWrite(WM1,HIGH); //write to pin to turn the LED on. //Serial.print(minute()); //Serial.print(": LED on\n"); //Blynk.virtualWrite(V6, 150); // digitalWrite(REL2, LOW); // RELkabut HIGH (dibalik) digitalWrite(RELkabut, LOW); // RELkabut HIGH (dibalik) ledStatus = 1; CounterOff = 0; } if ((CounterOn > 0) && (ledStatus == 1)) { CounterOn = (CounterOn - 1); Blynk.virtualWrite(V8, CounterOn); //countdown timeON led2.setValue(250); } if ((CounterOff == 0) && (CounterOn == 0) && (ledStatus == 1)) // && (air==1)) { CounterOff = timerOFF; } if ((CounterOff > 0) && (ledStatus == 1))// && (siram == 1)) // && (air==1)) { //digitalWrite(WM1,LOW); //write to pin to turn the LED off. //Serial.print(minute()); //Serial.print(": LED off\n"); digitalWrite(RELkabut, HIGH); // RELkabut LOW (dibalik) // digitalWrite(REL2, HIGH); // RELkabut LOW (dibalik) Blynk.virtualWrite(V6, 10); ledStatus = 0; CounterOn = 0; } if ((CounterOff > 0) && (ledStatus == 0)) { CounterOff = (CounterOff - 1); Blynk.virtualWrite(V9, CounterOff); //countdown timeoff } if ((CounterOff == 0) && (CounterOn == 0) && (ledStatus == 0)) { CounterOn = timerON+1; } } //----- end kontrol misting //----start dht sensor void sendSensor() { //--- START SEND SENSOR DHT float h = dht.readHumidity(); float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit if (isnan(h) || isnan(t)) { Serial.println("sensor gak kepasang Failed to read from DHT sensor!"); Blynk.virtualWrite(V2, "KEGAGALAN SENSOR"); return; } // You can send any value at any time. // Please don't send more that 10 values per second. //Serial.println(h); //Serial.println(t); digitalWrite(D4, HIGH); Blynk.virtualWrite(V2, "SENSOR OK!"); Blynk.virtualWrite(V0, t); Blynk.virtualWrite(V1, h); Blynk.virtualWrite(V3,timerON); Blynk.virtualWrite(V4,timerOFF); Blynk.virtualWrite(V11,sethumap); Blynk.virtualWrite(V12,setsuhu); //----ping end if (h > sethumap){ //&& (jarak<100)){ // menyalakan misting jika lembab <70 // siram = 1; //air=1; Blynk.virtualWrite(V10, "MISTING.."); } // else // if (jarak >=100) { // Blynk.virtualWrite(V10, "AIR HABIS, OFF"); // digitalWrite(RELkabut, HIGH); //RELkabut LOW (dibalik) // digitalWrite(REL2, HIGH); //RELkabut LOW (dibalik) // Blynk.virtualWrite(V6, 10); // CounterOn = 0; // CounterOff = 0; // siram=0; // //air=0; // } else if (h <= sethumap) { CounterOn = 0; CounterOff = 0; Blynk.virtualWrite(V10, "KELEMBABAN CUKUP, OFF"); digitalWrite(RELkabut, HIGH); //RELkabut LOW (dibalik) // digitalWrite(REL2, HIGH); //RELkabut LOW (dibalik) Blynk.virtualWrite(V6, 10); // siram=0; //air = 0; } } //--- END SEND SENSOR DHT void CheckConnection(){ Connected2Blynk = Blynk.connected(); if(!Connected2Blynk){ //Serial.println("Gak bisa konek ke Blynk server"); Blynk.connect(3333); // timeout set to 10 seconds and then continue without Blynk } else{ //Serial.println("Wes..Connected to Blynk server"); } //------- cek koneksi /*Serial.println(""); Serial.print("hostname :"); Serial.println( WiFi.hostname()); Serial.print("Status: "); Serial.println(WiFi.status()); Serial.print("IP: "); Serial.println(WiFi.localIP()); Serial.print("Subnet: "); Serial.println(WiFi.subnetMask()); Serial.print("Gateway: "); Serial.println(WiFi.gatewayIP()); Serial.print("SSID: "); Serial.println(WiFi.SSID()); Serial.print("Signal: "); Serial.println(WiFi.RSSI()); Serial.print("Networks: "); Serial.println(WiFi.scanNetworks()); Serial.println("Connected to wifi"); Serial.println("Starting TCP Server"); */ // server.begin( ); // start TCP server } void LampuPir(){ time_t now = time(nullptr); /* mengambil time*/ struct tm* p_tm = localtime(&now); jam=(p_tm->tm_hour); // ambil jam menit=(p_tm->tm_min); // ambil menit // TIMER LAMPU TERAS if (jam >= 18 || jam <= 6) { //aksi sesuai jam //Blynk.virtualWrite(V13, "LAMPU senja menyala"); Blynk.virtualWrite(V13, 255); digitalWrite(RELteras, LOW); // Serial.print("MALAM"); statusMalam=1; } else { //Blynk.virtualWrite(RELteras, "lampu terasa mati"); Blynk.virtualWrite(V13, 50); digitalWrite(RELteras, HIGH); // Serial.print("SIANG"); statusMalam=0; } //Serial.print(jam); //Serial.println(menit); //millis pir - nyala lampu utama teras jika malam dan ada orang pirValue = digitalRead(PIR); //Serial.println(pirValue); unsigned long waktuSekarangPIR=millis(); // milis - delay tanpa mempenaruhi timing yg lain // jika ada org siang hari if (pirValue==1){ //&& statusMalam == 0) { // start hitung mundur milis waktuSebelumPIR=waktuSekarangPIR; // Serial.println("ADA ORANG BOS!! ----------siang"); // Blynk.virtualWrite(V18, 255); } // jika ada orang malam hari // else if ((pirValue==1)&& statusMalam ==1) { // waktuSebelumPIR=waktuSekarangPIR; // Serial.println("ADA ORANG BOS!! malam"); // Blynk.virtualWrite(V18, 255); //digitalWrite(RELpir, HIGH); //} else { // Serial.println("SEPI"); Blynk.virtualWrite(V18, 50); //digitalWrite(RELpir, LOW); } if (((waktuSekarangPIR - waktuSebelumPIR) < 150000) && (statusMalam = 1)) { //waktuSebelumPIR=millis(); Blynk.virtualWrite(V7, "Ada Tamu malam!"); Blynk.virtualWrite(V18, 255); digitalWrite(RELpir, LOW); // Serial.println("Ada Tamu.."); } else if (((waktuSekarangPIR - waktuSebelumPIR) < 150000) && (statusMalam = 0)) { Blynk.virtualWrite(V7, "Ada Tamu siang!"); Blynk.virtualWrite(V18, 255); digitalWrite(RELpir, HIGH); // digitalWrite(RELpir, LOW); } else { Blynk.virtualWrite(V7, "Aman..."); Blynk.virtualWrite(V18, 50); digitalWrite(RELpir, HIGH); // Serial.println("SEPI"); } } void setup() { if (timerON== 0) { timerON=1; } if (timerOFF== 0) { timerOFF=1; } // pinMode(triggerPin, OUTPUT); // pinMode(echoPin, INPUT); pinMode(LED_BUILTIN, OUTPUT); pinMode(RELkabut, OUTPUT); pinMode(RELpir, OUTPUT); pinMode(RELteras, OUTPUT); digitalWrite(RELkabut, HIGH); digitalWrite(RELpir,HIGH); digitalWrite(RELteras,HIGH); // Serial.begin(9600); // Debug console (matikan jika sudah fix) // Serial.println(WiFi.macAddress()); // Blynk.begin(auth, ssid, pass, "103.133.222.53",9443); // https://34.101.75.215/ server GCP bestblynk (penulisan boleh spt ini (diserial port tampil, buat troubleshoot) WiFi.begin(ssid, pass); Blynk.config(auth,"103.133.222.53",8080); // port untuk nodemcu konek ke server = 8080, port app blynk = 8443 // Blynk.config(auth,"103.133.222.53"); Serial.println(WiFi.macAddress()); Blynk.connect(3333); // timeout set to 10 seconds and then continue without Blynk Blynk.syncAll(); //This will sync the last state of your device dht.begin(); configTime(timezone, dst, "pool.ntp.org","time.nist.gov"); //Serial.println("\nWaiting for Internet time"); while(!time(nullptr)){ Serial.print("*"); delay(1000); } //Serial.println("\nTime response....OK"); // end koneksi timerSEND.setInterval(1000L, sendSensor); // timer kirim data sensor tiap 1s //timerSEND.setInterval(1000L, tandonPIR); CounterOn = timerON+1; timerPIR.setInterval(1000L, LampuPir); // timer cek PIR timer.setInterval(2000L, led_control); //timer 60s = 60000L untuk SATUAN menit timer 2 slider, jika ingin SATUAN detik ganti 1000L kirim data sensor DHT timerCek.setInterval(11000L, CheckConnection); // cek konekssi } //--------------LOOOOOOOOOOOOOOOP void loop() { timerCek.run(); if(Connected2Blynk=true){ Blynk.run(); } //timerBLINK.run(); //Blynk.run(); timerSEND.run(); timerPIR.run(); timer.run(); //Serial.println(timerON); //Serial.println(timerOFF); //Serial.println(sethumap); //Serial.println(setsuhu); } Best Example/gh-smekma0000755000000000000000000000000014315312531012005 5ustar Best Example/gh-smekma/gh-smekma.ino0000755000000000000000000003113214107652246014460 0ustar //#define BLYNK_PRINT Serial // disable baris ini jika sudah fix #include // lib wifi #include // lib blynk #include // lib sensor DHT11 #include #include //lib cek realtime waktu // DEFINISIKAN PIN //#define TANAH D2 // triger ping (5v) #define DHTPIN D1 // input sensor DHT #define RELkabut D6 // output Relay-1 #define RELTanah D7 // output Relay-2 //#define RELpir D9 // output Relay-2 #define DHTTYPE DHT11 // jenis sensor DHT 11 DHT dht(DHTPIN, DHTTYPE); BlynkTimer timer; BlynkTimer timerTANAH; BlynkTimer timerSEND; BlynkTimer timerCek; WidgetLED led2(V6); // PREDEFINE int analogTanah = A0; long duration; int distance; bool Connected2Blynk = false; int statusnya = 0; int lamaON = 0; int lamaOFF = 0; int statusMalam = 0; //int air = 1; bool TanahValue = LOW; int timezone = 8 * 3600; // time zone int dst = 0; int jam; int menit; unsigned long waktuSebelumPIR=0; //bool statusPIR=LOW; //bool simpanPIR=LOW; // PREDEFINE TIMER SLIDER int WM1=3; int timerON=5; // Global variable used in Slider widget and runEveryMinute() int timerOFF=30; // Global variable used in Slider widget and runEveryMinute() int bacasuhu,setsuhu=28; int bacahumap,sethumap=70; int bacatanah,settanah=800; int x, y; int CounterOn = 0; int CounterOff = 0; int ledStatus = 0; //PASTE KODE TOKEN char auth[] = "LgJUOspAmLYhhHbI0mBM79tKj1YDyCqi"; // char ssid[] = "IoT"; // ssid untuk konek internet char pass[] = "99887766"; // pass ssid //------- start ambil nilai slider time mist BLYNK_WRITE(V3) { // add a slider to your project on V0 range 0 to 120 (seconds) x = param.asInt(); // set variable as Slider value timerON = x;} BLYNK_WRITE(V4) { // add a slider to your project on V1 range 0 to 120 (seconds) y = param.asInt(); // set variable as Slider value timerOFF = y; } BLYNK_WRITE(V11) { // add a slider to your project on V1 range 0 to 120 (seconds) bacahumap = param.asInt(); // set variable as Slider value sethumap = bacahumap; } BLYNK_WRITE(V12) { // add a slider to your project on V1 range 0 to 120 (seconds) bacasuhu= param.asInt(); // set variable as Slider value setsuhu = bacasuhu; // } } BLYNK_WRITE(V16) { // add a slider to your project on V1 range 0 to 120 (seconds) bacatanah= param.asInt(); // set variable as Slider value settanah = bacatanah; // } } // digitalWrite(RELAY_PIN_3, relay3State); //--------- end ambil nilai slider time mist //----start membuat blink indikator //void statusLED() // { // digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) // delay(200); // wait for a second // digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW // delay(100); // } //----end membuat blink indikator //----- start kontrol misting void led_control() { if ((CounterOn > 0) && (ledStatus == 0))// && (siram == 1)) // && (air==1)) { // digitalWrite(WM1,HIGH); //write to pin to turn the LED on. //Serial.print(minute()); //Serial.print(": LED on\n"); //Blynk.virtualWrite(V6, 150); // digitalWrite(REL2, LOW); // RELkabut HIGH (dibalik) digitalWrite(RELkabut, LOW); // RELkabut HIGH (dibalik) ledStatus = 1; CounterOff = 0; } if ((CounterOn > 0) && (ledStatus == 1)) { CounterOn = (CounterOn - 1); Blynk.virtualWrite(V8, CounterOn); //countdown timeON led2.setValue(250); } if ((CounterOff == 0) && (CounterOn == 0) && (ledStatus == 1)) // && (air==1)) { CounterOff = timerOFF; } if ((CounterOff > 0) && (ledStatus == 1))// && (siram == 1)) // && (air==1)) { //digitalWrite(WM1,LOW); //write to pin to turn the LED off. //Serial.print(minute()); //Serial.print(": LED off\n"); digitalWrite(RELkabut, HIGH); // RELkabut LOW (dibalik) // digitalWrite(REL2, HIGH); // RELkabut LOW (dibalik) Blynk.virtualWrite(V6, 10); ledStatus = 0; CounterOn = 0; } if ((CounterOff > 0) && (ledStatus == 0)) { CounterOff = (CounterOff - 1); Blynk.virtualWrite(V9, CounterOff); //countdown timeoff } if ((CounterOff == 0) && (CounterOn == 0) && (ledStatus == 0)) { CounterOn = timerON+1; } } //----- end kontrol misting //----start dht sensor void sendSensor() { //--- START SEND SENSOR DHT float h = dht.readHumidity(); float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit if (isnan(h) || isnan(t)) { Serial.println("sensor gak kepasang Failed to read from DHT sensor!"); Blynk.virtualWrite(V2, "SENSOR FAIL"); return; } // You can send any value at any time. // Please don't send more that 10 values per second. Serial.println(h); Serial.println(t); digitalWrite(D4, HIGH); Blynk.virtualWrite(V2, "SENSOR OK!"); Blynk.virtualWrite(V0, t); Blynk.virtualWrite(V1, h); Blynk.virtualWrite(V3,timerON); Blynk.virtualWrite(V4,timerOFF); Blynk.virtualWrite(V11,sethumap); Blynk.virtualWrite(V12,setsuhu); //----ping end if (h < sethumap) {// || t > setsuhu){ //&& (jarak<100)){ // menyalakan misting jika lembab <70 // siram = 1; //air=1; Blynk.virtualWrite(V10, "MISTING ON..."); } // else // if (jarak >=100) { // Blynk.virtualWrite(V10, "AIR HABIS, OFF"); // digitalWrite(RELkabut, HIGH); //RELkabut LOW (dibalik) // digitalWrite(REL2, HIGH); //RELkabut LOW (dibalik) // Blynk.virtualWrite(V6, 10); // CounterOn = 0; // CounterOff = 0; // siram=0; // //air=0; // } else if (h >= sethumap){ // //|| t <= setsuhu) { CounterOn = 0; CounterOff = 0; Blynk.virtualWrite(V8, CounterOn); Blynk.virtualWrite(V9, CounterOff); Blynk.virtualWrite(V10, "CUKUP, MISTING OFF"); digitalWrite(RELkabut, HIGH); //RELkabut LOW (dibalik) Blynk.virtualWrite(V6, 10); } } //--- END SEND SENSOR DHT void CheckConnection(){ Connected2Blynk = Blynk.connected(); if(!Connected2Blynk){ Serial.println("GAK BISA konek ke Blynk server"); Blynk.connect(3333); // timeout set to 10 seconds and then continue without Blynk } else{ Serial.println("Wes..Mantap. Sudah Konek ke Blynk server"); } /* //------- cek koneksi HGFSX ` Serial.println(""); Serial.print("hostname :"); Serial.println( WiFi.hostname()); Serial.print("Status: "); Serial.println(WiFi.status()); Serial.print("IP: "); Serial.println(WiFi.localIP()); Serial.print("Subnet: "); Serial.println(WiFi.subnetMask()); Serial.print("Gateway: "); Serial.println(WiFi.gatewayIP()); Serial.print("SSID: "); Serial.println(WiFi.SSID()); Serial.print("Signal: "); Serial.println(WiFi.RSSI()); Serial.print("Networks: "); Serial.println(WiFi.scanNetworks()); Serial.println("Connected to wifi"); Serial.println("Starting TCP Server"); // server.begin( ); // start TCP server */ } void SenTanah(){ //TanahValue = digitalRead(TANAH); int nilaiSensor = analogRead(analogTanah); Serial.print("tanah value "); Serial.println(TanahValue); Serial.println(nilaiSensor); time_t now = time(nullptr); Blynk.virtualWrite(V16,settanah); // mengambil time struct tm* p_tm = localtime(&now); jam=(p_tm->tm_hour); // ambil jam menit=(p_tm->tm_min); // ambil menit // TIMER LAMPU TERAS Blynk.virtualWrite(V13, nilaiSensor); if (jam >= 19 || jam <= 6 ){ // && nilaiSensor>850 ) { //jika malam dan tanah basah if (nilaiSensor>settanah) { digitalWrite(RELTanah, LOW); // Blynk.virtualWrite(V14, "KERING"); Blynk.virtualWrite(V15, 200); Serial.println("tanah kering malam siram"); } else { //if (TanahValue=0){ digitalWrite(RELTanah, HIGH); //Blynk.virtualWrite(V14, "BASAH"); Blynk.virtualWrite(V15, 10); Serial.println("tanah basah malam gak siram"); }} } /*if (TanahValue>0){ Blynk.virtualWrite(V14, "KERING"); } else { Blynk.virtualWrite(V14, "BASAH"); } } */ /* void LampuPir(){ time_t now = time(nullptr); // mengambil time struct tm* p_tm = localtime(&now); jam=(p_tm->tm_hour); // ambil jam menit=(p_tm->tm_min); // ambil menit // TIMER LAMPU TERAS if (jam >= 19 || jam <= 6) { //aksi sesuai jam //Blynk.virtualWrite(V13, "LAMPU senja menyala"); Blynk.virtualWrite(V13, 255); digitalWrite(RELteras, LOW); // Serial.print("MALAM"); statusMalam=1; } else { //Blynk.virtualWrite(RELteras, "lampu terasa mati"); Blynk.virtualWrite(V13, 50); digitalWrite(RELteras, HIGH); // Serial.print("SIANG"); statusMalam=0; } //Serial.print(jam); //Serial.println(menit); //millis pir - nyala lampu utama teras jika malam dan ada orang pirValue = digitalRead(TANAH); Serial.println(pirValue); unsigned long waktuSekarangPIR=millis(); // milis - delay tanpa mempenaruhi timing yg lain // jika ada org siang hari if (pirValue==1){ //&& statusMalam == 0) { // start hitung mundur milis waktuSebelumPIR=waktuSekarangPIR; Serial.println("ADA ORANG BOS!! ----------siang"); // Blynk.virtualWrite(V18, 255); } // jika ada orang malam hari // else if ((pirValue==1)&& statusMalam ==1) { // waktuSebelumPIR=waktuSekarangPIR; // Serial.println("ADA ORANG BOS!! malam"); // Blynk.virtualWrite(V18, 255); //digitalWrite(RELpir, HIGH); //} else { // Serial.println("SEPI"); Blynk.virtualWrite(V18, 50); //digitalWrite(RELpir, LOW); } if (((waktuSekarangPIR - waktuSebelumPIR) < 100000) && (statusMalam = 1)) { //waktuSebelumPIR=millis(); Blynk.virtualWrite(V7, "Ada Tamu malam!"); Blynk.virtualWrite(V18, 255); digitalWrite(RELpir, LOW); // Serial.println("Ada Tamu.."); } else if (((millis() - waktuSebelumPIR) < 100000) && (statusMalam = 0)) { Blynk.virtualWrite(V7, "Ada Tamu siang!"); Blynk.virtualWrite(V18, 255); digitalWrite(RELpir, HIGH); // digitalWrite(RELpir, LOW); } else { Blynk.virtualWrite(V7, "Aman..."); Blynk.virtualWrite(V18, 50); digitalWrite(RELpir, HIGH); // Serial.println("SEPI"); } } */ void setup() { if (timerON== 0) { timerON=1; } if (timerOFF== 0) { timerOFF=1; } // pinMode(triggerPin, OUTPUT); // pinMode(echoPin, INPUT); pinMode(LED_BUILTIN, OUTPUT); pinMode(RELkabut, OUTPUT); // pinMode(RELpir, OUTPUT); pinMode(RELTanah, OUTPUT); digitalWrite(RELkabut, HIGH); digitalWrite(RELTanah,HIGH); // Serial.begin(9600); // Debug console (matikan jika sudah fix) Serial.println(WiFi.macAddress()); // Blynk.begin(auth, ssid, pass, "103.133.222.53",9443); // https://34.101.75.215/ server GCP bestblynk (penulisan boleh spt ini (diserial port tampil, buat troubleshoot) WiFi.begin(ssid, pass); Blynk.config(auth,"103.133.222.53",8080); // port untuk nodemcu konek ke server = 8080, port app blynk = 9443 // Blynk.config(auth,"103.133.222.53"); // Serial.println(WiFi.macAddress()); Blynk.connect(3333); // timeout set to 10 seconds and then continue without Blynk Blynk.syncAll(); //This will sync the last state of your device dht.begin(); configTime(timezone, dst, "pool.ntp.org","time.nist.gov"); Serial.println("\nWaiting for Internet time"); while(!time(nullptr)){ Serial.print("*"); delay(1000); } Serial.println("\nTime response....OK"); // end koneksi timerSEND.setInterval(1000L, sendSensor); // timer kirim data sensor tiap 1s //timerSEND.setInterval(1000L, tandonPIR); CounterOn = timerON+1; timerTANAH.setInterval(1000L, SenTanah); // timer cek PIR timer.setInterval(2000L, led_control); //timer 60s = 60000L untuk SATUAN menit timer 2 slider, jika ingin SATUAN detik ganti 1000L kirim data sensor DHT timerCek.setInterval(11000L, CheckConnection); // cek konekssi } //--------------LOOOOOOOOOOOOOOOP void loop() { timerCek.run(); if(Connected2Blynk=true){ Blynk.run(); } //timerBLINK.run(); //Blynk.run(); timerSEND.run(); timerTANAH.run(); timer.run(); //Serial.println(timerON); //Serial.println(timerOFF); //Serial.println(sethumap); //Serial.println(setsuhu); } Best Example/teswifi0000755000000000000000000000000014315312757011620 5ustar Best Example/teswifi/teswifi.ino0000755000000000000000000000205414003736004014051 0ustar #define BLYNK_PRINT Serial // disable baris ini jika sudah fix #include // lib wifi #include // lib blynk //PASTE KODE TOKEN EMAIL char auth[] = "6qAcFMJWvhIbqVjZ5c0W_dszFTzUTBL8"; // cek console server bestblynk utk cek token sesui project char ssid[] = "wildan"; // ssid untuk konek internet char pass[] = "99887766"; // pass ssid void setup() { // Debug console (matikan jika sudah fix) Serial.begin(9600); //Blynk.begin(auth, ssid, pass, IPAddress(34,101,75,215)); // cara lain penuisan konek ke server lokal (diserial port tidak tampil) Blynk.begin(auth, ssid, pass, "34.101.75.215"); // server GCP bestblynk (penulisan boleh spt ini (diserial port tampil, buat troubleshoot) //Blynk.begin(auth, ssid, pass); // default jika pakai server blynk //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8442); //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100)); Blynk.syncAll(); //This will sync the last state of your device } void loop() { Blynk.run(); } Best Example/wifi_testing_konek0000755000000000000000000000000014315312755014026 5ustar Best Example/wifi_testing_konek/wifi_testing_konek.ino0000755000000000000000000000261314013077641020500 0ustar // CheckServer.ino by Costas 17/7/2016 #define BLYNK_PRINT Serial // Comment this out to disable prints and save space #include #include #include SimpleTimer timer; char auth[] = "xxxxxxxxxxxx"; char ssid[] = "kebunku"; char pass[] = "xxxxxxxxxxxx"; bool Connected2Blynk = false; void setup() { Serial.begin(115200); WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); Blynk.config(auth); // in place of Blynk.begin(auth, ssid, pass); Blynk.connect(3333); // timeout set to 10 seconds and then continue without Blynk while (Blynk.connect() == false) { // Wait until connected } Serial.println("Connected to Blynk server"); timer.setInterval(11000L, CheckConnection); // check if still connected every 11 seconds } void CheckConnection(){ Connected2Blynk = Blynk.connected(); if(!Connected2Blynk){ Serial.println("Not connected to Blynk server"); Blynk.connect(3333); // timeout set to 10 seconds and then continue without Blynk } else{ Serial.println("Connected to Blynk server"); } } void loop() { if(Connected2Blynk){ Blynk.run(); } timer.run(); }