Halo semuanya!
Hari ini saya memiliki artikel tentang bagaimana, dengan bantuan speaker Yandex Alice dan Arduino, Anda dapat membuka pintu yang terhubung ke interkom. Jika Anda tertarik, silakan, di bawah kucing.
Sering terjadi seseorang menelepon interkom, dan pada saat itu Anda sedang sibuk dengan sesuatu, atau terlalu malas untuk membuka pintu. Situasi yang akrab, bukan?
Dan interkom saya tidak membuka pintu sama sekali tanpa mengangkat gagang telepon, dan jika Anda tidak mengangkat gagang telepon dalam waktu 30 detik setelah panggilan, tombol pembuka pintu akan berhenti aktif hingga panggilan baru datang. Karena interkomnya tidak murah (pada saat itu), kodok itu mencekik saya untuk mengubahnya ke yang lain. Dan saya memutuskan untuk melawannya.
Ide pertama untuk menyederhanakan hidup saya muncul 10 tahun yang lalu, saya memutuskan untuk membuat adaptor interkom-telepon sehingga panggilan dari interkom akan digandakan ke telepon rumah saya. Buat diagram, buat prototipe di papan tempat memotong roti. Semuanya bekerja, tetapi saya tidak pernah melewati prototipe ini. Semuanya masih tergeletak di tempat sampah hingga hari ini.
Proyek kedua diimplementasikan pada router TL-MR3020 dengan firmware CyberWRT dan telepon SIP software BareSIP. Saat Anda menekan tombol panel luar ruangan, router, secara paralel dengan panggilan interkom, memanggil ponsel dan dimungkinkan bahkan saat berada di kota lain untuk berbicara dengan orang yang berdiri di dekat pintu apartemen Anda, tetapi ponsel lunak atau router itu sendiri bekerja sangat tidak stabil dan harus ditinggalkan.
Tapi di sini, untuk kebahagiaan saya, tahun lalu mereka memberi saya asisten suara Alice untuk ulang tahun saya dan saya punya ide baru - untuk membuka pintu dengan suara saya, melalui kolom Yandex.
Dan hari ini tibalah saatnya saya berusaha untuk mengimplementasikan ide saya.
Sedikit tentang bagaimana stasiun pintu interkom video bekerja
Panel luar ruangan dihubungkan ke monitor interkom menggunakan 4 kabel GND, +12 V, audio dan video.
Jika pada panel panggilan, tutup kabel Audio melalui resistor 100 Ohm ke GND, maka sinyal panggilan akan terdengar. Dan jika tegangan +12 V diterapkan ke kabel Audio, relai untuk membuka kunci elektromagnetik akan berfungsi.
Gambar di bawah ini menunjukkan diagram koneksi panel luar ruangan dengan doorphone.
Jika Anda menggunakan kabel interkom khusus untuk menghubungkan stasiun pintu ke monitor, maka biasanya dihubungkan sesuai petunjuk berikut:
GND - jalinan
+ 12V - kabel merah
Audio - kabel biru
Video - inti pusat kabel koaksial
Skema
Dapat dilihat dari diagram bahwa untuk menghubungkan perangkat di Arduino ke interkom, Anda hanya perlu menghubungkan 2 kabel. Untuk menghubungkan kabel-kabel ini, saya menggunakan apa yang saya miliki. Alih-alih relai, Anda dapat menggunakan kunci pada transistor NPN atau optocoupler PC817.
Saya menggunakan penerima IR, yang pertama menarik perhatian saya, yang pernah saya jatuhkan dari TV lama dan telah tergeletak di rak di tempat sampah selama bertahun-tahun.
Komponen yang digunakan
Modul Relai Arduino Nano
Penerima IR 38 kHz
Kabel dupont
Alih-alih Arduino nano, Anda dapat menggunakan mikrokontroler lain dari jalur Arduino. Saya menggunakan Arduino nano karena saya punya banyak.
Sumber untuk Arduino
Kodenya cukup sederhana dan lugas.
Untuk menerima dan menyimpan kode tombol yang ditekan, Anda perlu memasukkan pengontrol Arduino ke mode menambahkan tombol jarak jauh. Anda perlu mengatur jumper pada pin D2 dan GND dan menekan tombol reset pada Arduino, setelah itu LED sistem pada papan pengontrol akan menyala dan pengontrol akan menunggu tombol pada remote control ditekan.
Saya sarankan menggunakan remote control TV, sehingga selain kontrol suara, Anda dapat membuka pintu dari remote control tanpa harus bangun dari sofa. Pada remote, yang terbaik adalah memilih tombol yang jarang Anda gunakan, biasanya empat tombol berwarna yang dirancang untuk teleteks. Setelah menerima kodenya, Arduino akan berkedip riang dengan LED dan kembali ke mode standby.
Anda dapat menekan tombol sebanyak yang Anda suka, tetapi Arduino hanya akan mengingat pers terakhir. Untuk keluar dari mode menghafal kode, cukup lepas jumper dan tekan tombol "Reset" pada mikrokontroler.
Kode untuk Arduino
#include <IRremote.h>
#include <EEPROM.h>
//#define TOLERANCE 35 //
#define IR_RECEIVE_PIN 11 //
#define RELAY_PIN 12 //
#define SET_PIN 2 //
IRrecv irrecv(IR_RECEIVE_PIN);
decode_results results;
void setup()
{
irrecv.enableIRIn(); //
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
pinMode(SET_PIN, INPUT_PULLUP); //D10 , ยซ ยป
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
// Serial.begin(115200);
while(!digitalRead(SET_PIN)) // D2 GND
{
set_command();
}
}
void loop()
{
if (irrecv.decode(&results)) //
{
if(LoadEEPROM()==results.value) // (ir_command==results.value)LoadEEPROM();
{
digitalWrite(RELAY_PIN, HIGH); //
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(RELAY_PIN, LOW); //
}
irrecv.resume(); //
}
}
void set_command() //
{
digitalWrite(LED_BUILTIN, HIGH);
if (irrecv.decode(&results))
{
digitalWrite(LED_BUILTIN, LOW);
SaveEEPROM(results.value); // EEPROM
irrecv.resume(); //
}
delay(100);
}
void SaveEEPROM(unsigned long ir_code) // EEPROM
{
EEPROM.write(0, ir_code & 0xFF);
EEPROM.write(1, (ir_code & 0xFF00) >> 8);
EEPROM.write(2, (ir_code & 0xFF0000) >> 16);
EEPROM.write(3, (ir_code & 0xFF000000) >> 24);
}
unsigned long LoadEEPROM() // EEPROM
{
byte val = EEPROM.read(3);
unsigned long ir_code=val;
val = EEPROM.read(2);
ir_code= (ir_code << 8) | val;
val = EEPROM.read(1);
ir_code= (ir_code << 8) | val;
val = EEPROM.read(0);
ir_code= (ir_code << 8) | val;
return ir_code;
}
#include <EEPROM.h>
//#define TOLERANCE 35 //
#define IR_RECEIVE_PIN 11 //
#define RELAY_PIN 12 //
#define SET_PIN 2 //
IRrecv irrecv(IR_RECEIVE_PIN);
decode_results results;
void setup()
{
irrecv.enableIRIn(); //
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
pinMode(SET_PIN, INPUT_PULLUP); //D10 , ยซ ยป
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
// Serial.begin(115200);
while(!digitalRead(SET_PIN)) // D2 GND
{
set_command();
}
}
void loop()
{
if (irrecv.decode(&results)) //
{
if(LoadEEPROM()==results.value) // (ir_command==results.value)LoadEEPROM();
{
digitalWrite(RELAY_PIN, HIGH); //
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(RELAY_PIN, LOW); //
}
irrecv.resume(); //
}
}
void set_command() //
{
digitalWrite(LED_BUILTIN, HIGH);
if (irrecv.decode(&results))
{
digitalWrite(LED_BUILTIN, LOW);
SaveEEPROM(results.value); // EEPROM
irrecv.resume(); //
}
delay(100);
}
void SaveEEPROM(unsigned long ir_code) // EEPROM
{
EEPROM.write(0, ir_code & 0xFF);
EEPROM.write(1, (ir_code & 0xFF00) >> 8);
EEPROM.write(2, (ir_code & 0xFF0000) >> 16);
EEPROM.write(3, (ir_code & 0xFF000000) >> 24);
}
unsigned long LoadEEPROM() // EEPROM
{
byte val = EEPROM.read(3);
unsigned long ir_code=val;
val = EEPROM.read(2);
ir_code= (ir_code << 8) | val;
val = EEPROM.read(1);
ir_code= (ir_code << 8) | val;
val = EEPROM.read(0);
ir_code= (ir_code << 8) | val;
return ir_code;
}
Saat menempatkan kode yang saya posting di atas secara publik - harap tunjukkan tautan ke sumbernya.
Menghubungkan ke Yandex.Station Alice
Untuk menyambungkan ke speaker pintar, Anda memerlukan Yandex Smart Remote.
Tidak perlu membelinya dari mesin pencari dan mitra Rusia, remote control dapat dibeli di Aliexpress sedikit lebih murah. Tetapi perbedaannya tidak cukup besar untuk memainkan lotere dengan membeli remote dari Cina. Saya tidak akan memberi tahu Anda cara menghubungkan remote control ke stasiun, karena ada banyak instruksi terperinci tentang topik ini di Internet, Anda dapat dengan mudah menemukannya dari Yandex yang sama. Saya hanya akan memberi tahu Anda cara mengatur interaksi antara Yandex.Station dan pembuka Arduino.
Untuk melakukan ini, Anda harus pergi ke aplikasi Yandex.Browser - Semua layanan - Perangkat - Manajemen perangkat - Remote control - Tambahkan perangkat - Konfigurasi secara manual - masukkan nama "Pintu" - Tambahkan perintah - masukkan nama perintah suara "Buka" - ambil remote control dari peralatan rumah tangga mana pun, kirimkan ke Yandex. dan tekan tombol yang diperlukan. Setelah LED biru di remote control I. padam, kolom siap untuk menjalankan perintah ini. Sekarang Anda dapat memeriksa, ucapkan frase "Alice membuka pintu", dia, setelah sedikit berpikir, akan melaksanakan pesanan Anda.
Kesimpulan
Menggunakan remote control Yandex di smart home akan memungkinkan Anda mengontrol peralatan rumah tangga apa pun, termasuk remote control. Dan juga cukup mudah, setelah memasang sirkuit paling sederhana di Arduino, untuk mengintegrasikan kendali perangkat lain yang tidak memiliki kendali jarak jauh. Sederhana, andal, dan tidak memerlukan perangkat ini untuk terhubung ke internet.
Jika Anda menyukai artikel saya, Anda dapat berlangganan ke saluran saya agar tidak ketinggalan publikasi berikutnya.
Jika Anda memiliki pertanyaan, Anda dapat menanyakannya di komentar.