Isi kandungan:

Sintesis Ucapan Retro. Bahagian: 12 IoT, Automasi Rumah: 12 Langkah (dengan Gambar)
Sintesis Ucapan Retro. Bahagian: 12 IoT, Automasi Rumah: 12 Langkah (dengan Gambar)

Video: Sintesis Ucapan Retro. Bahagian: 12 IoT, Automasi Rumah: 12 Langkah (dengan Gambar)

Video: Sintesis Ucapan Retro. Bahagian: 12 IoT, Automasi Rumah: 12 Langkah (dengan Gambar)
Video: Simak 4 Langkah Awal Belajar Adobe Photoshop di tahun 2022 2024, Julai
Anonim
Image
Image
Sintesis Ucapan Retro. Bahagian: 12 IoT, Automasi Rumah
Sintesis Ucapan Retro. Bahagian: 12 IoT, Automasi Rumah

Artikel ini adalah yang ke-12 dalam siri automasi rumah Instructables yang mendokumentasikan cara membuat dan mengintegrasikan IoT Retro Speech Synthesis Device ke dalam sistem automasi rumah yang ada termasuk semua fungsi perisian yang diperlukan untuk membolehkan penerapan berjaya dalam persekitaran domestik.

Gambar 1 menunjukkan peranti synth ucapan IoT yang lengkap dan Gambar 2 menunjukkan semua bahagian komponen yang digunakan dalam prototaip yang merupakan faktor bentuk dikurangkan untuk masuk ke produk akhir.

Video menunjukkan peranti sedang beraksi (semasa ujian).

Pengenalan

Seperti yang disebutkan di atas, Instructable ini memperincikan cara membuat Peranti Sintesis Pidato Retro IoT dan didasarkan pada Instrumen Umum SP0256-AL2.

Tujuan utamanya adalah menambahkan sintesis suara 'sekolah lama' ke rangkaian IoT. Mengapa 'sekolah lama' anda mungkin bertanya? Baiklah, kerana saya berusia sekitar 80-an ketika perkara-perkara ini mula dibuat dan saya menghubungkannya dengan BBC Micro saya, jadi bagi saya terdapat beberapa tahap nostalgia di sekitar SP0256-AL2.

Saya lebih suka cabaran untuk mencari tahu apa yang dikatakan oleh suara Dalek ini daripada mendengarkan nada dulcet dari gema Amazon hipster atau Siri. Di mana cabaran yang saya tanyakan kepada anda?

Oh, dan belum lagi saya juga mempunyai 'beg bag' IC 'SP0256-AL2' yang terletak di sekitar.

Peranti ini juga mampu membaca suhu dan kelembapan tempatan sehingga memperluas instrumen persekitaran infrastruktur IoT saya yang ada sekarang ke rangkaian IoT berasaskan MQTT / OpenHAB yang diperincikan dalam siri automasi rumah (HA) ini, berdasarkan kod yang digunakan semula yang diambil dari sini.

Pada intinya adalah ESP8266-07 yang bertanggung jawab untuk komunikasi MQTT dan mengendalikan semua fungsi sistem (akses kad SD, kawalan led, penginderaan suhu / kelembapan, kawalan kelantangan, sintesis pertuturan). Peranti ini dapat dikonfigurasi sepenuhnya melalui fail teks yang disimpan pada kad SD tempatan, walaupun parameter penentukuran dan keselamatan rangkaian juga dapat diprogramkan melalui penerbitan MQTT yang jauh.

Bahagian apa yang saya perlukan?

Lihat bil bahan di sini

Perisian apa yang saya perlukan?

  • Arduino IDE 1.6.9,
  • Arduino IDE dikonfigurasi untuk memprogram ESP8266-07 (sama seperti ini). Kemudian konfigurasikan IDE seperti yang ditunjukkan dalam keterangan terperinci yang disediakan dalam lakaran perisian di sini,
  • Python v3.5.2 jika anda ingin menggunakan keupayaan ujian automatik, perinciannya di sini

Alat apa yang saya perlukan?

  • Mikroskop sekurang-kurangnya x3 (untuk pematerian SMT),
  • Alat kelim penyambung Molex (untuk penyambung JST),
  • Besi solder SMD (dengan pena fluks cecair dan pateri cored fluks),
  • Pemutar skru (pelbagai),
  • Pistol haba,
  • Latihan (pelbagai),
  • Alat ganti kaunter,
  • Fail (pelbagai),
  • Dremel (pelbagai bit),
  • Kekacauan tegas (kecil dan besar, seperti rakan kerja hitam dan decker),
  • Pisau bedah,
  • Vernier calipers (digunakan untuk mengukur fabrikasi dan berguna untuk ukuran komponen PCB),
  • Pemacu sepana dan kacang (pelbagai),
  • Pinset kuat (untuk pematerian SMT),
  • Junior Hacksaw,
  • Bor (dengan pelbagai bit gerudi),
  • Tang halus (titik dan lubang hidung),
  • Pemotong siram,
  • DMM dengan pemeriksaan kesinambungan yang dapat didengar,
  • Skop digital saluran dua (berguna untuk isyarat debugging)

Apakah kemahiran yang saya perlukan?

  • Banyak kesabaran,
  • Banyak ketangkasan manual dan koordinasi tangan / mata yang sangat baik,
  • Kemahiran pematerian yang sangat baik,
  • Kemahiran fabrikasi yang sangat baik,
  • Keupayaan untuk menggambarkan dalam 3 dimensi,
  • Sebilangan pengetahuan mengenai pengembangan perisian dengan 'C' (jika anda ingin memahami kod sumber),
  • Sebilangan pengetahuan mengenai Python (cara memasang dan menjalankan skrip, jika anda ingin menggunakan ujian automatik),
  • Pengetahuan mengenai Arduino dan IDE,
  • Pengetahuan elektronik yang baik,
  • Sebilangan pemahaman mengenai rangkaian rumah anda.

Topik yang Diliputi

  • Panduan pengguna
  • Gambaran Keseluruhan Litar
  • Pembuatan dan Pemasangan PCB
  • Fabrikasi
  • Gambaran Keseluruhan Sistem Perisian
  • Gambaran Keseluruhan Perisian
  • Penentukuran Sensor
  • Konvensyen Penamaan Topik MQTT
  • Carian Debug & Kesalahan
  • Menguji Reka Bentuk
  • Kesimpulannya
  • Rujukan Yang Digunakan

Pautan Siri Ke Bahagian 11: Konsol Desktop IoT. Bahagian: 11 IoT, Automasi Rumah

Langkah 1: Manual Pengguna

Panduan pengguna
Panduan pengguna
Panduan pengguna
Panduan pengguna
Panduan pengguna
Panduan pengguna

Gambar 1 di atas menunjukkan bahagian depan Retro Speech Synthesizer dan gambar 2 di belakang.

Depan Kandang

  1. Pembesar suara pembesar suara
  2. Jack fon telinga 3.5mm: Pembesar suara utama dilumpuhkan semasa bicu 3.5mm dimasukkan.
  3. LED Merah: LED ini menyala sementara kata diucapkan ketika ucapan dimulakan melalui permintaan
  4. LED Biru: LED ini menyala ketika satu kata diucapkan semasa ucapan dimulakan melalui permintaan MQTT IoT.

Belakang Kandang

  1. Butang Reset: Digunakan untuk menetapkan semula peranti IoT ESP8266-07 dengan keras.
  2. Butang Kilat: Apabila digunakan bersamaan dengan Butang Atur Semula membolehkan pemutaran semula ESP8266-07.
  3. Palam Antena WiFi (Palam SMA): Untuk Antena WiFi luaran yang memberikan pelemahan jalur RF paling sedikit kerana penutupnya adalah aluminium.
  4. Port Pengaturcaraan Luaran: Untuk menghilangkan keperluan membuka penutup kandang untuk mendapatkan akses ke ESP8266-07 untuk tujuan pengaturcaraan semula. Pin pengaturcaraan ESP8266-07 telah dibawa ke port pengaturcaraan luaran. Gambar 3 adalah penyesuai pengaturcaraan.
  5. LED Hijau: Ini adalah sistem IoT yang dipimpin dan digunakan untuk menunjukkan status diagnostik peranti dan boot dan semasa beroperasi.
  6. Sensor Suhu / Kelembapan Luaran (AM2320)
  7. Slot Kad SD: Ini menyimpan semua data konfigurasi / keselamatan bersama dengan halaman pelayan web.
  8. 2.1mm Jack bekalan 6vdc

Langkah 2: Gambaran Keseluruhan Litar

Gambaran Keseluruhan Litar
Gambaran Keseluruhan Litar
Gambaran Keseluruhan Litar
Gambaran Keseluruhan Litar

Peranti Retro Speech Synth terdiri daripada dua PCB;

  • RetroSpeechSynthIoTBoard: Ini adalah PCB ESP8266-07 / 12 / 12E / 13 generik dan boleh digunakan semula
  • RetroSpeechSynthBoard: Ini adalah PCB SP0256-AL2 generik

Dewan IoT Synth Speech Synth

Papan ini membolehkan pematerian langsung soket nada ESP8266-07 / 12 / 12E / 13 atau 0.1 yang menampung PCB pembawa ESP8266.

Papan ini dirancang untuk memperluas I / O melalui sambungan I2C dan dapat menyokong tahap bekalan 3v3 atau 5v melalui Q1, Q2, R8-13.

Sambungan ke papan dicapai melalui salah satu daripada dua tajuk J2 dan J4, pita DIL IDC 8-arah atau JST / Molex 5-arah.

U2 dan U3 peruntukan 3.3v dan 5v pada peraturan bekalan kapal. Sebagai alternatif sekiranya diperlukan kapasiti arus yang lebih besar, pengatur shunt siri off board boleh dipasang melalui penyambung J10 dan J11 masing-masing.

Penyambung J1 dan J3 menawarkan sokongan kad SD luaran melalui SPI. J1 telah direka untuk Molex 8-arah dan J3 mempunyai pin langsung untuk sokongan keserasian pin untuk kad SD SD rak dengan sokongan 3v3 atau 5v.

Papan Synth Speech Retro

Kawalan papan ini adalah melalui sambungan I2C 5v melalui J1, J5 atau J6, JST / Molex 4-arah, 8-way DIL IDC atau 8-way IDC penyambung reben.

U2 MPC23017 menyediakan antara muka I2C ke selari ke U3 SP0256-AL2 dan LEDS D1 (Hijau), D2 (Merah) dan D3 (Biru). Output dari Speech Synth diberikan kepada amp audio CR1 TBA820M melalui periuk analog RV1 atau periuk digital U1 MCP4561.

Pot Digital U1 juga dikawal melalui I2C yang mematuhi 5v.

Catatan: Peranti ESP8266-07 dipilih kerana mempunyai penyambung RF IPX yang tidak terpisahkan yang membolehkan Antena WiFi luaran ditambahkan ke kandang aluminium.

Langkah 3: Pembuatan dan Pemasangan PCB

Pembuatan dan Pemasangan PCB
Pembuatan dan Pemasangan PCB
Pembuatan dan Pemasangan PCB
Pembuatan dan Pemasangan PCB
Pembuatan dan Pemasangan PCB
Pembuatan dan Pemasangan PCB
Pembuatan dan Pemasangan PCB
Pembuatan dan Pemasangan PCB

Gambar 1 dan 2 menunjukkan sub-unit PCB lengkap dan berwayar yang terletak di substrat penutup aluminium.

Kedua-dua PCB ini dirancang menggunakan Kicad v4.0.7, dihasilkan oleh JLCPCB dan dipasang oleh saya dan ditunjukkan di atas Gambar 3 hingga 13.

Langkah 4: Fabrikasi

Fabrikasi
Fabrikasi
Fabrikasi
Fabrikasi
Fabrikasi
Fabrikasi

Gambar 1 menunjukkan susun atur gaya Haynes Manual dari semua bahagian pasang siap sebelum pemasangan akhir.

Gambar 2… 5 menunjukkan pelbagai tangkapan semasa pembuatan kandang dengan jarak minimum.

Langkah 5: Gambaran Keseluruhan Sistem Perisian

Gambaran Keseluruhan Sistem Perisian
Gambaran Keseluruhan Sistem Perisian
Gambaran Keseluruhan Sistem Perisian
Gambaran Keseluruhan Sistem Perisian

Peranti Sintesis Ucapan IoT Retro ini mengandungi enam komponen perisian utama seperti yang ditunjukkan dalam gambar 1 di atas.

Kad SD

Ini adalah Sistem Pemfailan Flash SPI luaran dan digunakan untuk menyimpan maklumat berikut (lihat gambar 2 di atas);

  • Indeks Ikon dan ‘Speech Synth Configuration Home Page’. Dilayani oleh peranti IoT apabila tidak dapat menyambung ke rangkaian WiFi IoT anda (biasanya disebabkan oleh maklumat keselamatan yang salah, atau penggunaan kali pertama) dan memberi pengguna cara dari mengkonfigurasi sensor dari jauh tanpa perlu meng-flash kandungan SD baru. Ia juga memuat index1.htm, mqtt.htm dan sp0256.htm, ini adalah laman web yang dilayan secara tempatan yang boleh diakses melalui penyemak imbas web yang membolehkan kawalan sintetik ucapan terhad melalui
  • Maklumat Keselamatan: Ini menyimpan maklumat yang digunakan semasa dihidupkan oleh peranti IoT untuk menyambung ke rangkaian WiFi IoT dan Broker MQTT anda. Maklumat yang dihantar melalui 'Speech Synth Configuration Home Page' ditulis ke fail ini ('secvals.txt').
  • Maklumat Penentukuran: Maklumat yang terdapat dalam fail ('calvals1.txt' dan 'calvals2.txt') digunakan untuk menentukur sensor suhu / kelembapan di atas kapal sekiranya diperlukan. Pemalar penentukuran boleh ditulis ke peranti IoT melalui perintah MQTT dari broker MQTT atau dengan mem-flash kad SD semula. 'calvals1.txt' berkaitan dengan sensor AM2320 dan 'calvals2.txt' ke DHT22.
  • Nilai sistem yang dapat dikonfigurasi pengguna: Maklumat yang terdapat dalam fail ini ('confvals.txt'), yang dipilih oleh pengguna, mengawal respons sistem tertentu, seperti tahap volume digital awal, pengumuman 'sistem siap' secara automatik mengenai langganan broker MQTT dll.

Pelayan mDNS

Fungsi ini dipanggil apabila peranti IoT gagal menyambung ke rangkaian WiFi anda sebagai stesen WiFi dan sebaliknya telah menjadi titik akses WiFi yang serupa dengan penghala WiFi domestik. Sekiranya penghala seperti itu, anda biasanya akan menyambungnya dengan memasukkan Alamat IP seperti 192.168.1.1 (biasanya dicetak pada label yang dilekatkan pada kotak) terus ke bar URL penyemak imbas anda di mana anda akan menerima halaman log masuk untuk dimasukkan nama pengguna dan kata laluan untuk membolehkan anda mengkonfigurasi peranti. Untuk ESP8266-07 dalam mod AP (Access Point mode) peranti secara lalai ke alamat IP 192.168.4.1, namun dengan pelayan mDNS berjalan, anda hanya perlu memasukkan nama mesra manusia 'SPEECHSVR.local' ke dalam bar URL penyemak imbas untuk lihat 'Laman Utama Konfigurasi Sintesis Ucapan'.

Pelanggan MQTT

Pelanggan MQTT menyediakan semua fungsi yang diperlukan untuk; sambungkan ke broker MQTT rangkaian IoT anda, langgan topik pilihan anda dan terbitkan muatan ke topik tertentu. Ringkasnya, ia menyediakan fungsi teras IoT.

Pelayan Web

Pelayan web ini mempunyai dua tujuan;

  1. Sekiranya peranti IoT tidak dapat menyambung ke rangkaian WiFi yang SSID, P / W dll ditentukan dalam fail Maklumat Keselamatan yang terdapat pada Kad SD, peranti akan menjadi Titik Akses. Setelah disambungkan ke rangkaian WiFi yang disediakan oleh Access Point, kehadiran Pelayan Web HTTP membolehkan anda menyambung secara langsung ke peranti dan mengubah konfigurasinya melalui penggunaan Penyemak Imbas Web HTTP yang bertujuan untuk melayani 'Konfigurasi Sintesis Ucapan Laman web Halaman Utama yang juga terdapat pada Kad SD.
  2. Sebaik sahaja Peranti Sintesis Ucapan IoT Retro tersambung ke rangkaian WiFi dan broker MQTT, jika diakses, Pelayan Web HTTP secara automatik akan menyediakan laman web HTTP yang membolehkan kawalan terhad dari peranti IoT untuk berbicara pilihan frasa tetap dan kemampuan untuk kitar dua LED Merah dan Biru depan.

Stesen WiFi

Fungsi ini memberi keupayaan kepada peranti IoT untuk menyambung ke rangkaian WiFi domestik menggunakan parameter dalam fail Maklumat Keselamatan, tanpa ini peranti IoT anda tidak dapat melanggan / menerbitkan ke MQTT Broker.

Titik Akses WiFi

Keupayaan untuk menjadi WiFi Access Point adalah cara yang membolehkan peranti IoT membolehkan anda menyambung ke sana dan membuat perubahan konfigurasi melalui stesen WiFi dan penyemak imbas (seperti Safari di Apple iPad). Jalur akses ini menyiarkan SSID = "SPEECHSYN" + 6 digit terakhir alamat MAC peranti IoT. Kata laluan untuk rangkaian tertutup ini secara imajinatif dinamakan 'PASSWORD'

Langkah 6: Gambaran Keseluruhan Perisian

Gambaran Keseluruhan Perisian
Gambaran Keseluruhan Perisian
Gambaran Keseluruhan Perisian
Gambaran Keseluruhan Perisian
Gambaran Keseluruhan Perisian
Gambaran Keseluruhan Perisian

Mukadimah

Untuk berjaya menyusun kod sumber ini, anda memerlukan salinan kod dan perpustakaan tempatan yang digariskan di bawah dalam Langkah 12, Rujukan Digunakan. Sekiranya anda tidak pasti cara memasang perpustakaan Arduino, pergi ke sini.

Gambaran keseluruhan

Perisian ini menggunakan mesin negara seperti yang ditunjukkan dalam gambar 1 di atas (salinan penuh sumber di repositori GitHub saya di sini). Terdapat 5 negeri utama seperti yang dinyatakan di bawah;

  • DI DALAMNYA

    Keadaan inisialisasi ini adalah keadaan pertama yang dimasukkan setelah kuasa dinyalakan

  • NOCONFIG

    Keadaan ini dimasukkan sekiranya setelah mengaktifkan fail secvals.txt yang tidak sah atau hilang dikesan. Dalam keadaan ini, Halaman Konfigurasi dapat dilihat

  • TUNGGU NW

    Keadaan ini bersifat sementara, dimasukkan sementara tidak ada sambungan rangkaian WiFi

  • MQTT PENDING

    Keadaan ini bersifat sementara, dimasukkan setelah sambungan rangkaian WiFi dibuat dan sementara tidak ada hubungan dengan broker MQTT di rangkaian tersebut

  • AKTIF

    Ini adalah keadaan operasi biasa yang dimasukkan sebaik sahaja sambungan rangkaian WiFi dan sambungan MQTT Broker terjalin. Dalam keadaan ini, suhu, indeks panas dan kelembapan pada IoT Retro Speech Synthesis Device diterbitkan secara berkala kepada MQTT Broker. Dalam keadaan ini, Halaman Utama Speech Synth dapat dilihat

Peristiwa mengawal peralihan antara keadaan dijelaskan dalam gambar 1 di atas. Peralihan antara negeri juga diatur oleh parameter SecVals berikut;

  • Alamat IP Broker MQTT ke-1. Dalam bentuk perpuluhan bertanda AAA. BBB. CCC. DDD
  • Pelabuhan Broker MQTT ke-2. Dalam bentuk integer.
  • Sambungan MQTT Broker ke-3 cuba dilakukan sebelum beralih dari mod STA ke mod AP. Dalam bentuk integer.
  • SSID Rangkaian WiFi ke-4. Dalam bentuk teks percuma.
  • Kata Laluan Rangkaian WiFi ke-5. Dalam bentuk teks percuma.

Seperti disebutkan di atas jika peranti IoT tidak dapat dihubungkan sebagai Stesen WiFi ke rangkaian WiFi siapa SSID dan P / W ditentukan dalam secvals.txt yang dipegang pada Kad SD, peranti IoT akan menjadi Titik Akses. Setelah disambungkan ke titik akses ini, ia akan menyediakan 'Laman Utama Konfigurasi Sintesis Ucapan' seperti yang ditunjukkan di atas dalam Pic 2 (dengan memasukkan 'SPEECHSVR.local' atau 192.168.4.1 ke dalam bar alamat URL penyemak imbas anda). Halaman utama ini membolehkan penyusunan semula Peranti Sintesis Ucapan IoT Retro melalui penyemak imbas

Akses Jauh semasa berada dalam keadaan AKTIF

Setelah disambungkan ke MQTT Broker, mungkin juga untuk menentukur semula dan mengkonfigurasi semula peranti melalui penerbitan topik MQTT. Fail calvals.txt mempunyai akses R / W dan secvals.txt mempunyai akses tulis sahaja yang terdedah.

Juga seperti yang disebutkan di atas, sekali dalam mod aktif adalah mungkin untuk mengakses Speech Synth melalui antara muka HTTP dengan memasukkan 'SPEECHSVR.local' atau 192.168.4.1 ke dalam bar alamat URL penyemak imbas anda. Antaramuka berasaskan HTTP ini memungkinkan untuk mengawal asas Speech Synth. Gambar 3, 4 dan 5 menunjukkan laman web yang tersedia.

Penyahpepijat pengguna

Semasa urutan but, sistem hijau peranti IoT yang dipimpin di bahagian belakang kandang memberikan maklum balas debug berikut;

  • 1 Kilat pendek: Tiada fail Konfigurasi yang terdapat pada Kad SD (secvals.txt)
  • 2 Kilat pendek: Peranti IoT cuba menyambung ke rangkaian WiFi
  • Pencahayaan berterusan: Peranti IoT cuba menyambung ke MQTT Broker
  • Mati: Peranti aktif.

Fungsi Peranti Sintesis Ucapan IoT Retro dalam keadaan AKTIF

Setelah dalam keadaan AKTIF ESP8266 memasuki gelung berterusan yang memanggil fungsi berikut; timer_update (), checkTemperatureAndHumidity () dan handleSpeech (). Hasil bersih yang telah dirancang untuk menghadirkan pengguna dengan antara muka HTTP atau MQTT, menyediakan pemproses pertuturan on-board dengan fonem berdasarkan permintaan dan menerbitkan nilai parametrik ambien tempatan berbanding MQTT dengan lancar.

Senarai lengkap semua langganan topik dan penerbitan termasuk nilai muatan dimasukkan dalam kod sumber.

Langkah 7: Penentukuran Sensor

Penentukuran Sensor
Penentukuran Sensor

Apabila peranti IoT dihidupkan, sebagai sebahagian daripada urutan but, dua fail bernama 'cavals1.txt' dan 'cavals2.txt' dibaca dari Kad SD.

Kandungan fail ini adalah pemalar kalibrasi seperti yang ditunjukkan di atas dalam gambar 1.

  1. 'cavals1.txt': Digunakan oleh AM2320 luaran
  2. 'cavals2.txt': Digunakan oleh DHT22 dalaman

Pemalar penentukuran ini digunakan untuk menyesuaikan bacaan yang diperoleh dari dua sensor untuk menyesuaikannya dengan peranti rujukan. Terdapat satu nilai lebih lanjut yang menentukan strategi pelaporan untuk setiap peranti dan dijelaskan di bawah bersama dengan prosedur yang diikuti untuk mengkalibrasi sensor.

Strategi Pelaporan

Parameter ini menentukan bagaimana sensor jarak jauh melaporkan sebarang perubahan parametrik sekitarnya. Sekiranya nilai 0 dipilih, sensor jarak jauh akan menerbitkan perubahan yang dilihat pada suhu atau kelembapan setiap kali sensor masing-masing dibaca (kira-kira setiap 10 saat). Nilai lain akan menunda penerbitan perubahan sebanyak 1… 60 minit. Mengubah parameter ini memungkinkan untuk mengoptimumkan lalu lintas rangkaian MQTT. Perlu diperhatikan data suhu dan kelembapan dari DHT22 dibaca secara bergantian kerana keterbatasan sensor.

Penentukuran suhu

Untuk menentukur sensor suhu, saya mengikuti proses yang sama seperti yang digariskan di sini langkah 4, sekali lagi menggunakan hubungan y = mx + c yang sederhana. Saya menggunakan IoT Temperature, Humidity Sensor # 1 sebagai alat rujukan. Nilai dari sensor adalah dalam darjah celcius.

Penentukuran Kelembapan

Oleh kerana saya tidak mempunyai cara untuk merakam secara tepat atau bahkan mengawal kelembapan persekitaran tempatan, untuk mengkalibrasi sensor, saya menggunakan pendekatan yang serupa dengan yang di atas di sini langkah 4, sekali lagi menggunakan Sensor # 1 sebagai rujukan. Walau bagaimanapun di atas dikatakan, saya baru-baru ini menemui artikel yang sangat baik di web yang menerangkan bagaimana menentukur sensor kelembapan. Saya mungkin mencuba pendekatan ini pada masa akan datang. Nilai dari sensor adalah pada usia kelembapan relatif.

Langkah 8: Konvensyen Penamaan Topik MQTT

Konvensyen Penamaan Topik MQTT
Konvensyen Penamaan Topik MQTT
Konvensyen Penamaan Topik MQTT
Konvensyen Penamaan Topik MQTT

Seperti yang telah disebutkan di Instructable sebelumnya (di sini) saya menyelesaikan konvensyen penamaan topik yang digariskan dalam gambar 1 di atas.

Yaitu, 'AccessMethod / DeviceType / WhichDevice / Action / SubDevice' Ia tidak sempurna tetapi memungkinkan penapis berguna untuk melihat semua output sensor untuk topik parametrik tertentu sehingga memungkinkan perbandingan yang mudah seperti pada gambar 2 di atas dengan MQTTSpy.

Projek ini adalah contoh pertama di mana satu peranti mengandungi lebih daripada satu sumber asal jenis penerbitan yang sama. iaitu. Dua sensor suhu / kelembapan, dari sub-peranti dalaman dan luaran.

Ia juga menyokong pengelompokan fungsi logik yang cukup luas dalam peranti IoT tertentu.

Dalam melaksanakan topik-topik ini dalam perisian, saya menggunakan rentetan topik yang dikodkan keras dengan pengecam berangka yang tetap dan tertanam untuk setiap peranti berbanding dengan menghasilkan topik secara dinamik pada masa berjalan sehingga dapat menjimatkan RAM dan mengekalkan prestasi tinggi.

Catatan: Sekiranya anda tidak pasti cara menggunakan MQTTSpy lihat di sini 'Menyiapkan MQTT Broker. Bahagian 2: IoT, Automasi Rumah '

Langkah 9: Mencari Debug & Kesalahan

Carian Debug & Kesalahan
Carian Debug & Kesalahan

Pada umumnya, untuk projek hobi saya, di mana mungkin saya cenderung untuk membina prototaip perkakasan perwakilan yang mana perisian itu dikembangkan. Saya jarang menghadapi masalah ketika mengintegrasikan perisian ke perkakasan platform terakhir.

Namun, pada kesempatan ini saya menemui kesalahan berselang yang aneh di mana beberapa fonem akan terdengar tetapi yang lain tidak.

Setelah melakukan debug awal dari Speech Synth PCB menggunakan Arduino Uno untuk mendapatkan fonem dan membuktikan papan ini berfungsi, saya mengambil skop ke garis I2C antara IoT PCB dan Speech Synth PCB. Lihat Pic 1 di atas.

Anda dapat dengan jelas melihat 'gigi gergaji' / tepi eksponensial ke isyarat I2C pada jejak.

Ini biasanya merupakan petunjuk bahawa nilai penarik I2C terlalu tinggi menghalang voltan saluran pulih dengan cukup pantas dalam litar longkang terbuka.

Sebagai 'kerja di sekitar' saya selari dua perintang penarik smt R12 dan R13 dengan 10K untuk memberi 4K7 dan cukup pasti Sintesis Ucapan 'menerjah kehidupan'

Jenis kegagalan ini bertentangan dengan apa yang boleh berlaku semasa menyahpepijat jenis projek ini. Secara amnya, kebanyakan modul berasaskan I2C yang dibeli dari Ebay cenderung dilengkapi dengan pull up 10K atau 4K7 yang sudah dipasang. Sekiranya anda berhasrat untuk menggunakan> 5 modul I2C, masing-masing dengan pull up 4K7, maka beban keseluruhan adalah 940R yang akan terlalu besar untuk tahap output master. Penyelesaiannya adalah untuk menghilangkan semua solder kecuali satu set perintang penarik pada setiap modul. Sebaiknya yang paling jauh dari tuannya secara fizikal.

Petua berguna dan perlu diingat semasa merancang elektronik dengan peranti I2C.

Langkah 10: Menguji Reka Bentuk

Image
Image
Menguji Reka Bentuk
Menguji Reka Bentuk
Menguji Reka Bentuk
Menguji Reka Bentuk

Pengujian dilakukan dengan menggunakan dua metodologi; Manual dan Automatik.

Yang pertama, manual, dan umumnya digunakan selama pengembangan kod awal adalah menggunakan MQTT Spy untuk menjalankan semua topik berlangganan yang ada dan memeriksa respons yang diterbitkan (digambarkan pada gambar 2 di atas). Oleh kerana ini proses manual boleh memakan waktu dan rentan terhadap kesalahan ketika pengembangan kod berlangsung, walaupun pelaksanaan manual memungkinkan liputan 100%.

MQTTSpy dipilih untuk pengujian manual kerana ia adalah alat yang sangat baik untuk memformat muatan tertentu dan menerbitkannya ke topik apa pun dengan mudah. Ia juga memaparkan log yang dicap waktu dan jelas yang sangat berguna untuk penyahpepijatan (gambar 3 di atas).

Pendekatan kedua, automatik diadopsi sebagai kod sumber menjadi lebih kompleks (> 3700 baris). Kerumitan yang meningkat bermaksud kitaran ujian manual yang lebih lama dan ujian yang lebih kompleks. Untuk meningkatkan kebolehpercayaan, determinisme dan kualiti ujian, ujian automatik digunakan melalui eksekutif ujian python (gambar 1). Lihat Langkah # 10 dalam Petunjuk ini tentang bagaimana pengujian automatik diperkenalkan. Salinan penuh ujian automatik yang digunakan dalam Instructable ini boleh didapati di sini.

Video urutan ujian automatik dalam operasi ditunjukkan di atas. Urutan melaksanakan langkah-langkah berikut;

  • Automatik melalui MQTT

    • Sambung ke tulang belakang MQTT dan umumkan 'System Ready'
    • Latihan LED Hijau
    • Latihan LED Merah
    • Bersenam LED Biru
    • Periksa Digital Pot berfungsi
    • Bercakap menggunakan Fonem
    • Bercakap menggunakan Kod Hex untuk Fonem
    • Bercakap menggunakan kod untuk membetulkan frasa
    • Sedikit Dr Who dan Daleks menyeronokkan.
  • Secara manual melalui HTTP / Chrome

    • Bersenam LED Biru
    • Latihan LED Merah
    • Ucapkan frasa tetap 'Steven Quinn', 'System Ready' dan 'Hello World'
    • Mempunyai pelayan HTTP, servis

      • Perincian mengenai Speech Synth Chip
      • Maklumat MQTT

Langkah 11: Kesimpulannya

Kesimpulannya
Kesimpulannya

Walaupun memerlukan banyak usaha dengan fail dan latihan dll terutama untuk gril pembesar suara, saya rasa hasilnya secara estetik menyenangkan dan dimasukkan ke dalam kandang kecil yang bagus. Saya mungkin menjadikannya lebih kecil tetapi ia perlu pergi ke satu PCB dan saya sengaja memecahnya menjadi dua sehingga saya dapat menggunakan semula PCB di kemudian hari untuk projek lain. Jadi ia adalah kompromi yang senang.

Perisian ini berfungsi dengan baik, peranti IoT telah beroperasi dalam beberapa waktu sekarang tanpa masalah.

Saya telah memantau suhu dan kelembapan melalui Grafana dan membandingkannya dengan peranti yang terletak bersama. Kedua-dua nilai ambien telah berkorelasi dengan baik, menyiratkan penentukuran itu wajar (atau paling tidak sama).

Saya berhenti melaksanakan perintah kata ('WFD / SpeechTH / 1 / Word / Command') kerana saya kehabisan masa dan perlu meneruskannya. Saya mungkin akan mengunjungi semula ini jika dan ketika saya menyediakan pangkalan data MySQL. Sekarang saya menggunakan InfluxDB.

Langkah 12: Rujukan Yang Digunakan

Sumber berikut digunakan untuk menyatukan Instructable ini; Kod sumber untuk Peranti Sintesis Ucapan IoT Retro (ini mengandungi salinan semuanya)

https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2

PubSubClient.h

  • Oleh: Nick O'Leary
  • Tujuan: Membolehkan peranti menerbitkan atau melanggan topik MQTT dengan Broker tertentu
  • Dari:

DHT.h

  • Oleh: Adafruit
  • Tujuan: Perpustakaan Arduino untuk DHT11DHT22, dan lain-lain Sensor Temp & Kelembapan
  • Dari:

Adafruit_AM2320.h / Adafruit_Sensor.h

  • Oleh: Adafruit
  • Tujuan: Perpustakaan Arduino untuk AM2320, dll Sensor Temp & Humidity
  • Dari:

MCP4561_DIGI_POT.j

  • Oleh: Steve Quinn
  • Tujuan: Perpustakaan Arduino untuk potensiometer digital MCP4561
  • Dari:

Adafruit_MCP23017.h

  • Oleh: Steve Quinn
  • Tujuan: Perpustakaan Arduino untuk MCP23017 I2C Port Expander. Ini adalah garpu GITHub dari Adafruit-MCP23017-Arduino-Library, oleh Adafruit.
  • Dari:

Untuk keseronokan

https://haynes.com/en-gb/

Pembuatan PCB

https://jlcpcb.com/

Memasang Perpustakaan Arduino Tambahan

https://www.arduino.cc/en/Guide/Perpustakaan

Cara Memeriksa dan Mengkalibrasi Sensor Kelembapan

https://www.allaboutcircuits.com/projects/how-to-check-and-calibrate-a-humidity-sensor/?utm_source=All+About+Circuits+Members&utm_campaign=ffeee38e54-EMAIL_CAMPAIGN_2017_12_06&utm_medium_mam_m55_m55_m55_mm /

Lembaran Data SP0256-AL2

https://www.futurebots.com/spo256.pdf

Kedai Cip Ucapan

https://www.speechchips.com/shop/

Peraduan Arduino 2019
Peraduan Arduino 2019
Peraduan Arduino 2019
Peraduan Arduino 2019

Naib Johan dalam Peraduan Arduino 2019

Disyorkan: