Tutorial mengendalikan servo

Tutorial mengendalikan servo

Servo adalah perangkat elektromekanik yang mengontrol sudut putaran atau posisi. Biasanya, servo memiliki tiga pin: daya (VCC), ground (GND), dan sinyal kontrol. Kita bisa mengatur posisi sudut servo berdasarkan nilai yang diberikan.

Berikut ini adalah perangkat keras dan perangkat lunak yang dibutuhkan:

  • ESP8266: Microcontroller yang mendukung koneksi Wi-Fi, berfungsi sebagai pengendali dan penghubung ke jaringan internet.
  • Kabel Dupont: Kabel penghubung untuk menghubungkan ESP8266 ke breadboard dan komponen lainnya.
  • Breadboard: Alat untuk menyusun rangkaian sementara tanpa perlu menyolder komponen.
  • Servo Motor: Aktuator yang akan dikendalikan.
  • Smartphone Android: Untuk menginstal dan menggunakan aplikasi IoT MQTT Panel.
  • IoT MQTT Panel: Kita menggunakan perangkat ini untuk mengendalikan servo.
  • MQTTX: Melakukan subscribe.
  • Arduino IDE: Untuk kode program.

Instalasi Aplikasi IoT MQTT Panel di Android

Ikuti langkah-langkah berikut untuk menginstal aplikasi IoT MQTT Panel di perangkat Android Anda:

  1. Buka Google Play Store di smartphone Android Anda.
  2. Cari aplikasi IoT MQTT Panel.
  3. Klik Instal dan tunggu hingga proses instalasi selesai.
  4. Buka aplikasi setelah terpasang.

Konfigurasi IoT MQTT Panel

Setelah aplikasi terinstal, lakukan pengaturan berikut agar dapat mengendalikan servo:

Langkah A: Menambahkan Koneksi

  1. Buka aplikasi IoT MQTT Panel.
  2. Pilih ikon Tambah Koneksi (biasanya berbentuk +).
  3. Isi detail koneksi:
    • Connection name: Beri nama untuk koneksi (misalnya, “Servo”).
    • Client ID: Beri nama bisa disamakan seperti nama koneksinya.
    • Broker web/IP address: Masukkan alamat broker MQTT (contoh: broker.emqx.io atau sesuai dengan broker yang Anda gunakan).
    • Port: Masukkan port broker MQTT (contoh: 1883).
    • Add Dashboard: Tambahkan dashboardnya (misalnya, “utama”), lalu save.
  4. Simpan pengaturan dengan mengklik CREATE.

Langkah B: Menambahkan Panel Kontrol Servo

  1. Di dalam koneksi yang telah Anda buat, klik Add Panel.
  2. Pilih jenis panel Slider untuk mengontrol posisi servo.
  3. Atur pengaturan panel:
    • Name: Beri nama panel (misalnya, “Servo ”).
    • Topic: Masukkan topik MQTT yang digunakan ESP8266 untuk subscribe (misalnya, servo).
    • Payload min – Payload max: Atur rentang slider dari 0 hingga 180 untuk mengontrol sudut servo.
    • Unit dan Slider Orientation: Kita menggunakan unit derajat (°), dan orientasinya adalah Horizontal.
    • Slide color: Pilih warna untuk slide nya bebas.
    • Retain: Ceklis retain dan pilih QoS 1.
  4. Klik untuk menyimpan pengaturan panel.

Rangkaian Koneksi Servo ke ESP8266

  1. Hubungkan Pin VCC pada Servo ke Pin VIN pada ESP8266
    • Pin VIN pada ESP8266 biasanya menyediakan daya 5V saat Anda memberi daya ke board melalui USB atau power supply eksternal, yang cocok untuk sebagian besar servo motor.
  2. Hubungkan Pin GND pada Servo ke Pin GND pada ESP8266
    • Pin ini untuk ground, memastikan sirkuit lengkap dan aman.
  3. Hubungkan Pin Sinyal pada Servo ke Pin D1 pada ESP8266
    • Kita akan menggunakan pin D1 untuk mengirim sinyal PWM yang mengontrol posisi servo.

Melakukan subscribe di MQTTX :

  1. klik New Subscription atau ikon tambah (+) di menu subscriptions.Di bagian pengaturan subscription, isi topik dengan "servo/#". Berikut penjelasannya:servo/#:
    • Menggunakan simbol # sebagai wildcard untuk menerima semua topik yang dimulai dengan kata “servo”. Contohnya, jika ada pesan di topik servo/angle atau servo/control/position, MQTTX akan menampilkan semua pesan tersebut.
  2. Setelah memasukkan topik, klik Confirm untuk menyimpan subscription.

Menghubungkan IoT MQTT Panel

  1. Pastikan smartphone dan ESP8266 terhubung ke jaringan yang sama atau internet.
  2. Buka aplikasi IoT MQTT Panel dan pastikan koneksi sudah terhubung.
  3. Pada panel slider, geser slider untuk mengubah posisi servo. Aplikasi akan mengirim data ke broker MQTT pada topik servo, dan ESP8266 akan membaca data ini untuk menggerakkan servo sesuai nilai slider.

Membuat kode program untuk menjalankan servo

Buka Arduino IDE lalu New Sketch atur board dan port seperti NodeMCU 1.0 (ESP-12E Module) dan port yang sesuai, Berikut adalah contoh kode program untuk mengontrol servo dengan Arduino IDE. Program ini akan menggerakkan servo ke posisi sudut: 0° dan 180°

#include <ESP8266WiFi.h>
#include <MQTT.h>
#include <Servo.h>

const char ssid[] = "@NUSABOTID";        // SSID Wi-Fi
const char pass[] = "terserah";          // Password Wi-Fi
const char* mqttServer = "broker.emqx.io"; // Alamat broker MQTT
const int mqttPort = 1883;               // Port MQTT standar

WiFiClient net;
MQTTClient client;
Servo myServo;                           // Objek servo

void connectWiFi() {
  WiFi.begin(ssid, pass);
  Serial.print("Menghubungkan ke Wi-Fi");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nWiFi terhubung");
  Serial.print("IP Address: ");
  Serial.println(WiFi.localIP());
}

void connectMQTT() {
  Serial.print("Menghubungkan ke broker MQTT...");
  while (!client.connect("client-nusabotServo")) { // Nama unik untuk client
    Serial.print(".");
    delay(500);
  }
  Serial.println("\nTerhubung ke broker MQTT!");
  client.subscribe("servo");        // Subsribe topik kontrol servo
}

// Callback untuk menerima pesan MQTT
void messageReceived(String &topic, String &payload) {  
  // Konversi payload menjadi integer untuk menggerakkan servo
  int angle = payload.toInt();
  myServo.write(angle);
}

void setup() {
  Serial.begin(9600);                  // Memulai komunikasi serial
  connectWiFi();                       // Menghubungkan ke Wi-Fi
  client.begin(mqttServer, mqttPort, net); // Inisialisasi koneksi ke broker MQTT
  client.onMessage(messageReceived);   // Mengatur callback MQTT
  connectMQTT();                       // Menghubungkan ke broker MQTT

  myServo.attach(D1);                  // Menghubungkan servo ke pin D1
  myServo.write(0);                    // Atur posisi awal servo di 0 derajat
}

void loop() {
  client.loop();                       // Proses loop MQTT

  // Periksa koneksi MQTT dan WiFi
  if (!client.connected()) {
    connectMQTT();
  }
}

setelah membuat kode programnya lalu kita upload, dan pastikan di MQTT Brokernya sudah connect :

Next Article :

Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

    Tinggalkan Balasan

    Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *