Hi BDx-ian!
Dalam tutorial kali ini kita akan belajar macam mana nak kawal servo menggunakan gyroscope telefon pintar melalui Kodular dan Firebase dengan ESP32S .
Fungsi gyroscope yang digunakan ialah untuk mengukur atau mengekalkan orientasi berdasarkan konsep momentum sudut. Oleh itu, gyroscope ini dapat mengenal pasti putaran dan perubahan dalam orientasinya. Pada telefon pintar pula, gyroscope ini digunakan untuk orientasi dan putaran skrin, permainan video, mengambil gambar dan video dan juga digunakan dalam navigasi dan peta.
Data - data yang diperolehi seperti paksi X, paksi Y dan paksi Z ini membolehkan kita menentukan kedudukan telefon tersebut dan dalam tutorial kali ini, kita akan menggunakan data - data tersebut untuk menggerakkan servo motor yang di sambung di ESP32S.
Peralatan yang diperlukan:
- NodeMCU ESP32S dan USB
- Servo Motor
- Telefon Pintar Android
- Jumper wire
- Software Arduino IDE
Litar:
Servo Motor
- VCC → 3.3V Arduino
- Signal pin → Pin 13 Arduino
- GND → GND Arduino
Code
Setelah selesai memasang komponen seperti gambar rajah di atas, anda boleh upload code yang disediakan seperti berikut ke dalam Arduino IDE anda.
|
#include <WiFi.h> #include <FirebaseESP32.h> #include <Servo.h> // Your WiFi credentials #define WIFI_SSID "Nama WiFI Anda" #define WIFI_PASSWORD "Password WiFi Anda" // Your Firebase project credentials #define FIREBASE_HOST "URL Firebase Anda" #define FIREBASE_AUTH "Database Secret Anda" FirebaseData firebaseData; Servo servoMotor; void setup() { Serial.begin(115200);
// Connect to Wi-Fi WiFi.begin(WIFI_SSID, WIFI_PASSWORD); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi."); // Connect to Firebase Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
// Attach the servo motor to pin 13 static const int servoPin = 13; servoMotor.attach(servoPin); } void loop() { // Read the gyroscope x-axis data from Firebase if (Firebase.getFloat(firebaseData, "gyroscopeX")) { float gyroX = firebaseData.floatData();
// Decide servo position based on gyroscope data int servoAngle; if (gyroX < 0) { // Phone pusing ke kiri servoAngle = 0; // Servo pusing ke kiri } else { // Phone pusing ke kanan servoAngle = 180; // Servo pusing ke kanan } // Move the servo servoMotor.write(servoAngle); } else { Serial.println(firebaseData.errorReason()); } delay(100); // Adjust delay mengikut kesesuaian } |
Anda boleh mengakses coding di atas dari Github : https://github.com/bdxtronix-tutorial/esp32-kodular-servo-firebase
1. KODULAR
Bagi tutorial ini, kita akan menggunakan Kodular sebagai medium pengantara untuk mendapatkan nilai dari gyroscope telefon pintar anda.
- Muatkan objek yang diperlukan sebagai contoh kita masukkan ‘label’ untuk mendapatkan tempat untuk nilai tersebut dilihat.
2. Masukkan juga ‘Gyroscope Sensor’ yang boleh didapati di bahagian ‘Sensor’ dan kemudian klik pada Enabled untuk mengaktifkan penggunaan sensor ini.
3. Masukkan juga ‘Firebase Database’ yang boleh didapati di ruangan ‘Google’.
Jika anda belum pernah membuat projek dengan Firebase, lihat tutorial kami sebelum ini Setup Aplikasi Android menggunakan Kodular dan Firebase untuk mengikuti langkah di bawah.
Kemudian, masukkan Firebase URL yang boleh didapati di ‘Realtime Database’ di bahagian ‘Data’. Bagi Firebase Token pula untuk tutorial ini kita menggunakan Database Secret yang boleh diperolehi di bahagian ‘Project Setting’ > ‘Service Accounts’ > ‘Database Secret’.
4. Bagi Code Block pula anda boleh mengikut seperti yang telah disiapkan di bawah ini.
2. FIREBASE
Bagi menggunakan Firebase pula ini adalah paparan Realtime Database setelah selesai disediakan. Bagi meletakkan nilai paksi X,Y dan Z ini kita boleh menggunakan key ‘gyroscopeX’ sebagai contoh bagi memudahkan mengenal pasti nilai yang diperolehi. Di bahagian Value pula, tinggalkan ruangan kosong kerana di situ nilai akan muncul menunjukkan sambungan dari Kodular telah berjaya.
OUTPUT
Ini adalah paparan dari Kodular Companion menunjukkan antaramuka pengguna di telefon pintar. Walau bagaimanapun, paparan ini boleh diubah suai mengikut kehendak pengguna. Dari paparan ini, kita dapat memantau nilai paksi X, paksi Y dan paksi Z yang diperolehi dari telefon pengguna.
Setelah di sambungkan dengan ESP32S melalui WiFi, pengguna boleh menggerakkan telefon ke kanan dan servo motor akan bertindak dengan turut pusing ke kanan. Namun apabila telefon digerakkan ke kiri, pengguna akan dapat saksikan servo motor akan berpusing ke kiri.