Hi BDx-ian!
Tutorial kali ini kita akan belajar cara nak terima dan hantar data Firebase dan Kodular menggunakan NodeMCU ESP8266. Tutorial ini berfungsi dengan cara data jarak dari ultrasonic sensor yang bersambung dengan ESP8266 dihantar ke Firebase dan seterusnya ke Kodular untuk memaparkan data pada skrin aplikasi Android. Kemudian, data ledStatus dari button Kodular yang dipaparkan pada skrin akan dihantar ke Firebase dan seterusnya ke ESP8266 dan LED.
Bagi yang belum pernah guna platform Kodular dan Firebase, anda boleh pergi ke pautan di bawah untuk mengetahui lebih lanjut cara nak setup Kodular dan Firebase sebelum memulakan tutorial ini.
Kodular
Firebase
FIREBASE
Setup Firebase dengan cipta Realtime Database dan cipta Authentication. Kemudian, tambah key data pada projek anda seperti di bawah.
KODULAR
Setup komponen Kodular anda seperti di bawah untuk projek ini berfungsi.
Block Code
Bina block code Kodular anda atau boleh rujuk code block di bawah.
KOMPONEN
Komponen yang diperlukan untuk tutorial ini:
- LED
- NodeMCU ESP8266
- Breadboard
- Jumper
- Ultrasonic Sensor
LITAR
Ultrasonic sensor
- VCC → pin Vin ESP8266
- TRIG → pin D7 ESP8266
- ECHO → pin D8 ESP8266
- GND → GND ESP8266
LED
- +ve terminal → pin D4 ESP8266
- -ve terminal → GND ESP8266
CODE
#include <ESP8266WiFi.h> #include <FirebaseESP8266.h>
// Provide the RTDB payload printing info and other helper functions. #include <addons/RTDBHelper.h>
#define trigPin 13 #define echoPin 15
/* 1. Define the WiFi credentials */ #define WIFI_SSID "Nama WiFi anda" #define WIFI_PASSWORD "Password WiFi anda"
#define DATABASE_URL "Database URL projek anda" //<databaseName>.firebaseio.com or <databaseName>.<region>.firebasedatabase.app #define FIREBASE_AUTH "Database Secret anda"
FirebaseData fbdo; FirebaseData firebaseData;
FirebaseConfig config;
unsigned long dataMillis = 0;
long duration; int distance;
int led = 2; String ledStatus;
void setup() {
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD); Serial.print("Connecting to Wi-Fi"); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(300); } Serial.println(); Serial.print("Connected with IP: "); Serial.println(WiFi.localIP()); Serial.println();
Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION);
Firebase.begin(DATABASE_URL,FIREBASE_AUTH);
// Comment or pass false value when WiFi reconnection will control by your code or third party library Firebase.reconnectWiFi(true);
pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(led, OUTPUT); }
void loop() {
if (millis() - dataMillis > 10000) { dataMillis = millis(); getDistance();
//terima data ledStatus dari firebase
if (Firebase.getString(firebaseData, "/system/ledStatus")){
Serial.printf("Get ledStatus.. %s\n", Firebase.getString(firebaseData, F("/system/ledStatus"), &ledStatus) ? String(ledStatus).c_str() : firebaseData.errorReason().c_str());
if (ledStatus == "1") { digitalWrite(led, HIGH); Serial.println("LED ON"); } else if (ledStatus == "0") { digitalWrite(led, LOW); Serial.println("LED OFF"); } delay (1000);
} } }
void getDistance() { digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration / 2) / 29.1;
//hantar data distance ke firebase if (Firebase.setInt(fbdo, "/system/distance", distance)) {
Serial.print("Distance: "); Serial.println(distance); Serial.println(); }
else { Serial.println("DISTANCE FAILED"); Serial.println("REASON: " + fbdo.errorReason()); Serial.println("------------------------------------"); Serial.println(); return; } }
|
Peringatan
Ganti dan tukar perkara ini ke dalam code anda.
#define WIFI_SSID "Nama WiFi anda" #define WIFI_PASSWORD "Password WiFi anda" #define DATABASE_URL "Database URL projek anda" //<databaseName>.firebaseio.com or <databaseName>.<region>.firebasedatabase.app #define FIREBASE_AUTH "Database Secret anda" |
OUTPUT
Setelah anda berjaya connect Kodular dengan telefon anda dan upload code, data distance dan ledStatus akan dipaparkan pada skrin Kodular, Firebase dan Serial Monitor.
Apabila tekan button LED ON pada skrin aplikasi Kodular, LED akan menyala, value ledStatus Firebase menunjukkan “1”, “LED ON” pada skrin Kodular dan Serial Monitor.
Value data ledStatus dan distance pada Firebase.
Serial Monitor memaparkan ledStatus, distance dan LED ON
Apabila tekan button LED OFFpada skrin aplikasi Kodular, LED tidak menyala, value ledStatus Firebase menunjukkan “0”, “LED OFF” pada skrin Kodular dan Serial Monitor
Value ledStatus dan distance pada Firebase.
Serial Monitor memaparkan ledStatus, distance dan LED OFF
Terdapat beberapa tutorial lepas tentang platform Kodular dan Firebase, anda boleh pergi ke pautan di bawah untuk mengetahui lebih lanjut.
Kodular
Firebase
Jika anda suka dengan perkongsian tutorial dalam blog kami ni, jangan lupa untuk follow Facebook dan Instagram kami, kat situ ada bermacam info dan update terkini yang akan kami kongsikan kepada anda. Itu sahaja untuk tutorial kami. Stay update dan selamat mencuba!