ESP8266
Trending

Komunikasi Serial Arduino-NodeMCU ESP8266

Komunikasi Serial Arduino dengan NodeMCU ESP8266. Masih dalam serial Tutorial Arduino Bahasa Indonesia, Tutorial Arduino kali adalah bagaimana cara komunikasi serial dari Arduino yaitu Pro Mini ke NodeMCU ESP8266. Proyek Alat NodeMCU ESP8266 yang terhubung dengan berbagai sensor Analog, karena NodeMCU ESp8266 hanya mempunyai 1 chanel ADC, maka digunakan Arduino Pro Mini sebagai Slave untuk membaca data sensor Analog kemudian mengirimkan ke NodeMCU ESP8266.

Komunikasi Serial pada NodeMCU ESP8266

NodeMCU memiliki lebih dari 1 fungsi serial Tx RX, yiatu TX0 RX0 dan TX2 RX2, tetapi pada kenyataannya tidak bisa digunakan untuk komunikasi serial pada Pin TX2 dan RX2. Oleh karena itu bisa digunakan library tambahan seperti yang sering kita gunakan pada Board Arduino, yaitu library .

Arduino Pro Mini mengirimkan data Serial secara looping, kemudian NodeMCU ESP8266 memparsing data dari arduino pro mini. Kerumitan dalam komunikasi serial biasanya terletak pada parsing data komunikasi serial arduino. Oleh sebab itu, digunakan library untuk parsing data, yaitu string splitter.

Skematik Komunikasi Serial NodeMCU ESP8266 menggunakan SoftwareSerial Arduino

Komunikasi Serial Arduino-NodeMCU ESP8266

Program Serial pada Arduino Pro Mini

Board Arduino Pro Mini berfungsi untuk membaca data sensor Analog kemudian mengirimkan data tersebut ke NodeMCU ESP8266. Pin RX,TX default pada arduino pro mini digunakan sebagai komunikasi downloader, oleh karena itu digunakan pin serial extend pada pin (9,10) sehingga perlu menggunakan library SoftwareSerial.

#include 
#include 
#include "DHT.h"

SoftwareSerial mySerial(9,10);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  mySerial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:

  sendData();
  delay(500); //Sampling frequency
}

void sendData(){
  mySerial.print(MQ2._PPM);
  mySerial.print(',');
  mySerial.print(tempDht1);
  mySerial.print(',');
  mySerial.print(flame);
  mySerial.print("\n");
}

Dari potongan program Komunikasi Serial Arduino-NodeMCU ESP8266 bisa dijelaskan bahwa pada sisi pengirim yaitu Arduino format pengiriman datanya adalah data1,data2,data3/n tanda karakter ‘,’ adalah delimiter sedangkan \n adalah tanda akhir dari data tersebut. Untuk lebih dipahami, biasanya yang menjadi kendala pada komunikasi serial arduino dan nodeMCU tersebut yaitu pada library StringSplitter kita tidak mendefinisikan banyaknya byte data yang dikirim pada sisi pengirim(tx). atau kendala lain adalah sampling time pada sisi pengirim tidak sama dengan sampling time pada sisi penerima.

Program Serial pada NodeMCU ESP8266

#include 
#include 
#include 
#include 

SoftwareSerial mySerial(14,12);

#define flame_normal  25
#define flame_medium  60
#define flame_high    80

int Bot_mtbs = 1000; //mean time between scan messages
long Bot_lasttime;   //last time messages' scan has been done
String incomingByte;
String buff[4];

void setup() {
  Serial.begin(115200);
  mySerial.begin(9600);

  // Set WiFi to station mode and disconnect from an AP if it was Previously
  // connected
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  // Attempt to connect to Wifi network:
  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }

  client.setInsecure();
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  if(mySerial.available()>1){
    incomingByte=mySerial.readStringUntil('\n');
    StringSplitter *splitter = new StringSplitter(incomingByte, ',', 3);  // new StringSplitter(string_to_split, delimiter, limit)
    int itemCount = splitter->getItemCount();

    for(int i = 0; i < itemCount; i++){ //String item = splitter->getItemAtIndex(i);
      buff[i] = splitter->getItemAtIndex(i);
      
    }

    if(buff[0].toInt()>5){
      String mq2="Warning!\n MQ2 meningkat:"+buff[0];
      bot.sendMessage(bot.messages[i].chat_id,mq2);  
    }
    
    if(buff[1].toInt()>5){
      String mq2="Warning!\n MQ2 meningkat:"+buff[0];
      bot.sendMessage(bot.messages[i].chat_id,mq2);  
    }
    Serial.print(F("MQ2:"));Serial.print(buff[0]);Serial.print(F(" DHT:"));Serial.print(buff[1]);Serial.print(F("flame:"));Serial.println(buff[2]);    
  }
  
 

}

Sekian tutorial Komunikasi Serial Arduino-NodeMCU ESP8266 dari uartdev, Semoga bisa membantu dan bermanfaat buat kita semua. Ohh iya kami juga menawarkan jasa pembuatan alat tugas akhir loh berikut price listnya :



Free Trial

Projects

SSL

Domains

Domains

Jasa Program Arduino

Mulai dari 

500 Ribu

Waktu Konsultasi Bebas

Skematik Rangkaian

Unlimited Revisi

Garansi uang kembali

Jasa Program  Arduino

Mulai dari

 900 Ribu

flowchart , Blok Diagram

Skematik Rangkaian , Program

Unlimited Revisi

Waktu Konsultasi Bebas

Garansi Uang Kembali

Jasa Pembuatan Alat dan Program TA 

Mulai dari

2 Juta

Sudah termasuk alat dan bahan

Flowchart , Blok DIagram

Skematik Rangkaian , Program

Wiring dan Soldering

Unlimited Revisi

Garansi Uang Kembali


Related Articles

2 Comments

  1. I’m trying to use software to erase the information on my old computer before donating it. The mouse is not working on the computer. I’ve tried another mouse on the computer and it still will not work. I need to reboot my computer in order to start the disc wiper. Is there a way of rebooting my computer without a mouse? Thanks so much!.

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button