Isi kandungan:

Pembantu Peribadi: 9 Langkah (dengan Gambar)
Pembantu Peribadi: 9 Langkah (dengan Gambar)

Video: Pembantu Peribadi: 9 Langkah (dengan Gambar)

Video: Pembantu Peribadi: 9 Langkah (dengan Gambar)
Video: Cara Temuduga Cemerlang: Tips Cara Memasuki Bilik Temuduga, SALAH dan Yang CEMERLANG! 2024, Julai
Anonim
Image
Image
Pembantu peribadi
Pembantu peribadi

Dalam arahan ini, saya akan menunjukkan kepada anda bagaimana anda dapat menggunakan kekuatan ESP8266, kreativiti dalam reka bentuk dan pengaturcaraan perisian, untuk menjadikan sesuatu yang menarik dan mendidik.

Saya menamakannya sebagai Pembantu Peribadi, kerana ia berukuran saku, bercakap dengan anda, dan boleh memberi anda beberapa maklumat berguna, dan (tentu saja) beberapa maklumat yang tidak berguna (tetapi masih sejuk) mengenai cuaca, masa dan tarikh, mesej gmail, kelahiran langsung dan kadar kematian dan lain-lain.

Saya cuba memastikan reka bentuknya tetap sederhana. Peranti ini mempunyai dua antara muka pengguna. Butang tekan fizikal, dan aplikasi berbasis web, pengguna dapat mengaksesnya menggunakan penyemak imbas web dan mengubah pengaturan dan konfigurasi perangkat.

Bagaimana ia berfungsi? Komponen utama projek ini adalah mikrokontroler dan modul Pemain Muzik. Pengawal mikro kami (NodeMCU) menggunakan teknologi WiFi untuk menyambung ke titik akses dengan sambungan internet; sehingga dapat memperoleh data yang diperlukan, memprosesnya, dan memberitahu Pemutar Muzik (DFPlayer Mini) kapan, file MP3 mana yang harus dimainkan.

Buat masa ini, itu sahaja yang perlu anda ketahui. Saya akan memberikan maklumat yang lebih terperinci pada langkah seterusnya, jadi jangan risau.

Langkah 1: Bahagian Diperlukan

Bahagian Diperlukan
Bahagian Diperlukan
  • NodeMCU ESP-12E (Antaramuka USB-ke-Serial CP2102)
  • DFPlayer Mini
  • Butang Tekan sesaat SPST
  • Pembesar suara 8 Ohm 2 Watt
  • Kad Micro SD (Anda memerlukan beberapa Kilobyte, jadi kapasiti tidak menjadi masalah)
  • Mur dan Baut

    • Kacang M3 (x6)
    • Baut M3 - 23 mm (x4)
    • Bolt M3 - 15 mm (x2)
  • Diod Isyarat 1N4148 (x1)
  • Perintang

    • Perintang 1K (x1)
    • Perintang 10K (x2)

Bahagian lain:

  • PCB (anda boleh memesan prototaip dalam talian atau mengunjungi kedai tempatan)
  • Lembaran akrilik potong laser

    • Lembaran jernih tebal 2 mm
    • Ketebalan 2.8 mm dua kepingan warna yang berbeza (oren dan hijau, merah dan hijau, terserah anda dan warnanya tidak penting)
  • Mana-mana 5 volt (sekurang-kurangnya) pengecas USB mikro 1 ampere (untuk menghidupkan peranti)

Langkah 2: Bagaimana Ia Berfungsi

Bagaimana ia berfungsi
Bagaimana ia berfungsi
Bagaimana ia berfungsi
Bagaimana ia berfungsi

Baiklah, saya ingin memberi anda maklumat yang lebih terperinci mengenai bagaimana perisian berfungsi.

Perisian ini terdiri daripada beberapa Perkhidmatan. Setiap Perkhidmatan, mempunyai Modulnya sendiri. (Anda boleh menganggap perkhidmatan sebagai kelas dan modulnya sebagai kaedahnya). Setiap modul, dapat dianggap sebagai objek yang dapat dilaksanakan. Oleh itu, perisian kami terdiri daripada beberapa objek yang boleh dilaksanakan.

Di sini kami mempunyai beberapa perkhidmatan dan sub-perkhidmatan atau modulnya:

  • Gmail

    Mesej yang belum dibaca

  • Cuaca
    • Suhu Semasa
    • Keadaan Hari Ini
    • Hari ini Rendah / Tinggi
    • Keadaan Esok
    • Esok Rendah / Tinggi
    • Ramalan Kerpasan
    • Matahari Terbit / Matahari Terbenam
  • Masa
    • Masa Semasa
    • Tarikh semasa
  • Kelahiran & Kematian

    • Kelahiran Dunia
    • Kematian Dunia

Terdapat barisan bulat yang memegang modul di dalamnya. Kami memanggilnya Operasi Antrian. Saya katakan, setiap modul adalah objek yang boleh dilaksanakan. Oleh itu, apabila anda menekan butang tekan pada peranti, ia akan melihat barisan operasi, dan laksanakan modul (atau objek) seterusnya.

Anda boleh mengedit barisan anggota operasi di antara muka pengguna berasaskan web yang akan saya terangkan kemudian. Buat masa ini, saya akan memberikan contoh. Pertimbangkan barisan operasi semasa seperti ini:

QUEUE (Mesej yang Belum Dibaca | Ramalan Pemendakan | Masa Semasa)

Anda menekan butang tekan, Mesej yang Belum Dibaca harus dijalankan.

QUEUE (Mesej yang Belum Dibaca | Ramalan Pemendakan | Masa Semasa)

Oleh itu, peranti akan menggunakan data yang dikumpulkannya (di sini, jumlah mesej anda yang belum dibaca yang diambil dari umpan API Google mail) untuk bercakap dengan anda. Tetapi bagaimana? Di sini, NodeMCU akan memberitahu Modul MP3, kapan ia harus memainkan sekeping MP3 mana untuk membuat ayat yang bermakna. Untuk mencapai ini, saya telah merancang barisan, pemasa dan algoritma yang berbeza. (Sekiranya anda seorang lelaki c ++ dan seperti pengawal mikro, anda boleh mempelajari kodnya sendiri.)

Oleh itu, anda akan mendengar, peranti mula bercakap: Anda mempunyai 4 mesej yang belum dibaca di peti masuk gmail anda.

Anda menekan butang tekan sekali lagi, modul seterusnya adalah Ramalan Pemendakan yang harus ditangani.

QUEUE (Mesej yang Belum Dibaca | Ramalan Pemendakan | Masa Semasa)

Jadi, anda akan mendengar, seperti: Jangan lupa payung anda, hujan esok esok. Dan seterusnya… Satu lagi perkara yang menarik: untuk beberapa modul (seperti ramalan hujan), anda boleh menjangka ayat rawak untuk keadaan yang sama. Sebagai contoh, jika esok ada hujan dan hujan, dan bukan salji, anda boleh menjangkakan "ada kemungkinan hujan esok", "bawa cahaya matahari anda sendiri, esoknya hujan", "tut, tut, kelihatan seperti hujan untuk hari esok", atau…

Bagaimana kita mendapatkan data yang berbeza untuk setiap perkhidmatan?

  • Gmail

    Mesej yang Belum DibacaGoogle mempunyai API yang kuat sehingga anda dapat mengakses pelbagai perkhidmatannya termasuk Gmail. Tetapi, untuk tujuan keselamatan, anda memerlukan kaedah pengesahan dan kebenaran yang berbeza seperti OAuth. ESP8266 tidak begitu kuat untuk menjalankan algoritma hash rumit yang berbeza. Oleh itu, saya menggunakan teknologi log masuk yang lebih lama dan sederhana untuk mengakses peti masuk gmail. Ini adalah Suapan Atom Google yang juga dapat digunakan oleh Pembaca RSS. Kami mengirim permintaan HTTP untuk mengakses umpan gmail dan responsnya dalam format XML. Oleh itu, kami mengira jumlah mesej yang belum dibaca dan menggunakannya dalam program kami

  • WeatherKami menggunakan Yahoo Weather API untuk mendapatkan maklumat cuaca yang berbeza. Baru-baru ini, sama seperti Google, Yahoo telah mengubah API Cuaca, jadi anda perlu menggunakan standard OAuth untuk mengakses datanya. Sayangnya, ESP8266 tidak dapat mengatasi kerumitannya, jadi kami akan menggunakan muslihat untuk menyelesaikan masalahnya. Daripada mengakses Yahoo Weather API secara langsung, kami akan mengirimkan permintaan kami ke fail khusus pada pelayan. Fail kami mendapat data dari Yahoo Weather dan hanya menghantarnya kepada kami.

    • Keadaan Esok Keadaan Besok akan memberitahu anda jika hari esok lebih panas atau lebih sejuk daripada hari ini, atau di sana jika tidak akan ada perubahan suhu yang masuk akal. Kami membandingkan "hari ini rendah / tinggi" dengan "rendah / tinggi esok" untuk mencapainya. Anda boleh menyemak bagaimana saya menulis algoritma ini dan bagaimana ia berfungsi dalam fail perpustakaan program.
    • Ramalan Kerpasan Sekiranya anda memeriksa dokumentasi Yahoo Weather, anda dapat melihat jadual Kod Keadaan. Seperti yang dinyatakan, Kod keadaan digunakan sebagai tindak balas untuk menggambarkan keadaan semasa. Kami akan menggunakan kod keadaan esok dan maknanya untuk mengetahui sama ada terdapat hujan dan adakah hujan atau salji.
  • TimeNTP bermaksud Protokol Masa Rangkaian. Ini adalah protokol rangkaian untuk penyegerakan jam antara sistem komputer. Oleh kerana kami mempunyai akses Internet, kami akan menggunakan Pelanggan NTP untuk mendapatkan masa dari Pelayan NTP, dan menyegerakkannya melalui pemasa dalaman ESP8266 (seperti yang anda gunakan dengan milis () jika anda seorang lelaki Arduino).
  • Kelahiran & KematianKami akan mengira jumlah kelahiran dan kematian sejak awal hari (Terima kasih kepada Pelanggan NTP, mudah untuk mendapatkan bilangan saat sejak awal hari). Saya menggunakan kadar kelahiran dan kematian dunia dari ekologi.

Langkah 3: Sediakan Perisian

Sediakan Perisian
Sediakan Perisian

Kami akan menggunakan Arduino IDE untuk memuat naik program kami ke NodeMCU. Anda boleh memuat turun dan memasang Arduino IDE terbaru dari laman rasmi mereka:

Sebelum memulakan, anda perlu menyediakan Arduino IDE untuk Nodemcu. Saya tidak akan memberitahu anda langkah-langkahnya di sini, kerana ini mungkin bukan topik. Tetapi anda boleh mengikuti langkah-langkah dan penjelasan mengenai pengajaran yang sangat baik ini.

Program kami mempunyai beberapa pergantungan perpustakaan. Apakah kebergantungan perisian?

Ketergantungan adalah istilah kejuruteraan perisian yang luas yang digunakan untuk merujuk ketika perisian bergantung pada yang lain.

Berikut adalah senarai perpustakaan Arduino yang anda perlukan di komputer anda untuk dapat menyusun program Pembantu Peribadi:

  • ArduinoJson
  • DFRobotDFPlayerMini
  • Pelanggan NTP

Anda boleh memuat turun satu persatu dari halaman Github mereka, kemudian mengekstrak fail zip ke direktori perpustakaan Arduino. Jalannya di sistem anda adalah: C: / Users [nama-nama pengguna anda] Dokumen / Arduino

Saya menulis perpustakaan untuk menjaga kodnya bersih dan mengelakkan kerumitan. Muat turun fail PersonalAssistant-Library.zip dan ekstrak ke direktori perpustakaan Arduino. Sama seperti apa yang anda buat untuk ketiga perpustakaan itu sebelumnya.

Fail YahooWeather.php

Oleh kerana ESP8266 tidak cukup kuat untuk melakukan algoritma hash, kami tidak dapat menggunakannya secara langsung untuk mengirim permintaan HTTP ke Yahoo Weather API, berdasarkan piawaian OAuth. Oleh itu, kami akan menggunakan fail antara peranti kami dan Yahoo Weather API. Anda boleh memuat turun fail YahooWeather.zip, mengekstraknya dan meletakkan fail YahooWeather.php dalam pelayan web. Contohnya jika domain anda adalah example.com dan anda memasukkan fail tersebut ke dalam direktori api, titik akhir api anda menjadi example.com/api/YahooWeather.php Anda akan menghantar permintaan data cuaca ke titik akhir ini.

Sketsa Program dan FFS (Sistem Fail Flash)

Papan NodeMCU anda mempunyai sistem fail flash 4 MB untuk menyimpan data. Oleh itu, apabila kita memilikinya, mengapa tidak menggunakannya?

Ingat ketika saya mengatakan bahawa peranti kita mempunyai dua antara muka pengguna? Di samping butang sunyi itu, antara muka pengguna kedua kami adalah aplikasi berasaskan web yang mudah. Dengan aplikasi ini, anda dapat memanipulasi barisan operasi dengan mengaktifkan / mematikan setiap modul, mengubah tetapan perkhidmatan atau konfigurasi peranti, seperti menetapkan SSID WiFi dan kata laluan. Kami akan menyimpan semua fail ini dalam Sistem Fail Flash NodeMCU, dan menjalankan pelayan web ringan untuk menangani permintaan pengguna dari penyemak imbas web mereka.

Menyunting Fail Config

Muat turun fail PersonalAssistant-Sketch.zip dan ekstraknya di suatu tempat di komputer anda. Buka file config.json yang terletak:

PersonalAssistant / data / config.json

Anda boleh menggunakan penyunting teks atau kod seperti notepad, notepad ++, Atom, dll. Failnya adalah struktur data json, jadi pasangan kunci / nilai yang boleh dibaca oleh manusia dan anda boleh mengeditnya dengan mudah. Anda boleh menukar medan ini:

  • Gmail

    • nama pengguna: nama pengguna Gmail anda dengan @ gmail.com
    • kata laluan: kata laluan Gmail anda
  • Cuaca
    • celaka: lokasi tempat anda ingin menerima maklumat cuaca. WOEID (Where On Earth IDentifier) adalah pengecam rujukan yang digunakan oleh Yahoo untuk lokasi. Anda boleh melakukan carian di lokasi WOEID dalam pautan ini.
    • api: ia adalah titik akhir API. Pautan ke fail yahooweather.php anda.
    • appId, consumerKey dan consumerSecret: untuk mengakses Yahoo Weather API, anda perlu membuat projek di halaman pembangun Yahoo. Ini akan memberi anda Kunci dan Rahsia Pengguna yang diperlukan untuk menggunakan API. Untuk memulakan, lawati halaman Pembangun Cuaca Yahoo dan Buat Aplikasi.
  • Zon masa

    zon waktu: masukkan zon waktu berdasarkan lokasi anda. Ia boleh menjadi nombor apungan positif atau negatif dan unitnya berjam-jam

  • WiFi

    • ssid: SSID rangkaian anda.
    • kata laluan: kata laluan rangkaian anda. NodeMCU akan menggunakan ssid dan kata laluan untuk menyambung ke rangkaian wifi anda.

Memuat naik data Sketsa Program dan FFS

Sambungkan NodeMCU ke komputer anda, menggunakan kabel mikro-USB ke USB.

Sekarang buka fail PersonalAssistant.ino yang terletak:

PersonalAssistant / PersonalAssistant.ino

Di Arduino IDE, dari Tools> Board, pilih NodeMCU 1.0 (ESP-12E Module). Dari Tools> Port, pilih port yang betul. Ini mewakili NodeMCU anda.

Sekarang, pilih Tools> ESP8266 Sketch Data Upload, ini akan memuat naik kandungan folder data ke ESP8266. Tunggu beberapa saat sehingga selesai. Kemudian, pilih Sketsa> Muat naik atau tekan butang Ctrl + U pada papan kekunci anda untuk mula memuat naik program. Tunggu sehingga anda melihat mesej "muat naik selesai".

Langkah 4: Sediakan Kad Micro SD

Kami menggunakan kad micro SD untuk menyimpan kepingan fail MP3. NodeMCUlah yang memutuskan fail mana yang harus dimainkan pada waktu apa dan DFPlayer Mini membantunya dalam membuat ayat yang bermakna dengan menyahkod fail MP3.

Saya menggunakan Amazon Polly untuk menghasilkan kepingan suara yang saya perlukan.

Amazon Polly adalah perkhidmatan yang mengubah teks menjadi pertuturan seumur hidup, yang membolehkan anda membuat aplikasi yang bercakap, dan membina kategori produk baru yang boleh digunakan untuk pertuturan.

Jangan lupa, peranti kami tidak menggunakan Amazon Polly API untuk bercakap secara dinamik. Kami mempunyai beberapa bahagian suara luar talian yang statik, dan dengan menyatukannya, kami membuat ayat yang berbeza.

Saya menggunakan laman web ini untuk menghasilkan fail MP3. Output suara yang saya pilih ialah Bahasa Inggeris AS / Salli.

Satu-satunya perkara yang perlu anda lakukan ialah memuat turun fail microSD.zip, kemudian mengeluarkannya ke kad SD mikro anda. Ia mengandungi semua 78 fail MP3 yang diperlukan.

Mungkin Kad Micro SD anda disertakan dengan dan penyesuai. Anda boleh memasukkan Kad Mikro SD anda ke dalam penyesuai dan memasangkannya ke komputer riba anda. Sekiranya komputer anda tidak menyokong pembacaan kad, anda harus menggunakan Pembaca Kad luaran.

Langkah 5: Merancang Skema dan Menyiapkan PCB

Merancang Skema dan Menyusun PCB
Merancang Skema dan Menyusun PCB
Merancang Skema dan Menyusun PCB
Merancang Skema dan Menyusun PCB
Merancang Skema dan Menyusun PCB
Merancang Skema dan Menyusun PCB
Merancang Skema dan Menyusun PCB
Merancang Skema dan Menyusun PCB

Saya telah merancang Skema dan Papan menggunakan Autodesk EAGLE. Saya telah memasukkan fail SCH dan BRD dalam PersonalAssistant-PCB.zip. Anda boleh mengedit dan / atau menghantarnya ke pengeluar PCB tempatan atau dalam talian dengan mudah untuk memesan dan mendapatkan papan anda.

Satu lagi perkara yang perlu disebutkan ialah, ESP8266 beroperasi dalam 3.3v sementara DFPlayer Mini berfungsi dalam 5v. Oleh kerana kedua-dua modul ini perlu bercakap antara satu sama lain melalui antara muka bersiri, kami tidak dapat menghubungkan output 5v ke input 3.3v secara langsung kerana ia merosakkan ESP8266 anda. Oleh itu, kita memerlukan penukaran tahap dari 5v hingga 3.3v. Kami menggunakan diod isyarat dan perintang 10K untuk mewujudkannya.

Langkah 6: Selesaikannya

Selesaikannya
Selesaikannya
Selesaikannya
Selesaikannya

Pemasangan papan cukup mudah kerana anda mempunyai beberapa komponen. Ikuti reka bentuk skema dan papan pada langkah 5 untuk meletakkan setiap item dengan mudah di tempatnya yang betul.

Saya mulakan dengan menyolder perintang dan diod, kerana ia kecil. Anda boleh memotong ekornya yang tidak diperlukan dengan mudah menggunakan pemotong wayar. Dari atas ke bawah, anda harus meletakkan perintang 1K, 10K dan 10K.

Anda tidak perlu menyolder semua pin NodeMCU dan DFPlayer Mini pada PCB. Memateri pin dengan jalan sudah cukup.

Jangan lupa, pembesar suara dan diod mempunyai kekutuban. Anda mempunyai satu pembesar suara dan satu diod dalam komponen anda. Untuk diod, sisi dengan garis hitam adalah sisi negatif atau katod.

Langkah 7: Kandang

Pagar
Pagar
Pagar
Pagar
Pagar
Pagar

Saya memutuskan untuk merancang penutup mewah dengan cara yang kreatif. Saya bimbang dengan bentuknya yang pelik semasa reka bentuk, tetapi pada akhirnya, ia tidak seburuk itu. Sekurang-kurangnya ia kelihatan seperti piano besar dan terasa hebat memegang tangan anda!

Daripada bentuk kubik heksahedron klasik dengan 6 muka, saya merancang penutup pelbagai lapisan. Dari bawah ke atas, setiap lapisan meletakkan pada lapisan bawahnya. (Saya menamakannya L0 hingga L6, dari bawah ke atas)

Warna dan Ketebalan

Anda boleh menggunakan dua warna pelengkap untuk membuat kontras terkuat, seperti:

  • Merah dan Hijau
  • Biru dan Jingga
  • Kuning dan Ungu
  • Biru dan Kuning

Saya menggunakan akrilik yang jelas untuk lapisan atas, supaya anda dapat melihat di dalam peranti.

Ketebalan lapisan atas (lapisan-6) harus 2 mm. Ketebalan lapisan lain (lapisan-0 hingga lapisan-5) harus 4 mm. Sekiranya anda ingin menggunakan pelindung akrilik 2.8 mm, seperti yang saya lakukan, tidak ada masalah. Tetapi anda perlu memotong dua siri dari lapisan-1 dan lapisan-3 untuk mengimbangi.

Untuk memasang penutup, mulakan dari lapisan bawah (L0). Letakkan papan di atasnya, gunakan bolt yang lebih pendek, dan ketatkan menggunakan mur. Anda boleh sekarang, pasangkan empat baut yang lebih panjang dari bawah lapisan-0. Sesuatu seperti menara. Kemudian anda boleh terus memasang lapisan lain di atasnya dengan mudah.

Catatan: Anda boleh menggunakan mesin basuh pilihan antara lapisan bawah dan papan.

Saya juga telah menambahkan teks maklumat untuk port peranti (kad kuasa dan kad SD). Anda boleh menggunakan ukiran laser pada lapisan atas.

Saya telah memasukkan format fail CDR dan DXF. Anda boleh memuat turunnya, mengeditnya dan menggunakannya untuk pemotongan laser.

Langkah 8: Mengakses Antara Muka Pengguna Berasaskan Web

Mengakses Antara Muka Pengguna Berasaskan Web
Mengakses Antara Muka Pengguna Berasaskan Web

Kuasa Peranti

Anda boleh menghidupkan peranti dengan menggunakan pengecas USB mikro 5v. Pasang USB mikro ke port Daya peranti, iaitu input USB mikro pada NodeMCU anda.

Akses Antaramuka Pengguna

Adakah anda ingat kami memuat naik beberapa fail ke dalam Sistem Fail Flash ESP8266? Sudah tiba masanya untuk menggunakannya. Yang anda perlukan, ialah Alamat IP yang diberikan kepada ESP8266 di rangkaian. Terdapat banyak cara untuk mencari alamat IP. Saya akan menyenaraikan sebilangannya di sini:

  • Di halaman konfigurasi penghala anda, di suatu tempat dalam Daftar Sewa DHCP, Anda dapat melihat senarai peranti dengan Alamat IP mereka di rangkaian anda.
  • Di Microsoft Windows dan macOS anda boleh menjalankan perintah seperti arp -a di terminal.
  • Di Android dan iOS, anda boleh menggunakan aplikasi seperti Fing. (Android / iOS)
  • Di Linux, anda boleh menggunakan alat seperti Nmap.

Setelah mencari Alamat IP, buka menggunakan penyemak imbas web anda. Anda boleh memanipulasi barisan operasi dengan mengaktifkan / mematikan modul.

Langkah 9: Pemikiran Akhir

Projek ini sangat memakan masa dan tenaga. Anda boleh menambahkan lebih banyak pilihan ke Pembantu Peribadi. Saya telah membiarkan beberapa bahagian terbuka untuk pembangunan masa depan. Beberapa bahagian seperti:

  1. Menambah lebih banyak perkhidmatan dan modul. Contohnya mengira nombor, menggulung dadu atau membalikkan duit syiling.
  2. Setelah menyambung ke rangkaian, peranti dapat menyebut Alamat IP. Anda boleh menambahkan pilihan ini untuk mempermudah proses mencari Alamat IP.
  3. Menambah kemampuan untuk mengubah tetapan WiFi di panel kawalan berasaskan web.
  4. Menambah kemampuan untuk mengubah tetapan perkhidmatan di panel kawalan berasaskan web. (Bentuk html mereka sudah siap. Anda perlu menangani permintaan)
  5. Menambah lebih banyak tindak balas suara di pelbagai keadaan peranti.
  6. Menambah halaman log masuk untuk panel kawalan berasaskan web. Anda boleh melakukannya dengan menambahkan / membandingkan Cookies dalam baris tajuk

Dan, saya ingin mengetahui idea anda mengenai arahan ini.:)

Disyorkan: