bangnaga

Wemos D1 Mini MQ2 Buzzer Json MQTT

Feb 26th, 2020 (edited)
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.82 KB | None | 0 0
  1. // Ucok Sinaga
  2. // Facebook: www.facebook.com/nagasakti
  3. // Tanggal Experiment: 26/2/2020
  4.  
  5.  
  6. #include <ESP8266WiFi.h>
  7. #include <PubSubClient.h>
  8. #include <ArduinoJson.h>
  9. #include <MQ2.h>
  10.  
  11. int pinAout = A0;
  12. int lpg_gas, co_gas, smoke_gas;
  13. MQ2 mq2(pinAout);
  14.  
  15. int Buzzer = 13; // D7
  16. int LED = LED_BUILTIN; // Led Bawaan (On Board)
  17. #define sensor_data_topic "MQ2"
  18. const char* ssid = "IoT Lab";
  19. const char* password = "";
  20. const char* mqtt_server = "192.168.1.200";
  21. const char* mqtt_user = "";
  22. const char* mqtt_pass= "";
  23. int Buzzer1 = 13; // D7
  24.  
  25.  
  26. const int mq2pin = A0; // MQ2 analog input pin
  27. int nilaianalog = 0;   // data sensor
  28.  
  29. WiFiClient espClient;
  30. PubSubClient client(espClient);
  31.  
  32. void setup_wifi() {
  33.   // Connecting to a WiFi network
  34.   WiFi.begin(ssid, password);
  35.   while (WiFi.status() != WL_CONNECTED) {
  36.     delay(500);
  37.     Serial.print(".");
  38.   }
  39.   Serial.println("WiFi Terhubung");
  40.   Serial.println("IP address: ");
  41.   Serial.println(WiFi.localIP());
  42. }
  43.  
  44. void reconnect() {
  45.   // Ulangi koneksi sampai terhubung
  46.   Serial.println("Menghubungkan Ulang...");
  47.   while (!client.connected()) {
  48.     Serial.print("Melakukan koneksi ke MQTT Broker...");
  49.     // Attempt to connect
  50.     if (client.connect("Arduino_Gas", mqtt_user, mqtt_pass)) {
  51.       Serial.println("connected");
  52.     } else {
  53.       Serial.print("failed, rc=");
  54.       Serial.print(client.state());
  55.       Serial.println(" Reconect dalam 5 detik");
  56.       delay(5000);
  57.     }
  58.   }
  59. }
  60.  
  61.  
  62. void setup() {
  63.   pinMode(Buzzer, OUTPUT);
  64.   pinMode(LED, OUTPUT);
  65.   Serial.begin(9600);
  66.   mq2.begin();
  67.   setup_wifi();
  68.   client.setServer(mqtt_server, 1883);
  69. }
  70.  
  71. void loop() {
  72.   if (!client.connected()) {
  73.     reconnect();
  74.   }
  75.  
  76.   nilaianalog =analogRead(mq2pin);
  77.   int i=0;
  78.   if (nilaianalog > 150) {
  79.      digitalWrite(LED, HIGH);
  80.      for(i=2;i<10;i++){
  81.         tone(Buzzer,i);
  82.         delay(5);
  83.       }
  84.         for(i=3;i>10;i--){
  85.         tone(Buzzer,i);
  86.         delay(20);
  87.       }
  88.   } else if (nilaianalog < 150){
  89.       digitalWrite(LED, LOW);
  90.       tone(Buzzer,0);
  91.   }
  92.  
  93.   float* values= mq2.read(false); //jika diset "false" tidak akan dimunculkan di serial monitor
  94.  
  95.   lpg_gas = mq2.readLPG();
  96.   co_gas = mq2.readCO();
  97.   smoke_gas = mq2.readSmoke();
  98.  
  99.   StaticJsonBuffer<100> jsonBuffer;
  100.   JsonObject& root = jsonBuffer.createObject();
  101.   root["lpg_gas"] = lpg_gas;
  102.   root["co_gas"] = co_gas;
  103.   root["smoke_gas"] = smoke_gas;
  104.   root["adc"] = nilaianalog;
  105.   client.loop();
  106.   char JSONmessageBuffer[100];
  107.   root.printTo(JSONmessageBuffer, sizeof(JSONmessageBuffer));
  108.   Serial.println("Mengirim pesan to MQTT Broker ..");
  109.   Serial.println(JSONmessageBuffer);
  110.   //client.publish(sensor_data_topic, String(sensor).c_str(), true);
  111.   client.publish(sensor_data_topic, JSONmessageBuffer, true);
  112.   delay(1000);
  113. }
Advertisement
Add Comment
Please, Sign In to add comment