Isi kandungan:

Pemantauan Rumah Pintar Menggunakan Alexa dan Arduino: 9 Langkah (dengan Gambar)
Pemantauan Rumah Pintar Menggunakan Alexa dan Arduino: 9 Langkah (dengan Gambar)

Video: Pemantauan Rumah Pintar Menggunakan Alexa dan Arduino: 9 Langkah (dengan Gambar)

Video: Pemantauan Rumah Pintar Menggunakan Alexa dan Arduino: 9 Langkah (dengan Gambar)
Video: Tonton Sampai Habis !!! Belajar Arduino Di Jamin Bisa 2024, November
Anonim
Image
Image
Mengumpulkan Bahan
Mengumpulkan Bahan

Di dunia sekarang orang lebih banyak menghabiskan masa di tempat kerja dan bukannya di rumah mereka. Oleh itu, terdapat keperluan sistem pemantauan rumah di mana orang dapat mengetahui keadaan rumah semasa mereka bekerja. Lebih baik jika seseorang hanya bertanya kepada "seseorang" tentang kediaman mereka semasa waktu bekerja. Ini dapat dicapai dengan memanfaatkan Amazon Alexa sebagai pembantu yang dapat memberi pengguna maklumat yang diperlukan mengenai kediaman mereka.

Bukan Di Tempat Kerja sahaja pengguna dapat mengetahui keadaan rumah di mana-mana tempat di dunia selagi mereka mempunyai sambungan internet dan Amazon Alexa.

Fungsi berikut dilaksanakan dalam projek ini:

1) Kawal Peranti rumah seperti kipas dan lampu

2) Menceritakan status peranti

3) Menceritakan keadaan cuaca rumah (suhu dan kelembapan)

4) Menghantar gambar dalaman rumah kepada pengguna melalui Gmail apabila diperlukan.

5) Menghantar pemberitahuan sekiranya -

* Penceroboh (juga menghantar foto)

* Kebakaran

* Tetamu (juga menghantar foto)

Langkah 1: Mengumpulkan Bahan

Mengumpulkan Bahan
Mengumpulkan Bahan
Mengumpulkan Bahan
Mengumpulkan Bahan
Mengumpulkan Bahan
Mengumpulkan Bahan

Bahan yang diperlukan

Arduino Uno

Modul Wifi ESP8266

Linkit Smart 7688 Duo

DHT11

Geganti

Sensor halangan IR

Kamera Web

Amazon Echo Dot

Kawat papan roti dan pelompat

Perisian dan Perkhidmatan dalam talian:

Thingspeak.com

Arduino IDE

Set Kemahiran Amazon Alexa

Amazon Alexa Echosim.io (untuk Menguji Kemahiran)

Tanpa sandaran

Kotak Penolak

Langkah 2: Memprogram Arduino dan ESP8266

Memprogram Arduino dan ESP8266
Memprogram Arduino dan ESP8266
Memprogram Arduino dan ESP8266
Memprogram Arduino dan ESP8266

Muat turun Arduino IDE Dari laman web rasmi:

Buka Arduino IDE dan pergi ke file-> preferences-> dalam jenis URL pengurus papan tambahan -

Pergi ke alat -> papan -> Pengurus Papan dan pasang pakej esp8266 yang akhirnya dijumpai.

Untuk memprogram arduino, pasangkan kabel USB dari arduino ke komputer dan pilih Arduino / Genuino UNO di alat-> papan. Juga pastikan anda memilih port COM hak di Tools (nombor port COM boleh didapati di Device manager). Tulis Program yang diperlukan, Kompilasi dan klik muat naik jika tidak ada kesalahan.

Untuk memprogram ESP8266 buat sambungan seperti yang ditunjukkan dalam rajah. sambungkan usb dari arduino ke Komputer. Dalam alat-> papan-> pilih Generik ESP8266 dan juga pilih port COM kanan. Tulis Program yang diperlukan, Kompilasi dan klik muat naik jika tidak ada kesalahan. Pastikan anda menyambungkan Arduino RST ke GND (arduino bertindak seperti pengaturcara ke ESP8266).

Dalam Projek Ini Pertama ESP8266 diprogramkan dan kemudian sambungan litar dikeluarkan. Kemudian Litar disambungkan semula seperti yang ditunjukkan dalam Gambar yang diberi nama "Litar Sambungan". Dan kemudian arduino diprogramkan.

Langkah 3: Mengkonfigurasi Thingspeak.com

Mengkonfigurasi Thingspeak.com
Mengkonfigurasi Thingspeak.com

Buat akaun di thingspeak.com.

kami menggunakan saluran di thingspeak untuk menyimpan maklumat kawalan peranti dan mengarahkannya ke arduino / alexa. kami juga menyimpan nilai suhu dan kelembapan di saluran. Ia seperti lokasi penyimpanan maklumat.

Log masuk ke thingspeak, pergi ke saluran saluran saya dan buat saluran baru. Berikan nama dan keterangan ke saluran anda. Dalam projek kami, kami memerlukan 8 saluran (anda boleh menjalankan tugas dengan menggunakan lebih sedikit saluran tetapi akan menjadi agak rumit semasa memprogram). Perkara juga mempunyai kekangan masa semasa mengemas kini saluran. Mesti ada jurang 10-15 saat antara pengemaskinian saluran tertentu secara berturut-turut.

Lapan saluran dengan nilai dan maknanya diberikan di bawah

nama saluran (nilai1-makna, nilai2-makna, dll):

1) Kawalan peranti (0 -lightON, 1- lightOff, 2- fan ON, 3- Fan Off)

2) status cahaya (0- lampu mati, 1- lampu menyala)

3) status kipas (0- kipas mati, 1- kipas dihidupkan)

4) kelembapan (nilai kelembapan)

5) suhu (nilai suhu)

6) pemberitahuan penceroboh (1- amaran penceroboh)

7) pemberitahuan kebakaran (1- amaran kebakaran)

8) pemberitahuan tetamu (1- makluman tetamu)

apabila anda mengklik saluran mana pun, anda dapat melihat id salurannya dan menulis kekunci API di tab kunci API. id saluran diperlukan untuk mendapatkan maklumat / nilai dalam saluran. Kekunci tulis diperlukan untuk menyimpan nilai di saluran.

Permintaan http untuk mengemas kini saluran adalah:

api.thingspeak.com/update?api_key=&field1=

digantikan oleh kunci tulis saluran yang sesuai dan boleh (0/1 sekiranya berlaku kawalan peranti atau suhu / kelembapan)

Permintaan http untuk membaca nilai dari saluran adalah:

api.thingspeak.com/channels//field/field1/last.html

digantikan oleh id saluran tertentu dari saluran yang ingin kita baca.

Langkah 4: Program

Program ini terbahagi kepada 3 bahagian:

A) Program untuk Arduino: program untuk arduino sangat mudah. Ia menerima data dari ESP8266 secara bersiri dan berdasarkan data yang diterima peranti dikendalikan. Lebih banyak maklumat mengenai program terdapat dalam komen dalam program itu sendiri.

B) Program untuk ESP8266: program untuk ESP8266 melibatkan 3 perkara

1) mengemas kini suhu dan kelembapan menggunakan permintaan

client.print (String ("GET") + "/ update? key = & field1 =" + kelembapan + "HTTP / 1.1 / r / n" + "Host:" + host + "\ r / n" + "Sambungan: tutup / r / n / r / n "); // kemas kini kelembapan

client.print (String ("GET") + "/ update? key = & field1 =" + suhu + "HTTP / 1.1 / r / n" + "Host:" + host + "\ r / n" + "Sambungan: tutup / r / n / r / n "); // kemas kini suhu

digantikan oleh kekunci tulis yang sesuai yang terdapat di saluran thingspeak untuk kelembapan dan suhu masing-masing. dan hos adalah api.thingspeak.com.

muat turun pustaka dht dari:

2) membaca dari saluran yang sesuai mengenai hal-hal yang bercakap dan peranti kawalan berdasarkan nilai-nilai yang diperoleh: client.print (String ("GET") + "/ saluran //field/field1/last.html HTTP / 1.1 / r / n" + " Host: "+ host +" / r / n "+" Sambungan: tutup / r / n / r / n ");

di mana digantikan oleh id saluran yang sesuai yang terdapat di thingspeak.

3) Menghantar amaran sekiranya suhu tinggi melalui kotak pendorong

String host1 = "api.pushingbox.com";

client.print (String ("GET") + "/ pushhingbox? devid = HTTP / 1.1 / r / n" + "Host:" + host1 + "\ r / n" + "Sambungan: tutup / r / n / r / n ");

di mana digantikan oleh id peranti anda di kotak tekan.

Langkah 5: Mengkonfigurasi Linkit Smart 7688 Duo dan Webcam

Mengkonfigurasi Linkit Smart 7688 Duo dan Kamera Web
Mengkonfigurasi Linkit Smart 7688 Duo dan Kamera Web
Mengkonfigurasi Linkit Smart 7688 Duo dan Kamera Web
Mengkonfigurasi Linkit Smart 7688 Duo dan Kamera Web
Mengkonfigurasi Linkit Smart 7688 Duo dan Kamera Web
Mengkonfigurasi Linkit Smart 7688 Duo dan Kamera Web

Dalam projek ini, webcam dan linkit smart 7688 duo digunakan untuk menangkap gambar yang diperlukan dan mengirimkannya kepada pengguna. Anda juga dapat menggunakan modul kamera arduino dan menghubungkannya dengan arduino atau menggunakan kamera IP mana pun.

Tekan dan tahan butang wifi pada linkit smart 7688 selama 20 saat untuk menetapkan semula papan. Kemudian setelah tetapan wifi diset semula, anda akan dapat melihat nama titik aksesnya dalam sambungan rangkaian tanpa wayar. Sekarang sambungkan komputer ke rangkaian itu. setelah anda menyambungkannya buka penyemak imbas dan ketik 192.168.100.1 di bar alamat. Anda akan dapat melihat portalnya. tetapkan kata laluan untuk log masuk ke portalnya.

Selepas anda masuk, pergi ke tab rangkaian dan pilih mod Stesen (kami memerlukannya (linkit smart 7688 duo) untuk mengakses internet) dan sambungkan ke rangkaian Wifi anda dan tekan Konfigurasikan dan mulakan semula.

Setelah papan itu dimulakan semula, ia akan diberi alamat IP tempatan. Cari alamat menggunakan alat IP atau portal penghala anda. Dalam kes saya, itu adalah 192.168.1.4. Sekarang taipkan alamat IP tempatan di bar alamat penyemak imbas. pastikan komputer disambungkan ke rangkaian yang sama dengan linkit pintar. Anda akan diminta masuk semula.

Untuk mengaktifkan streaming dari kamera web, anda harus mengaktifkan-j.webp

Selepas anda masuk, pergi ke tab perkhidmatan dan periksa aktifkan-j.webp

Selepas persediaan untuk menyambungkan kamera web anda ke hostit usb 7688 linkit smart 7688 melalui kabel OTG. Sekarang untuk melihat Aliran membuka penyemak imbas dan taip: di bar alamat. dalam kes saya ialah 192.168.1.4:4400

untuk mengambil snap snap ketik perintah:? action = snapshot

Sekarang gambar ini tersedia di dalam negara tetapi kami perlu menjadikannya tersedia untuk perkhidmatan push box. Untuk mencapai ini, kita perlu melakukan pemajuan port. Pemajuan port boleh dilakukan di portal penghala. Id proses berbeza untuk router yang berbeza. Cuma google untuk mengetahui cara membuat penghantaran ke hadapan untuk penghala tertentu. Ia biasanya tersedia di bawah perkhidmatan NAT. Selepas port anda boleh menggunakan port ini (iaitu.. 4440) dari IP luaran anda. IP luaran boleh didapati dengan mengikat "whats my ip" di google.

Anda perlu meletakkan alamat ini

iaitu.. https://::? action = snapshot

di kotak pushhing (yang dijelaskan pada langkah berikutnya) sehingga kotak pushhing dapat mengakses gambar ini dan melampirkannya ke surat dan mengirimkannya kepada Anda bila diperlukan.

Anda juga boleh menyimpan gambar dalam kad sd kerana Linkit smart 7688 duo juga dilengkapi dengan slot kad sd untuk menyimpan maklumat. Maklumat lebih lanjut mengenai ini boleh didapati di:

docs.labs.mediatek.com/resource/linkit-sm…

Langkah 6: Mengkonfigurasi PushingBox

Mengkonfigurasi PushingBox
Mengkonfigurasi PushingBox

pushhingbox digunakan untuk mengirim pemberitahuan mengenai pelbagai amaran dalam projek ke gmail.

log masuk ke pushhingbox menggunakan akaun google:

pergi ke perkhidmatan tambah perkhidmatan saya. terdapat banyak perkhidmatan yang boleh dipilih seperti Gmail, twitter, push notification untuk android dll …

pilih Gmail (kerana kami perlu mengirim foto sebagai lampiran) dan isikan konfigurasi nama gmail yang sesuai dan id gmail pengguna yang harus dihantar peringatan.

pergi ke senario saya dan buat senario baru. beri nama untuk senario (cth: ALERT) tambah perkhidmatan yang dibuat sebelumnya.

tulis subjek dan isi surat yang sesuai dan masukkan url untuk mengambil tangkapan skrin kamera web untuk melampirkan foto. Buat senario yang berbeza untuk amaran yang berbeza.api untuk melaksanakan senario kotak pendorong adalah:

Langkah 7: Membuat Kemahiran Alexa Menggunakan Backendless

Membuat Kemahiran Alexa Menggunakan Backendless
Membuat Kemahiran Alexa Menggunakan Backendless
Membuat Kemahiran Alexa Menggunakan Backendless
Membuat Kemahiran Alexa Menggunakan Backendless
Membuat Kemahiran Alexa Menggunakan Backendless
Membuat Kemahiran Alexa Menggunakan Backendless

backendless digunakan untuk mencipta kemahiran alexa. Ini adalah pengaturcaraan drag and drop sederhana yang digunakan untuk membuat kemahiran alexa (atau program apa pun) yang dapat diakses oleh API backendless.

buat akaun di backendless:

  • Log masuk ke akaun anda dalam akaun tanpa backend. klik Buat aplikasi dan beri nama pada aplikasi anda
  • Klik ikon Logik Perniagaan yang terdapat di bar ikon di sebelah kiri. Anda akan melihat skrin PERKHIDMATAN API.
  • Klik ikon "+" untuk membuat perkhidmatan baru. Pastikan memilih CODELESS dalam pop timbul "Perkhidmatan Baru". Masukkan "AlexaService" untuk nama perkhidmatan. Klik butang SIMPAN:
  • Backendless membuat Perkhidmatan API dan akan meminta anda membuat kaedah untuk perkhidmatan tersebut. Ini akan menjadi kaedah yang akan memproses permintaan dari Alexa. Masukkan "handleRequest" untuk nama kaedah. Pastikan untuk memilih POST untuk operasi REST, dan nyatakan argumen dengan nama "req" dan ketik "Any Object" seperti yang ditunjukkan:
  • Backendless membuat placeholder untuk logik tanpa kaedah kaedah. Klik butang EDIT untuk mula beralih ke Pereka Logik Tanpa Cod. Pada blok placeholder fungsi yang dibuat, klik area yang bertuliskan "doSomething" dan ubah menjadi "sendAlexaResponse". Fungsi ini digunakan untuk membuat alexa mengatakan sesuatu yang dapat disahkan sebagai hujah. Klik butang SIMPAN sehingga fungsinya disimpan.
  • Klik ikon roda gigi yang terletak di blok ungu tepat di sebelah perkataan "Fungsi". Tambahkan dua argumen dengan menyeret blok input seperti yang ditunjukkan pada gambar di bawah. Tetapkan nama-nama argumen sebagai "whatToSay" dan "waitForResponse". Perhatikan bahawa semasa anda menambahkan argumen, kawasan Blok Konteks secara automatik diisi dengan blok yang mewakili nilai argumen.
  • Ubah logik fungsi supaya kelihatan seperti dalam gambar. Untuk blok "Buat Objek", gunakan ikon roda gigi untuk mengubah nama sifat objek. Jangan lupa untuk menyimpan karya anda dengan mengklik butang SIMPAN.
  • Setelah fungsi tersuai dibina, beralih kembali ke kaedah handleRequest perkhidmatan AlexaService. Klik kategori Fungsi Kustom di bar alat di sebelah kiri dan seret blok sendAlexaResponse untuk berhubung dengan penyambung kembali kaedah perkhidmatan anda
  • Langkah-langkah di atas juga boleh didapati di laman web mereka:
  • Klik simpul "Tambah Baru" di bawah Fungsi di bahagian BROWSER. Dalam blok placeholder fungsi yang dibuat, klik kawasan yang bertuliskan "doSomething" dan ubah menjadi "getIntentName" ubah blok sehingga fungsi tersebut seperti gambar yang ditunjukkan. Ini akan mendapat nama maksud berdasarkan ujaran sampel. Kembali ke perkhidmatan api-> menangani permintaan di bahagian penyemak imbas. Pemboleh ubah dan logik dibuat dari bahagian sistem. Buat pemboleh ubah berikut yang ditunjukkan dalam gambar.
  • seterusnya kita menyimpan nama niat untuk meminta pemboleh ubah. Dan kemudian bandingkan dengan maksud. contohnya jika permintaan itu "pengenalan" maka pemboleh ubah respons ditetapkan ke "hai! Saya dapat mengawal ……" dan respons ini dibacakan oleh alexa akhirnya. ubah blok seperti yang ditunjukkan.
  • jika permintaan itu adalah maksud LightsOn maka kami akan mengemas kini saluran thingspeak menjadi '0' menggunakan permintaan get http dan pada masa yang sama kami mengemas kini status peranti (1/0 bergantung pada Hidup / Mati). Perkara yang sama diulang untuk LightsOff, FanOn dan FanOff.
  • Untuk cuaca, kami membaca dari saluran Suhu dan kelembapan dan menyimpan hasilnya dalam pemboleh ubah bergerak balas. Sebagai saluran hanya memberikan nilai, kami menambahkan teks untuk memberi respons yang bermakna
  • untuk snapshot ruang tamu kami menjalankan senario pushhingbox
  • untuk status peranti kami membaca maklumat dari saluran status thingspeak:
  • untuk makluman dan makluman yang kami baca dari saluran amaran (bomba, penceroboh dan tetamu):
  • berdasarkan nilai yang kami peroleh dari bidang pemberitahuan, pesanan amaran yang sesuai disimpan dalam pemboleh ubah respons0. jika tidak ada pemberitahuan maka tidak ada pesan pemberitahuan yang disimpan.
  • setelah pemberitahuan dibaca maka '0' dikemas kini di saluran pemberitahuan sehingga alexa tidak akan membaca pemberitahuan yang sama lagi. Kemudian akhirnya berdasarkan permintaan, pemboleh ubah respons0 / respons dibaca dengan kuat.

Langkah 8: Mengkonfigurasi Kemahiran Alexa di Konsol Pembangun Amazon:

Mengkonfigurasi Skill Alexa di Konsol Pembangun Amazon
Mengkonfigurasi Skill Alexa di Konsol Pembangun Amazon
Mengkonfigurasi Skill Alexa di Konsol Pembangun Amazon
Mengkonfigurasi Skill Alexa di Konsol Pembangun Amazon
Mengkonfigurasi Skill Alexa di Konsol Pembangun Amazon
Mengkonfigurasi Skill Alexa di Konsol Pembangun Amazon

pergi ke konsol pemaju amazon dan log masuk menggunakan akaun amazon.

pergi ke pemaju konsol dan klik pada tab ALEXA. Klik pada kit kemahiran alexa untuk bermula.

buat jenis kemahiran khusus, beri nama dan nama panggilan untuk kemahiran itu. maksud dan ujaran masing-masing diberikan dalam kod.

pada tab konfigurasi pilih HTTPS sebagai jenis titik akhir perkhidmatan isi URL lalai dengan URL API dari backendless. Pilih pilihan ke-2 dalam Sijil untuk titik akhir lalai dalam sijil SSL. Anda juga boleh menguji kemahiran menggunakan simulator ujian.

Setelah ujian selesai, anda boleh menerbitkan kemahiran dengan maklumat penerbitan yang diperlukan.

Langkah 9: Persediaan Akhir dan Selesai

Persediaan Akhir dan Selesai!
Persediaan Akhir dan Selesai!
Persediaan Akhir dan Selesai!
Persediaan Akhir dan Selesai!

Lakukan sambungan litar seperti yang ditunjukkan.

Kadang-kadang ESP8266 akan berfungsi kerana arus yang tidak mencukupi. Jadi, walaupun diperhatikan dalam litar, disarankan untuk menghidupkan ESP8266 dari sumber 3.3v yang berasingan. Sekiranya anda menggunakan power bank pastikan anda mengurangkan voltan dari 5v ke 3.3v menggunakan pengatur voltan 3.3v. Muat naik program ke ESP8266 dan arduino. Saya telah menunjukkan sambungan ke mentol, perkara yang sama dapat diperluas ke kipas atau peranti apa pun. Akhirnya gunakan amazon echo atau echosim.io untuk menguji kemahiran anda.

Anda mesti mengaktifkan kemahiran menggunakan nama panggilan (seperti kes saya - "myhome"). Kadang-kadang ia tidak akan berfungsi jika digunakan tanpa nama pemanggil kerana saya telah menunjukkan beberapa kali dalam video saya

Semoga anda menikmati tutorial!

Terima kasih!

Disyorkan: