Isi kandungan:
- Langkah 1: Memuat turun Express untuk Pi
- Langkah 2: Persediaan Pelayan Pi
- Langkah 3: Persediaan IFTTT (Pencetus)
- Langkah 4: Persediaan IFTTT (Tindakan)
- Langkah 5: Pemajuan Pelabuhan
- Langkah 6: Memeriksa Kerja Anda Sejauh Ini
- Langkah 7: Membina Litar
- Langkah 8: Cubalah
Video: LED Rumah yang Dikendalikan Google: 8 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Akhir-akhir ini, saya mempunyai banyak masa lapang, jadi saya telah mengusahakan banyak projek.
Projek ini akan membolehkan anda mengawal LED RGB melalui Google Home menggunakan Raspberry Pi. Sekarang ada 3 bahagian projek, menyiapkan Raspberry Pi, menyiapkan Google Home dengan perintah khusus menggunakan IFTTT, dan kemudian membuat litar untuk lampu. Saya membuat litar sendiri, tetapi saya yakin anda boleh mendapatkan sesuatu dari Adafruit yang melakukan apa yang diperlukan.
Bahan untuk Bahagian Raspberry Pi
- Raspberry Pi - mana-mana akan berfungsi, tetapi saya menggunakan Zero
- Wireless Dongle - jika Pi tidak mempunyai Wifi
- Laman Utama Google - Pilihan jika anda mempunyai Pembantu Google di telefon anda
Bahan untuk Bahagian Litar- Jangan biarkan ini menghalangi anda … Cukup mudah
- Papan Protob
- Kawat
- Jalur LED
- Bekalan Kuasa 12V - Apa-apa di atas 2 Amps mestilah baik
- Jack Barrel DC - Saiz yang sama dengan bekalan kuasa anda
- Transistor Kuasa NPN BJT (x3) - Saya menggunakan TIP31C
-
Header Pin Lelaki & Wanita - Pilihan, tetapi sangat digalakkan
Langkah 1: Memuat turun Express untuk Pi
Saya tidak akan terlalu terperinci mengenai penyediaan Pi kerana terdapat banyak tutorial di luar sana untuk menyiapkannya.
Apa yang perlu anda lakukan yang tidak saya lindungi …
- Flashing Raspberry Pi dengan Raspbian terbaru
- Sediakan kad rangkaian supaya anda dapat mengakses internet dari Pi
- Tetapkan IP statik pada Raspberry Pi
Di sinilah bermulanya keseronokan! Kita perlu memasang penjana nodeJS, npm, express, dan express.
sudo apt-get kemas kini
sudo apt-get install nodejs npm
Setelah dipasang, jalankan yang berikut
npm pasang penjana ekspres ekspres
Express membolehkan anda membuat pelayan web yang sangat asas untuk digunakan oleh Raspberry Pi anda. Penjana ekspres hanya menghasilkan fail secara automatik untuk pelayan ekspres.
Buat direktori dan cd ke dalam direktori. Saya menamakan piWebpage saya. Sekarang jalankan yang berikut (dilihat dalam gambar juga)
mkdir piWebpage
cd piWebpage express --view = ejs webApp
Ini akan menghasilkan folder bernama webApp dengan semua fail ekspres di dalamnya. Sekiranya anda merancang untuk melakukan lebih banyak perkara dengan halaman web ini kemudian dan anda suka PUG, ganti --view = ejs dengan --view = pug. Kami tidak akan menyentuh laman web, jadi untuk aplikasi ini, tidak masalah apa yang kami gunakan.
Langkah 2: Persediaan Pelayan Pi
Pindah ke direktori webApp baru.
cd webApp
pasang npm
Pemasangan npm akan memakan masa kerana memasang semua kebergantungan untuk ekspres.
Tampal setColor.py ke dalam folder webApp. Fail ini mempunyai beberapa pratetap di dalamnya untuk warna asas. Jangan ragu untuk menambah lebih banyak yang anda mahu. Julatnya adalah 0 hingga 255 di mana 255 berwarna penuh. Pada satu ketika, saya mungkin akan menambahkan kemampuan untuk meredupkan lampu, tetapi buat masa ini, lampu ini terang sepenuhnya.
Bergerak ke laluan
laluan cd
Sekarang ganti index.js dengan fail yang dilampirkan. Ini akan menambah beberapa baris untuk menerima arahan POST yang akan dihantar oleh Google Home. Dari POST itu, kita akan memilih warna dan memberitahu Pi untuk menjalankan skrip setColor python untuk menyesuaikan lampu.
Satu perkara terakhir… Kembali ke folder webApp.
cd ~ / piWebpage / webApp
Dengan menggunakan editor kegemaran anda, tampal dan simpan kod di bawah ke dalam webApp.js anda. Mana-mana sahaja yang baik selagi sebelumnya "module.exports = app;"
// Siapkan pemacu perkakasan LEDconst {exec} = memerlukan ('child_process'); exec ('sudo pigpiod', (err, stdout, stderr) => {if (err) {console.log ('Error loading LED Driver'); return;} else console.log ('Pemandu LED Berjaya Dimuat'); });
Seperti komen mengatakan, pigpiod adalah pemacu perkakasan untuk isyarat PWM yang akan kita gunakan untuk menyesuaikan warna LED. Saya percaya ia sudah terpasang di Raspbian, tetapi jika tidak…
sudo apt-get install pigpiod
Sekarang untuk ujian sebenar! Memulakan pelayan!
DEBUG = webapp: * npm bermula
Langkah 3: Persediaan IFTTT (Pencetus)
IFTTT boleh melakukan banyak perkara, dan saya sangat mengesyorkan melihat beberapa aplikasi.
Pertama, anda perlu membuat akaun. Gunakan akaun Google yang sama yang dikaitkan dengan Laman Utama Google anda, jika tidak, akaun tersebut tidak akan diselaraskan bersama. Setelah selesai dan log masuk, klik kanan atas halaman IFTTT di mana ia menunjukkan nama dan avatar anda. Kemudian klik Applet Baru dari menu lungsur.
Sekiranya anda ingin tahu, IFTTT bermaksud IF This Then Itupun jika anda tidak perasan dengan skrin yang muncul. Jadi yang kami mahukan ialah Jika Pembantu Google, maka Webhook sebagai pilihan kami.
Teruskan dengan mengklik + ini yang akan memuatkan bar carian. Dalam carian, ketik Google Assistant dan klik ikon di bawah carian.
Dalam Pilih Pencetus, pilih pilihan ke-3 yang disebut Ucapkan frasa dengan bahan teks. Sekarang ini membolehkan anda mempunyai 3 perintah yang akan melakukan tindakan yang sama. Anda menambahkan $ ke dalam frasa di mana anda akan menyebut warnanya. Sebagai contoh, jika saya secara semula jadi mengatakan Hai Google, Tetapkan LED Biru (semudah berteriak pada peranti), maka saya akan menaip ke medan Tetapkan LED $. Lakukan itu untuk ketiga-tiga bidang dengan versi perintah yang berbeza.
3 yang saya gunakan adalah
LED $
Tetapkan LED $
Tetapkan warna LED $
Bidang terakhir adalah apa yang anda mahukan Google Home anda membalas setelah menyatakan perintah anda. Ini boleh menjadi apa sahaja yang anda mahukan, tetapi saya menggunakan warna Tetapan hingga $. $ Bermaksud dia akan mengulangi warnanya kembali.
Klik Buat Pencetus
Langkah 4: Persediaan IFTTT (Tindakan)
Setelah mengklik Buat Pencetus, anda akan memuat kembali ke paparan jika ini maka itu, tetapi ini telah diganti dengan logo Pembantu Google. Teruskan dengan mengklik + itu
Perkara yang sama seperti sebelumnya yang membawa anda ke bar carian. Ketik Webhooks dan klik ikon webhook di bawah bar carian. Di bawah Pilih Tindakan untuk Webhooks, hanya ada satu pilihan, jadi klik Buat permintaan web.
Di sinilah keadaan menjadi sukar. Oleh kerana Google bukan komputer lain di rumah anda, anda memerlukan alamat IP luaran anda. Ini memerlukan beberapa pemajuan port, tetapi kami akan menyinggungnya kemudian. Untuk mendapatkan alamat IP luaran anda, pergi ke
Di medan URL, ketik https://xxx.xxx.xxx.xxx:3000/{{TextField}} (dengan x adalah alamat IP luaran anda). Sekiranya anda ingin tahu, TextField akan mempunyai warna yang anda pilih semasa anda membuat perintah. Sebab kami menggunakan 3000 adalah kerana itulah port yang sedang dijalankan oleh pelayan Raspberry Pi Express. (Anda boleh menukar port dalam kod, tetapi kami hanya menggunakan tetapan lalai untuk Express)
Untuk Kaedah, pilih POST.
Untuk Jenis Kandungan, pilih teks / dataran.
Untuk Badan, taipkan {{TextField}}
Bagi anda yang tahu bagaimana perintah POST berfungsi, anda akan berfikir bahawa jika anda menguraikan isi badan permintaan anda akan mendapat warna. Untuk sebab tertentu, tidak ada yang dimasukkan ke dalam bidang permintaan, jadi saya sebenarnya menguraikan URL untuk warnanya. Harap segera diperbaiki, kerana itu akan mempermudah kod saya di laluan index.js. Tetapi saya menyimpang.
Terakhir, klik Buat Tindakan dan kemudian Selesai di halaman seterusnya. (Saya mematikan pemberitahuan, tetapi itu pilihan)
Langkah 5: Pemajuan Pelabuhan
Di sinilah keadaan sukar dijelaskan kerana semua router berbeza …
Sekarang kami mempunyai Google untuk menghantar perintah ke rumah kami menggunakan port 3000, tetapi ia tidak tahu peranti mana yang perlu dilayari di LAN. Untuk mengatasinya, kita perlu meneruskan port 3000 ke alamat IP tempatan Raspberry Pi anda.
Masuk ke penghala anda menggunakan 10.0.0.1 atau 192.168.1.1 (Saya juga melihatnya di mana digit terakhir adalah 254) dan cari pemajuan port. Dalam pemajuan port, seperti gambar, anda akan menamakan peranti baru (IFTTT) dan meneruskan port (3000) ke alamat IP Pi (dalam kes saya 10.0.0.11).
Simpan tetapan baru anda, reboot penghala anda, dan periksa untuk memastikan pelayan Raspberry Pi anda masih berjalan. Sekiranya tidak berjalan, mulakannya semula.
Kembali ke laman web yang berguna https://canyouseeme.org/. Di bawah alamat IP anda, ia mempunyai pemeriksa port. Dengan andaian pemajuan port anda betul, ketik 3000 dan tekan check port. Ia mesti kembali dengan Kejayaan.
Langkah 6: Memeriksa Kerja Anda Sejauh Ini
Sekarang … saat yang anda nantikan … Beritahu Google arahan seperti LED biru (jika anda mengikuti contoh saya).
Dengan andaian semuanya berjalan dengan betul, anda akan mendapat output yang dilihat dalam gambar. Kami belum mempunyai litar, jadi yang akan anda lihat hanyalah teks di skrin. Biasanya terdapat kelewatan kedua atau 2 sebelum diproses dari Google dan muncul di Pi.
(Langkau ke langkah seterusnya jika ini sama dengan gambar)
Sekarang ada beberapa perkara yang perlu diperhatikan jika ia tidak berfungsi …
Dalam gambar, ada garis yang mengatakan
POST / warna / biru 200 250.458 ms - 2
200 adalah bahagian penting. Sekiranya anda tidak melihat 200, maka terdapat POST yang buruk yang bermaksud pelayan anda tidak tahu apa yang harus dilakukan dengan data tersebut. Kembali ke Langkah 2 dan periksa fail index.js anda.
Juga dalam gambar
stdout: biru
stderr:
Ini adalah output dari fail python yang menjalankan LED. Sekiranya anda melihat ralat di sana, mungkin pemandu anda tidak dipasang pada Langkah 2.
Terakhir, jika tidak ada yang muncul sama sekali … IFTTT anda mungkin tidak disiapkan dengan betul atau gagal menyambung ke pelayan. Kembali ke halaman IFTTT, dan di bar navigasi atas, klik Aktiviti. Di sana, anda dapat melihat setiap kali aplikasi anda berjalan, dan jika ada ralat, anda dapat melihatnya. Saya membuat perintah Google dengan pelayan Pi dimatikan dan mendapat kesalahan dalam gambar.
Langkah 7: Membina Litar
Sebab mengapa kita perlu melakukan ini adalah kerana Raspberry Pi tidak mempunyai kuasa yang cukup … Jadi penyelesaiannya adalah … LEBIH KUASA (Tim alat Taylor menggerutu di kejauhan). AKA bekalan kuasa lain (12V 2A)
Bahan untuk Bahagian Litar
- Papan Protob
- Kawat
- Jalur LED RGB
- Bekalan Kuasa 12V - Apa-apa di atas 2 Amps mestilah baik
- Jack Barrel DC - Saiz sama dengan bekalan kuasa anda
- Transistor Kuasa NPN BJT (x3) - Saya menggunakan TIP31C
- Header Pin Lelaki & Wanita
Dengan menggunakan gambar yang berguna yang saya curi dari jalinan dengan GPIO Pi Zero, anda dapat melihat GPIO17, GPIO18, dan GPIO 27 berada di sebelah satu sama lain dengan GND. Kami akan menggunakan petak 4 pin (Pin 11, 12, 13, 14).
Mula-mula, saya akan mengesyorkan memasangkan header lelaki ke jalur LED anda seperti yang dilihat dalam gambar (bukan karya terbaik saya). Ini memungkinkan untuk memutuskan sambungan dengan mudah sekiranya anda memerlukannya. Saya menggunakan header wanita untuk sambungan jalur LED ke protoboard saya dan header lelaki dari protoboard ke Raspberry Pi. (Sentiasa gunakan sambungan wanita untuk sumber kuasa / isyarat). Anda tidak perlu menggerakkan semua pin Pi di sebelah satu sama lain seperti yang saya lakukan … Saya hanya mahu ia kelihatan bersih, tetapi itu banyak kerja.
Penjelasan Litar
Bagi anda yang tidak biasa dengan transistor, transistor pada dasarnya adalah suis digital. Pin GPIO dari Pi memicu tiga suis (merah, hijau, dan biru). Secara khusus melihat RED dalam rajah litar, ketika GPIO_17 dihidupkan, suis "menutup" menghubungkan RED ke GND menyebabkan lampu merah menyala. Apabila GPIO_17 dimatikan, maka suis terbuka dan dengan itu lampu mati.
Pangkalan - GPIO
Pengumpul - Warna (MERAH, HIJAU, BIRU)
Emitter - Ground (dari kedua-dua Power Supply dan Pi)
Pastikan untuk menyambungkan tanah Pi ke tanah bekalan kuasa. Lampu akan tetap berfungsi, tetapi akan kelihatan sangat redup sehingga tanah disambungkan.
Saya mempunyai peranti transistor ke-4 di protoboard saya. Ini adalah L7805CV yang digunakan untuk menukar 12V ke 5V sehingga saya dapat menghidupkan Pi pada litar yang sama. Ia berfungsi tetapi tetap dipanaskan, jadi saya mengeluarkan sambungannya.
Langkah 8: Cubalah
Setelah selesai dengan litar, mulakan semula Pi anda sebelum membuat sambungan. Ini kerana pin mungkin masih aktif dari ujian pelayan. Sebagai alternatif, anda boleh membunuh pelayan dan khidmat babi.
Pasang LED dan pelompat dari protoboard ke Pi. Periksa semula semua sambungan sebelum memberikan kuasa. Sekiranya anda menyalahgunakan kabel, anda mungkin menggoreng Pi (tanpa tekanan).
Senarai semak
- Periksa wayar
- Kuasa Pi
- Litar Kuasa
- Start Server (DEBUG = webapp: * npm bermula semasa berada di direktori ~ / piWebpage / webApp)
- Suruh Google membuat tawaran anda!
TAHNIAH anda tidak meletupkan apa-apa, dan kini anda dapat mengawal LED anda dari Google Home.
Tinggalkan komen sekiranya anda menghadapi masalah, dan saya akan berusaha sebaik mungkin untuk menghubungi anda!
Disyorkan:
Automasi Rumah yang Dikendalikan Internet / awan Menggunakan Esp8266 (aREST, MQTT, IoT): 7 Langkah (dengan Gambar)
Automasi Rumah yang Dikendalikan Internet / awan Menggunakan Esp8266 (aREST, MQTT, IoT): SEMUA kredit kepada http://arest.io/ untuk perkhidmatan awan !! IoT subjek yang paling banyak dibincangkan di dunia sekarang !! Pelayan dan perkhidmatan awan yang menjadikannya mungkin adalah titik tarikan dunia masa kini … MENGATASI BARISAN JARAK adalah dan merupakan
ESP8266 RGB LED STRIP WIFI Control - NODEMCU Sebagai Alat Jauh IR untuk Jalur Led yang Dikendalikan Melalui Wifi - Kawalan Telefon Pintar STRIP LED RGB: 4 Langkah
ESP8266 RGB LED STRIP WIFI Control | NODEMCU Sebagai Alat Jauh IR untuk Jalur Led yang Dikendalikan Melalui Wifi | RGB LED STRIP Smartphone Control: Hai kawan-kawan dalam tutorial ini kita akan belajar bagaimana menggunakan nodemcu atau esp8266 sebagai remote IR untuk mengawal jalur LED RGB dan Nodemcu akan dikendalikan oleh telefon pintar melalui wifi. Jadi pada dasarnya anda dapat mengawal STRIP LED RGB dengan telefon pintar anda
Automasi Rumah yang Dikendalikan Suara (seperti Alexa atau Google Home, tidak memerlukan Wifi atau Ethernet): 4 Langkah
Automasi Rumah yang Dikendalikan Suara (seperti Alexa atau Google Home, tidak memerlukan Wifi atau Ethernet): Pada dasarnya ini adalah relai terkawal arduino berasaskan SMS dengan persediaan pembantu google untuk menghantar mesej atas arahan suara. Ia sangat mudah dan murah dan berfungsi seperti iklan Alexa dengan anda perkakas elektrik yang ada (jika anda mempunyai Moto -X smartp
Retro-CM3: Konsol PERMAINAN yang dikendalikan oleh RetroPie yang Kuat: 8 Langkah (dengan Gambar)
Retro-CM3: Konsol PERMAINAN RetroPie yang Kuat: Instruksional ini diilhamkan oleh PiGRRL Zero, pembuat Gameboy Zero asli Wermy dan Konsol Permainan Dikendalikan GreatScottLab. Konsol permainan berasaskan RetroPie ini menggunakan raspberry pi zero (W) sebagai inti mereka. TETAPI, setelah saya membina beberapa
Sistem Automasi Rumah yang Dikendalikan dengan Murah, Mudah, Internet: 5 Langkah (dengan Gambar)
Sistem Automasi Rumah yang Dikendalikan dengan Murah, Mudah, Internet: Sekiranya anda mempunyai haiwan peliharaan / anak-anak dan perlu memberi makan atau memukulnya melalui internet, sistem ini mungkin berguna bagi anda. Ini adalah kaedah yang sangat mudah dan murah untuk mengawal motor, LED, dll di rumah dari mana-mana komputer yang disambungkan ke web. Yang diperlukan hanyalah Webc