Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Ucok Sinaga
- // Facebook: www.facebook.com/nagasakti
- // Email: [email protected]
- // Tanggal Experiment: 26/2/2020
- #include <ESP8266WiFi.h>
- #include <PubSubClient.h>
- #include <ArduinoJson.h>
- #include <MQ2.h>
- 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);
- }
Advertisement
Add Comment
Please, Sign In to add comment