Sabtu, 20 Juli 2024

AT Command On UNO

Untuk menghubungkan perangkat Arduino UNO dengan WiFi, Anda memerlukan modul WiFi tambahan karena Arduino UNO tidak memiliki kemampuan WiFi bawaan. Salah satu modul yang populer digunakan adalah ESP8266. Berikut adalah langkah-langkah untuk menggunakan modul ESP8266 dengan Arduino UNO:

Bahan yang Dibutuhkan:

  1. Arduino UNO
  2. Modul ESP8266 (misalnya ESP-01)
  3. Breadboard dan kabel jumper
  4. Komponen pendukung (seperti resistor, kapasitor, dan konverter level logika jika diperlukan)

Langkah-Langkah:

1. Koneksi Hardware:

Hubungkan ESP8266 dengan Arduino UNO sebagai berikut:

  • ESP8266 TX -> Arduino RX (pin 0)
  • ESP8266 RX -> Arduino TX (pin 1) (gunakan konverter level logika jika diperlukan karena ESP8266 bekerja pada 3.3V sementara Arduino bekerja pada 5V)
  • ESP8266 CH_PD -> 3.3V
  • ESP8266 VCC -> 3.3V
  • ESP8266 GND -> GND
  • ESP8266 GPIO0 -> GND (untuk mode pemrograman, lepaskan setelah pemrograman)

Pastikan untuk memasok daya 3.3V yang cukup ke modul ESP8266 karena modul ini tidak bisa bekerja dengan tegangan 5V langsung dari Arduino.

2. Menginstal Library:

Anda perlu menginstal beberapa library di Arduino IDE untuk memudahkan pengoperasian ESP8266.

  1. ESP8266WiFi Library:

    • Buka Arduino IDE.
    • Pergi ke Sketch -> Include Library -> Manage Libraries.
    • Cari "ESP8266WiFi" dan instal library.
  2. SoftwareSerial Library:

    • Ini diperlukan jika Anda menggunakan pin lain selain pin 0 dan 1 untuk berkomunikasi dengan ESP8266.

3. Kode Contoh:

Berikut adalah contoh kode untuk menghubungkan Arduino UNO dengan WiFi menggunakan modul ESP8266:
 

#include <SoftwareSerial.h>
SoftwareSerial espSerial(2, 3); // RX, TX 
void setup() {
  // Initialize serial for debugging
  Serial.begin(9600);
  // Initialize serial for ESP8266
  espSerial.begin(115200);

  // Set ESP8266 to WiFi mode
  sendCommand("AT+CWMODE=1", 1000);
  // Connect to WiFi network
  sendCommand("AT+CWJAP=\"SSID\",\"PASSWORD\"", 5000);
// Replace with your network SSID and password

  // Check IP address
  sendCommand("AT+CIFSR", 1000);
}

void loop() {
  if (espSerial.available()) {
    Serial.write(espSerial.read());
  }
  if (Serial.available()) {
    espSerial.write(Serial.read());
  }
}

void sendCommand(String command, int timeout) {
  String response = "";

  espSerial.println(command);
  long int time = millis();
  while ((time + timeout) > millis()) {
    while (espSerial.available()) {
      char c = espSerial.read();
      response += c;
    }
  }
  Serial.print(response);
}


Tidak ada komentar:

Posting Komentar