Advertisement
andretafta

Smartgreen + ThingerIO

Sep 7th, 2020
319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <ESP8266WiFi.h> //Library untuk konek ke Wi-Fi
  2. #include <ThingerESP8266.h> //Library untuk terhubung ke Thinger
  3. #include <NewPing.h> //Library untuk HC-SR04
  4. #include <DHT.h> //Library untuk DHT
  5. #define USERNAME "idn8ac" //Username Thinger IO
  6. #define DEVICE_ID "MCU8C" //Device ID Thinger IO
  7. #define DEVICE_CREDENTIAL "HxvZ5Glq3HjMNh" //Device Credential
  8. #define SSID "KILLUA" //SSID Wi-Fi
  9. #define SSID_PASSWORD "nada124@" //Password Wi-Fi
  10. #define TRIGGER_PIN D5 //Pin Trigger HC-SR04 pada NodeMCU
  11. #define ECHO_PIN D6 //Pin Echo HC-SR04 pada NodeMCU
  12. #define MAX_DISTANCE 250 //Maksimum Pembacaan Jarak (cm)
  13. #define DHTPIN D4 //Pin DHT pada NodeMCU
  14. #define DHTTYPE DHT11 //Jenis DHT yang digunakan
  15. #define pinYL A0 //pin Analog YL-69
  16. #define WaterPump D0 //Pin Relay 1
  17. #define WaterPump2 D1 //Pin Relay 2
  18. #define Lampu D2 //Pin LED
  19.  
  20. ThingerESP8266 thing(USERNAME, DEVICE_ID, DEVICE_CREDENTIAL); //Aktifkan Fungsi Thinger IO
  21. NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); //Aktifkan Fungsi HCSR-04
  22. DHT dht(DHTPIN, DHTTYPE); //Aktifkan Fungsi DHT
  23. int outputValue; //Variabel untuk Output YL-69
  24.  
  25. void setup() {
  26. pinMode(Lampu, OUTPUT); //Set LED sebagai Output
  27. pinMode(WaterPump, OUTPUT); //Set Relay 1 sebagai Output
  28. pinMode(WaterPump2, OUTPUT); //Set Relay 2 sebagai Output
  29. digitalWrite(Lampu, LOW); //Set nilai LED = 0
  30. digitalWrite(WaterPump, HIGH); //Set nilai Relay 1 = 1
  31. digitalWrite(WaterPump2, HIGH); //Set nilai Relay 2 = 1
  32. dht.begin(); //Memulai fungsi DHT
  33.  
  34. thing.add_wifi(SSID, SSID_PASSWORD); //Mencoba terhubung ke Wi-Fi dan Thinger IO
  35.  
  36. //Fungsi untuk Kontrol Lampu dengan Topik Lampu
  37. thing["Lampu"] << [](pson& in){
  38. if(in.is_empty()){
  39. in = (bool) digitalRead(Lampu);
  40. }
  41. else{
  42. digitalWrite(Lampu, in ? HIGH : LOW);
  43. }
  44. };
  45.  
  46. //Fungsi untuk Kontrol Relay 1 dengan Topik Pompa Air
  47. thing["Pompa Air"] << [](pson& in){
  48. if(in.is_empty()){
  49. in = (bool) digitalRead(WaterPump);
  50. }
  51. else{
  52. digitalWrite(WaterPump, in ? HIGH : LOW);
  53. }
  54. };
  55.  
  56. //Fungsi untuk Kontrol Relay 2 dengan Topik Watering
  57. thing["Watering"] << [](pson& in){
  58. if(in.is_empty()){
  59. in = (bool) digitalRead(WaterPump2);
  60. }
  61. else{
  62. digitalWrite(WaterPump2, in ? HIGH : LOW);
  63. }
  64. };
  65.  
  66. //Mengirim Pembacaan Sensor DHT 11 ke Thinger IO
  67. thing["DHT11"] >> [](pson& out){
  68. out["Humidity"] = dht.readHumidity();
  69. out["Suhu"] = dht.readTemperature();
  70. };
  71.  
  72. //Mengirim Pembacaan Sensor HCSR-04 ke Thinger IO
  73. thing["HCSR04"] >> [](pson& out){
  74. out["Jarak"] = sonar.ping_cm();
  75. };
  76.  
  77. //Mengirim Pembacaan Sensor YL-69 ke Thinger IO
  78. thing["Soil_Moisture"] >> [](pson& out){
  79. outputValue = analogRead(pinYL);
  80. outputValue = map(outputValue, 1024, 250, 0, 100);
  81. out["Moisture"] = outputValue;
  82. };
  83. }
  84.  
  85. void loop() {
  86. //Menjalankan fungsi Thinger IO
  87. thing.handle();
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement