DIY : Dimmer LED Berbasis Arduino dengan kendali Alexa ( Voice Control )
Ingin mengontrol kecerahan LED Strip hanya dengan suara ? Pada tutorial ini, kita akan membuat dimmer LED strip yang dapat dikendalikan menggunakan Arduino dan Amazon Alexa. Dengan proyek ini, kita bisa menyalakan, mematikan, dan mengatur kecerahan LED hanya dengan perintah suara.
Hardware yang dibutuhkan ;
- ESP6288 ( untuk koneksi Wi-Fi dan komunikasi dengan Alexa)
- LED Strip ( 12 atau 24V, sesuaikan kebutuhan)
- Power Supply/Driver ( 12 atau 24V, sesuaikan kebutuhan)
- IC 7805 Regulator
- Transistor TIP122
- Elco 100 uF
- Elco 10uF
- Led Biru 3 mm
- Resistor 220 Ohm
- Potensiometer 100k Ohm
Diagram Rangkaian ;
Kode Arduino untuk Dimmer LED Strip dan Alexa
#include <ESP8266WiFi.h>
#include <Espalexa.h>
// prototypes
boolean connectWifi();
// callback function for light change
void firstLightChanged(EspalexaDevice* dev);
// define the GPIO connected with Relays
const int ledPin_1 = 13; // the PWM pin the LED is attached to
const int potPin = A0; // Potentiometer Pin (A0 for ESP8266)
const int wifiLed = 0; // Wifi indicator LED Pin
// WiFi Credentials
const char* ssid = "SSID WIFI "; // Replace with your WiFi name
const char* password = "PASSWORD"; // Replace with your WiFi password
// device names
String Device_1_Name = "Studio lights";
// Variable to store brightness
uint8_t brightness;
int potValue = 0;
boolean wifiConnected = false;
Espalexa espalexa;
// connect to wifi – returns true if successful or false if not
boolean connectWifi()
{
boolean state = true;
int i = 0;
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("");
Serial.println("Connecting to WiFi...");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
if (i > 20) {
state = false;
break;
}
i++;
}
Serial.println("");
if (state) {
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
} else {
Serial.println("Connection failed.");
}
return state;
}
void addDevices(){
// Define your devices here.
espalexa.addDevice(Device_1_Name, firstLightChanged, EspalexaDeviceType::dimmable, 127); // Dimmable device, optional 4th parameter is beginning state (here fully on)
espalexa.begin();
}
// our callback functions
void firstLightChanged(EspalexaDevice* d) {
if (d == nullptr) return;
brightness = d->getValue();
Serial.print("Brightness: ");
Serial.println(brightness);
analogWrite(ledPin_1, brightness); // Use analogWrite for PWM control on ESP8266
}
void setup()
{
Serial.begin(115200);
pinMode(potPin, INPUT);
pinMode(wifiLed, OUTPUT);
// Initialize WiFi connection
wifiConnected = connectWifi();
if (wifiConnected)
{
addDevices();
}
else
{
Serial.println("Cannot connect to WiFi. So in Manual Mode");
delay(1000);
}
}
void loop()
{
if (WiFi.status() != WL_CONNECTED)
{
Serial.print("WiFi Not Connected ");
Serial.println(wifiConnected);
digitalWrite(wifiLed, LOW);
potValue = analogRead(potPin); // Read potentiometer value
brightness = map(potValue, 0, 1023, 0, 255);// rubah vale minimum dan maksimum
analogWrite(ledPin_1, brightness); // Adjust LED brightness based on potentiometer
delay(15);
Serial.print("Potentiometer Value: ");
Serial.println(potValue);
Serial.print(" ");
Serial.println(brightness);
}
else
{
Serial.print("WiFi Connected ");
Serial.println(wifiConnected);
digitalWrite(wifiLed, HIGH);
if (wifiConnected) {
espalexa.loop(); // Handle Alexa commands
delay(1);
} else {
wifiConnected = connectWifi(); // Reconnect if WiFi is lost
if (wifiConnected) {
addDevices();
}
}
}
}
Konfigurasi
1. Masukan SSID dan Password pada unit ESP8266.
2. Untuk menambakan control ESP8266 ke Alexa Controller.
a. Install Aplikasi pada android atau Iphone "Amazon Alexa",
b. Pilih tanda " + " di pojok kanan atas,
c. Pilih "Device",
d. Scroll dan pilih " Other",
e. Pilih "Wi-Fi",
f. Unit Echo/ Alexa akan men-scanning perangkat dengan nama "lights studio",
g. dan pilih.
3. Test untuk backup sistem dengan control potensiometer dengan cara. Matikan Wi-fi yang terhubung ke unit. maka Led pada Rangkaian akan mati, dan atur pecahayaan dengan memutar potensimeter.
Catatan : saat wifi terhubung ke esp8266 potensiometer tidak dapat mengontrol pencahayaan.
Hasil
Komentar
Posting Komentar