Advertisement
Guest User

aaa

a guest
May 21st, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Wire.h>
  2. #include <LiquidCrystal_I2C.h>
  3. #include <ESP8266WiFi.h>
  4. #include <WiFiClientSecure.h>
  5. #include <UniversalTelegramBot.h>
  6.  
  7. const char* ssid = "";    
  8. const char* password = "";      
  9. WiFiClient client;
  10. LiquidCrystal_I2C lcd(0x27, 16, 2);
  11. WiFiClientSecure client1;
  12. #include <DHT.h>
  13.  
  14. #define DHTPIN D8
  15. #define DHTTYPE DHT11  
  16. DHT dht(DHTPIN, DHTTYPE);
  17. #define BOTtoken "850655730:AAFB90ZCiMTDaHMjUw6Zux8pln-RTSIAJv8"
  18.  
  19. String thingSpeakAddress = "api.thingspeak.com";
  20. String writeAPIKey;
  21. String tsfield1Name;
  22. String request_string;
  23. float h, t, f;
  24. String myData;
  25.  
  26. UniversalTelegramBot bot(BOTtoken, client1);
  27.  
  28. int Bot_mtbs = 1000;
  29. long Bot_lasttime;  
  30. bool Start = false;
  31.  
  32. const int ledPin = D2;
  33. const int ledPin1 = D9;
  34. const int ledPin2 = D10;
  35. int ledStatus = 0;
  36. const int buzzer = D11;
  37. int buzzerStatus = 0;
  38.  
  39. void handleNewMessages(int numNewMessages) {
  40.   Serial.println("handleNewMessages");
  41.   Serial.println(String(numNewMessages));
  42.  
  43.   for (int i = 0; i < numNewMessages; i++) {
  44.     String chat_id = String(bot.messages[i].chat_id);
  45.     String text = bot.messages[i].text;
  46.  
  47.     String from_name = bot.messages[i].from_name;
  48.     if (from_name == "") from_name = "Guest";
  49.  
  50.     if (text == "Cek suhu") {
  51.       myData = "Suhu :";
  52.       myData += t;
  53.       myData += " C";
  54.       digitalWrite(ledPin, HIGH);  
  55.       ledStatus = 1;
  56.       delay(2000);
  57.       digitalWrite(ledPin, LOW);
  58.       ledStatus = 0;
  59.       digitalWrite(buzzer, HIGH);
  60.       tone(buzzer, 2000);
  61.       buzzerStatus = 1;
  62.       delay (2000);
  63.       digitalWrite(buzzer, LOW);
  64.       noTone(buzzer);
  65.       buzzerStatus = 0;
  66.       bot.sendMessage(chat_id, myData, "");
  67.     }
  68.  
  69.     if (text == "Cek kelembapan") {
  70.       myData = "Kelembapan :";
  71.       myData += h;
  72.       myData += " %RH";
  73.       digitalWrite(ledPin1, HIGH);  
  74.       ledStatus = 1;
  75.       delay(2000);
  76.       digitalWrite(ledPin1, LOW);
  77.       ledStatus = 0;
  78.       digitalWrite(buzzer, HIGH);
  79.       tone(buzzer, 2000);
  80.       buzzerStatus = 1;
  81.       delay (2000);
  82.       digitalWrite(buzzer, LOW);
  83.       noTone(buzzer);
  84.       buzzerStatus = 0;
  85.       bot.sendMessage(chat_id, myData, "");
  86.     }
  87.  
  88.     if (text == "Cek semua") {
  89.       myData = "Suhu :";
  90.       myData += t;
  91.       myData += " C";
  92.       myData += "\nKelembapan :";
  93.       myData += h;
  94.       myData += " %RH";
  95.       digitalWrite(ledPin2, HIGH);  
  96.       ledStatus = 1;
  97.       delay(2000);
  98.       digitalWrite(ledPin2, LOW);
  99.       ledStatus = 0;
  100.       digitalWrite(buzzer, HIGH);
  101.       tone(buzzer, 2000);
  102.       buzzerStatus = 1;
  103.       delay (2000);
  104.       digitalWrite(buzzer, LOW);
  105.       noTone(buzzer);
  106.       buzzerStatus = 0;
  107.       bot.sendMessage(chat_id, myData, "");
  108.     }
  109.  
  110.     if (text == "Start") {
  111.       String welcome = "Welcome to Universal Arduino Telegram Bot library, " + from_name + ".\n";
  112.       welcome += "Menggabungkan Telegram dan Thingspeak.\n\n";
  113.       welcome += "Cek suhu : untuk melihat data suhu\n";
  114.       welcome += "Cek kelembapan : untuk melihat data kelembapan\n";
  115.       welcome += "Cek semua : untuk mengecek semuanya\n";
  116.       bot.sendMessage(chat_id, welcome, "Markdown");
  117.     }
  118.   }
  119. }
  120.  
  121. void setup()
  122. {
  123. Serial.begin(115200);
  124. delay(10);
  125. dht.begin();
  126. lcd.begin();
  127. lcd.backlight();
  128. lcd.print("Selamat Datang");
  129. delay(2000);
  130. lcd.clear();
  131. pinMode(ledPin, OUTPUT);
  132. pinMode(ledPin1, OUTPUT);
  133. pinMode(ledPin2, OUTPUT);
  134. pinMode(buzzer, OUTPUT);
  135. digitalWrite(ledPin, HIGH);
  136. digitalWrite(ledPin1, HIGH);
  137. digitalWrite(ledPin2, HIGH);
  138. delay (1000);
  139. digitalWrite(ledPin, LOW);
  140. digitalWrite(ledPin1, LOW);
  141. digitalWrite(ledPin2, LOW);
  142. pinMode(buzzer, LOW);
  143.  
  144. WiFi.begin(ssid, password);
  145.  
  146. Serial.println();
  147. Serial.println();
  148. Serial.print("Connecting to ");
  149. Serial.println(ssid);
  150.  
  151. WiFi.begin(ssid, password);
  152.  
  153. while (WiFi.status() != WL_CONNECTED)
  154. {
  155. delay(500);
  156. Serial.print(".");
  157. }
  158. Serial.println("");
  159. Serial.println("WiFi connected");
  160. delay(10);
  161. }
  162. void loop()
  163. {
  164.   delay(2000);
  165.   h = dht.readHumidity();
  166.   // Read temperature as Celsius (the default)
  167.   t = dht.readTemperature();
  168.   // Read temperature as Fahrenheit (isFahrenheit = true)
  169.  lcd.setCursor(0, 0);
  170.     lcd.print("Temp : ");
  171.     lcd.print(t);
  172.     lcd.print("C");
  173.    
  174.     lcd.setCursor(0, 1);
  175.     lcd.print("Hum : ");
  176.     lcd.print(h);
  177.     lcd.print("%");
  178.  
  179.   kirim_thingspeak(t, h);
  180.  
  181.   if (isnan(h) || isnan(t) || isnan(f)) {
  182.     Serial.println("Failed to read from DHT sensor!");
  183.     return;
  184.   }
  185.  
  186.   if (millis() > Bot_lasttime + Bot_mtbs)  {
  187.     int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
  188.  
  189.     while (numNewMessages) {
  190.       Serial.println("got response");
  191.       handleNewMessages(numNewMessages);
  192.       numNewMessages = bot.getUpdates(bot.last_message_received + 1);
  193.     }
  194.  
  195.     Bot_lasttime = millis();
  196.   }
  197. }
  198.  
  199. void kirim_thingspeak(float suhu, float hum) {
  200.   if (client.connect("api.thingspeak.com", 80)) {
  201.     request_string = "/update?";
  202.     request_string += "key=";
  203.     request_string += "BZQEJGS155GDQ3QV"; // api key thingspeak
  204.     request_string += "&";
  205.     request_string += "field1";
  206.     request_string += "=";
  207.     request_string += suhu;
  208.     request_string += "&";
  209.     request_string += "field2";
  210.     request_string += "=";
  211.     request_string += hum;
  212.     Serial.println(String("GET ") + request_string + " HTTP/1.1\r\n" +
  213.                    "Host: " + thingSpeakAddress + "\r\n" +
  214.                    "Connection: close\r\n\r\n");
  215.  
  216.     client.print(String("GET ") + request_string + " HTTP/1.1\r\n" +
  217.                  "Host: " + thingSpeakAddress + "\r\n" +
  218.                  "Connection: close\r\n\r\n");
  219.     unsigned long timeout = millis();
  220.     while (client.available() == 0) {
  221.       if (millis() - timeout > 5000) {
  222.         Serial.println(">>> Client Timeout !");
  223.         client.stop();
  224.         return;
  225.       }
  226.     }
  227.  
  228.     while (client.available()) {
  229.       String line = client.readStringUntil('\r');
  230.     }
  231.     Serial.println();
  232.  
  233.   Serial.println("closing connection");
  234.  
  235.   }
  236. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement