// Ucok Sinaga // Facebook: www.facebook.com/nagasakti // Email: iotmakassar@gmail.com // Tanggal Experiment: 26/2/2020 #include #include #include #include int pinAout = A0; int lpg_gas, co_gas, smoke_gas; MQ2 mq2(pinAout); int Buzzer = 13; // D7 int LED = LED_BUILTIN; // Led Bawaan (On Board) #define sensor_data_topic "MQ2" const char* ssid = "IoT Lab"; const char* password = ""; const char* mqtt_server = "192.168.1.200"; const char* mqtt_user = ""; const char* mqtt_pass= ""; int Buzzer1 = 13; // D7 const int mq2pin = A0; // MQ2 analog input pin int nilaianalog = 0; // data sensor WiFiClient espClient; PubSubClient client(espClient); void setup_wifi() { // Connecting to a WiFi network WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("WiFi Terhubung"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void reconnect() { // Ulangi koneksi sampai terhubung Serial.println("Menghubungkan Ulang..."); while (!client.connected()) { Serial.print("Melakukan koneksi ke MQTT Broker..."); // Attempt to connect if (client.connect("Arduino_Gas", mqtt_user, mqtt_pass)) { Serial.println("connected"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" Reconect dalam 5 detik"); delay(5000); } } } void setup() { pinMode(Buzzer, OUTPUT); pinMode(LED, OUTPUT); Serial.begin(9600); mq2.begin(); setup_wifi(); client.setServer(mqtt_server, 1883); } void loop() { if (!client.connected()) { reconnect(); } nilaianalog =analogRead(mq2pin); int i=0; if (nilaianalog > 150) { digitalWrite(LED, HIGH); for(i=2;i<10;i++){ tone(Buzzer,i); delay(5); } for(i=3;i>10;i--){ tone(Buzzer,i); delay(20); } } else if (nilaianalog < 150){ digitalWrite(LED, LOW); tone(Buzzer,0); } float* values= mq2.read(false); //jika diset "false" tidak akan dimunculkan di serial monitor lpg_gas = mq2.readLPG(); co_gas = mq2.readCO(); smoke_gas = mq2.readSmoke(); StaticJsonBuffer<100> jsonBuffer; JsonObject& root = jsonBuffer.createObject(); root["lpg_gas"] = lpg_gas; root["co_gas"] = co_gas; root["smoke_gas"] = smoke_gas; root["adc"] = nilaianalog; client.loop(); char JSONmessageBuffer[100]; root.printTo(JSONmessageBuffer, sizeof(JSONmessageBuffer)); Serial.println("Mengirim pesan to MQTT Broker .."); Serial.println(JSONmessageBuffer); //client.publish(sensor_data_topic, String(sensor).c_str(), true); client.publish(sensor_data_topic, JSONmessageBuffer, true); delay(1000); }