Mundarija:

Retro nutq sintezi. Qism: 12 IoT, uy avtomatizatsiyasi: 12 qadam (rasmlar bilan)
Retro nutq sintezi. Qism: 12 IoT, uy avtomatizatsiyasi: 12 qadam (rasmlar bilan)

Video: Retro nutq sintezi. Qism: 12 IoT, uy avtomatizatsiyasi: 12 qadam (rasmlar bilan)

Video: Retro nutq sintezi. Qism: 12 IoT, uy avtomatizatsiyasi: 12 qadam (rasmlar bilan)
Video: Atari 1040ST Speech Synthesizer #synthesizer #atari 2024, Iyul
Anonim
Image
Image
Retro nutq sintezi. Qism: 12 IoT, uy avtomatizatsiyasi
Retro nutq sintezi. Qism: 12 IoT, uy avtomatizatsiyasi

Ushbu maqola uyni avtomatlashtirish bo'yicha ko'rsatmali 12 -chi maqoladir. IoT Retro nutq sintez qurilmasini uy sharoitida muvaffaqiyatli joylashtirish uchun barcha zarur dasturiy funktsiyalarni o'z ichiga olgan mavjud uy avtomatlashtirish tizimiga qanday qo'shish va birlashtirishni hujjatlashtiradi.

1 -rasmda yakunlangan IoT nutqni sinxronlash qurilmasi ko'rsatilgan va 2 -rasmda prototipda ishlatiladigan barcha komponentlar ko'rsatilgan, ular yakuniy mahsulotga o'tish uchun form faktorini kamaytirgan.

Videoda qurilmaning ishlayotgani (sinov paytida) ko'rsatilgan.

Kirish

Yuqorida aytib o'tilganidek, bu yo'riqnomada IoT retro nutq sintez qurilmasini qanday qilish haqida batafsil ma'lumot berilgan va Umumiy asboblar SP0256-AL2 ga asoslangan.

Uning asosiy maqsadi - "eski maktab" ovoz sintezini IoT tarmog'iga qo'shish. Nega "eski maktab" deb so'rashingiz mumkin? Men 80-yillarda, bu narsalar birinchi marta ishlab chiqarilganida, BBC Micro-ga ulanganman, shuning uchun menda SP0256-AL2 atrofida nostalji bor.

Men Amazonning echo yoki Siri xipster ohanglarini tinglashdan ko'ra, bu Dalekning ovozi bilan er yuzida nima deyilganini aniqlash qiyinroq. Sizdan so'rashimning qiyinchiliklari qayerda?

Oh, va menda "SP0256-AL2" IClarning "yukxalta yuki" bor.

Qurilma, shuningdek, mahalliy harorat va namlikni o'qishga qodir, shuning uchun bu erda qayta ishlatilgan kod asosida uy avtomatizatsiyasi (HA) bo'yicha MQTT/OpenHAB asosidagi IoT tarmog'iga ulangan IoT infratuzilmamning atrof -muhit asboblarini yanada kengaytiradi.

ESP8266-07-bu MQTT aloqasi va tizimning barcha funktsiyalari (SD-kartaga kirish, LEDni boshqarish, harorat/namlikni sezish, ovozni boshqarish, nutq sintezi) uchun mas'ul bo'lgan ESP8266-07. Qurilma kompyuterda saqlangan matnli fayllar orqali to'liq sozlangan. mahalliy SD -karta, lekin kalibrlash va tarmoq xavfsizligi parametrlarini MQTT masofali nashrlari orqali ham dasturlash mumkin.

Menga qanday qismlar kerak?

Materiallar hisobini bu erda ko'ring

Menga qanday dastur kerak?

  • Arduino IDE 1.6.9,
  • Arduino IDE ESP8266-07 dasturlash uchun tuzilgan (xuddi shunday). Keyin IDE -ni dasturiy ta'minot eskizida keltirilgan batafsil tavsifda ko'rsatilgandek sozlang,
  • Python v3.5.2, agar siz avtomatlashtirilgan test qobiliyatidan foydalanmoqchi bo'lsangiz, bu erda batafsil ma'lumot

Menga qanday vositalar kerak?

  • Mikroskop kamida x3 (SMT lehimlash uchun),
  • Molex ulagichni siqish vositasi (JST ulagichlari uchun),
  • SMD lehimli temir (suyuq oqimli qalam va yadroli lehim bilan),
  • Tornavidalar (har xil),
  • Issiq qurol,
  • Matkaplar (har xil),
  • Havzali qo'l asboblari,
  • Fayllar (har xil),
  • Dremel (har xil bitlar),
  • Bardoshli vitse (kichik va katta, xuddi qora va pastki ish sherigi kabi),
  • Skalpel,
  • Vernier kaliperlari (ishlab chiqarishni o'lchash uchun ishlatiladi va PCB komponentlarini o'lchash uchun foydalidir),
  • Kalit va yong'oq haydovchilari (har xil),
  • Kuchli cımbızlar (SMT lehim uchun),
  • Junior Hacksaw,
  • Matkap (turli matkaplar bilan),
  • Nozik qisqichlar (burunli va burunli),
  • Yuvish to'sarlari,
  • Ovozli uzluksizlikni tekshirish bilan DMM,
  • Ikki kanalli raqamli diapazon (signallarni tuzatish uchun qulay)

Menga qanday ko'nikmalar kerak?

  • Katta sabr,
  • Ko'p qo'lda epchillik va qo'l/ko'zni mukammal muvofiqlashtirish,
  • Ajoyib lehimlash qobiliyati,
  • Ishlab chiqarishning ajoyib mahorati,
  • 3 o'lchamda tasavvur qilish qobiliyati,
  • "C" bilan dasturiy ta'minotni ishlab chiqish bo'yicha ba'zi bilimlar (agar siz manba kodini tushunmoqchi bo'lsangiz),
  • Python haqida ba'zi bilimlar (agar siz avtomatlashtirilgan testdan foydalanmoqchi bo'lsangiz, skriptlarni o'rnatish va ishga tushirish),
  • Arduino va uning IDE haqidagi bilimlari,
  • Elektronikani yaxshi bilish,
  • Sizning uy tarmog'ingiz haqida bir oz tushuncha.

Qabul qilingan mavzular

  • Foydalanuvchi uchun qo'llanma
  • O'chirish haqida umumiy ma'lumot
  • PCB ishlab chiqarish va yig'ish
  • Ishlab chiqarish
  • Dasturiy ta'minot tizimiga umumiy nuqtai
  • Dasturiy ta'minot haqida umumiy ma'lumot
  • Sensorni kalibrlash
  • MQTT mavzusini nomlash konventsiyasi
  • Nosozliklarni tuzatish va xatolarni aniqlash
  • Dizaynni sinovdan o'tkazish
  • Xulosa
  • Ishlatilgan adabiyotlar

11 -qismga havolalar: IoT ish stoli konsoli. Qism: 11 IoT, uy avtomatizatsiyasi

1 -qadam: Foydalanuvchi uchun qo'llanma

Foydalanuvchi uchun qo'llanma
Foydalanuvchi uchun qo'llanma
Foydalanuvchi uchun qo'llanma
Foydalanuvchi uchun qo'llanma
Foydalanuvchi uchun qo'llanma
Foydalanuvchi uchun qo'llanma

Yuqoridagi 1 -rasmda retro nutq sintezatorining old qismi va 2 -rasmning orqa qismi ko'rsatilgan.

Old korpus

  1. Karnay Gril
  2. 3,5 mm eshitish vositasi uyasi: 3,5 mm raz'em o'rnatilganida asosiy dinamik o'chiriladi.
  3. Qizil LED: HTTP so'rovi orqali nutq boshlanganda, so'z aytilganda, bu LED yonadi.
  4. Moviy LED: bu LED MQTT IoT so'rovi orqali nutq boshlanganda so'z aytilganda yonadi.

Orqa korpus

  1. Qayta tiklash tugmasi: ESP8266-07 IoT qurilmasini qayta tiklash uchun ishlatiladi.
  2. Fleshli tugma: Qayta tiklash tugmasi bilan birgalikda ishlatilsa, ESP8266-07 qayta yonib-o'chib turadi.
  3. Wi -Fi antenna vilkasi (SMA Plug): tashqi alyuminiy bo'lgani uchun radio chastotali yo'lning eng kam susayishini ta'minlaydigan tashqi WiFi antennasi uchun.
  4. Tashqi dasturlash porti: qayta dasturlash maqsadida ESP8266-07 ga kirish uchun korpusni ochish zarurligini bartaraf etish. ESP8266-07 dasturlash pinlari tashqi dasturlash portiga chiqarildi. 3 -rasm - dasturlash adapteri.
  5. Yashil LED: bu IoT tizimi bo'lib, u qurilmaning diagnostik holatini ko'rsatish va ishga tushirish va ishga tushirish uchun ishlatiladi.
  6. Tashqi harorat/namlik sensori (AM2320)
  7. SD -karta uyasi: Bu veb -server sahifalari bilan birga barcha konfiguratsiya/xavfsizlik ma'lumotlarini o'z ichiga oladi.
  8. 2.1 mm 6vdc quvvat manbai

2 -qadam: O'chirish sxemasi

O'chirish haqida umumiy ma'lumot
O'chirish haqida umumiy ma'lumot
O'chirish haqida umumiy ma'lumot
O'chirish haqida umumiy ma'lumot

Retro Speech Synth qurilmasi ikkita PCBdan iborat;

  • RetroSpeechSynthIoTBoard: Bu umumiy, qayta ishlatiladigan ESP8266-07/12/12E/13 tenglikni
  • RetroSpeechSynthBoard: Bu umumiy SP0256-AL2 tengligi

Retro nutq sintezi IoT paneli

Ushbu taxta ESP8266-07/12/12E/13 yoki ESP8266 tashuvchi PCB joylashtiradigan 0,1 dyuymli rozetkalarni to'g'ridan-to'g'ri lehimlashga imkon beradi.

Kengash I2C ulanishi orqali I/U ni kengaytirish uchun mo'ljallangan va Q1, Q2, R8-13 orqali 3v3 yoki 5v ta'minot darajasini qo'llab-quvvatlaydi.

Kengashga ulanish ikkita J2 va J4 sarlavhalari, 8 tomonlama DIL IDC tasmasi yoki 5 tomonlama JST/Molex orqali amalga oshiriladi.

U2 va U3 ta'minoti bort ta'minotini tartibga solish bo'yicha 3.3v va 5v. Shu bilan bir qatorda, agar katta oqim quvvati talab qilinsa, mos ravishda J10 va J11 ulagichlari orqali ketma -ket ketma -ket shuntli regulyatorlar o'rnatilishi mumkin.

J1 va J3 ulagichlari SPI orqali tashqi SD -kartani qo'llab -quvvatlaydi. J1 8 tomonlama Molex uchun mo'ljallangan va J3 3v3 yoki 5v qo'llab-quvvatlanadigan SD kartali PCB uchun mos keladigan pin moslamasini qo'llab-quvvatlash uchun to'g'ridan-to'g'ri pinli.

Retro nutq sintezi paneli

Bu kartani boshqarish I2C 5v mos keladigan J1, J5 yoki J6, 4 tomonlama JST/Molex, 8 tomonlama DIL IDC yoki 8 tomonlama IDC tasma ulagichi orqali amalga oshiriladi.

U2 MPC23017 I2C ni U3 ga parallel interfeys bilan ta'minlaydi SP0256-AL2 va D1 (Yashil), D2 (Qizil) va D3 (Moviy). Speech Synth chiqishi RV1 analogli qozon yoki U1 MCP4561 raqamli qozon orqali CR1 TBA820M audio kuchaytirgichiga uzatiladi.

Digital Pot U1, shuningdek, 5V mos keladigan I2C orqali boshqariladi.

Eslatma: ESP8266-07 qurilmasi alyuminiy korpusga tashqi WiFi antennasini qo'shish imkonini beruvchi ajralmas IPX RF konnektoriga ega bo'lgani uchun tanlangan.

3 -qadam: PCB ishlab chiqarish va yig'ish

PCB ishlab chiqarish va yig'ish
PCB ishlab chiqarish va yig'ish
PCB ishlab chiqarish va yig'ish
PCB ishlab chiqarish va yig'ish
PCB ishlab chiqarish va yig'ish
PCB ishlab chiqarish va yig'ish
PCB ishlab chiqarish va yig'ish
PCB ishlab chiqarish va yig'ish

1 va 2-rasmlarda alyuminiy korpusli substratda joylashgan tugallangan va simli tenglikni bo'laklari ko'rsatilgan.

Ikkita tenglikni kartasi JLCPCB tomonidan ishlab chiqarilgan va men yig'gan Kicad v4.0.7 yordamida ishlab chiqilgan va 3 dan 13 gacha rasmlarda ko'rsatilgan.

4 -qadam: ishlab chiqarish

Ishlab chiqarish
Ishlab chiqarish
Ishlab chiqarish
Ishlab chiqarish
Ishlab chiqarish
Ishlab chiqarish

1 -rasmda oxirgi yig'ilishdan oldin barcha tayyor qismlarning Haynes Manual uslubidagi tartibi ko'rsatilgan.

2… 5 -rasmlarda minimal bo'shliqlar bilan korpusni tayyorlash paytida turli xil kadrlar ko'rsatilgan.

5 -qadam: dasturiy ta'minot tizimiga umumiy nuqtai

Dasturiy ta'minot tizimiga umumiy nuqtai
Dasturiy ta'minot tizimiga umumiy nuqtai
Dasturiy ta'minot tizimiga umumiy nuqtai
Dasturiy ta'minot tizimiga umumiy nuqtai

Bu IoT Retro nutq sintez qurilmasi yuqoridagi 1 -rasmda ko'rsatilgan oltita asosiy dasturiy komponentni o'z ichiga oladi.

SD -karta

Bu tashqi SD SPI Flash fayl tizimi va quyidagi ma'lumotlarni saqlash uchun ishlatiladi (yuqoridagi 2 -rasmga qarang);

  • Belgilar va 'Speech Synth Configuration Home Page' index.htm: IoT Wi -Fi tarmog'ingizga ulana olmaganda (odatda noto'g'ri xavfsizlik ma'lumotlari yoki birinchi marta ishlatilganligi sababli) IoT qurilmasi tomonidan xizmat ko'rsatiladi va foydalanuvchiga vosita bilan ta'minlanadi. yangi SD-kontentni qayta yondirmasdan sensorlarni masofadan konfiguratsiya qilish, shuningdek index1.htm, mqtt.htm va sp0256.htm-ni o'z ichiga oladi, bu veb-brauzer orqali kirish mumkin bo'lgan mahalliy veb-sahifalar bo'lib, nutq sintezini cheklangan nazorat qiladi. HTTP orqali.
  • Xavfsizlik haqida ma'lumot: Bu sizning IoT WiFi tarmog'ingizga va MQTT Brokeriga ulanish uchun IoT qurilmasi tomonidan ishlatilgan ma'lumotlarni o'z ichiga oladi. "Speech Synth Configuration Home Page" orqali yuborilgan ma'lumotlar ushbu faylga yozilgan ('secvals.txt').
  • Kalibrlash haqida ma'lumot: Fayllar ichidagi ma'lumotlar ('calvals1.txt' va 'calvals2.txt'), agar kerak bo'lsa, bortdagi harorat/namlik sezgichlarini kalibrlash uchun ishlatiladi. Kalibrlash konstantalarini IoT qurilmasiga MQTT brokerining MQTT buyruqlari orqali yoki SD-kartani qayta yoqish orqali yozish mumkin. "calvals1.txt" AM2320 sensoriga va "calvals2.txt" DHT22 ga tegishli.
  • Foydalanuvchi tomonidan konfiguratsiya qilinadigan tizim qiymatlari: Foydalanuvchi tanlagan ushbu fayldagi ma'lumotlar ("confvals.txt") tizimning ba'zi javoblarini boshqaradi, masalan, raqamli tovushning boshlang'ich darajasi, MQTT brokeriga obunada avtomatik "tizim tayyor" xabari.

mDNS server

IoT qurilmasi Wi -Fi tarmog'iga Wi -Fi stantsiyasi sifatida ulana olmaganida va mahalliy Wi -Fi routeriga o'xshash Wi -Fi ulanish nuqtasiga aylanganda, bu funksiya chaqiriladi. Bunday yo'riqnoma bo'lsa, siz odatda unga 192.168.1.1 (odatda qutiga yopishtirilgan yorliqda bosilgan) kabi IP -manzilni to'g'ridan -to'g'ri brauzeringizning URL -satriga kiritish orqali ulanasiz, shunda siz kirish uchun kirish sahifasini olasiz. qurilmani sozlash uchun foydalanuvchi nomi va parol. AP rejimida ESP8266-07 (kirish nuqtasi rejimi) uchun qurilma 192.168.4.1 IP-manzilini o'rnatadi, lekin mDNS-serverda siz faqat brauzerning URL-satriga "SPEECHSVR.local" nomini kiritishingiz kerak. "Speech Synth Konfiguratsiyasining Bosh sahifasi" ga qarang.

MQTT mijozi

MQTT mijozi barcha kerakli funktsiyalarni ta'minlaydi; o'z IoT tarmog'iga MQTT brokeriga ulaning, siz tanlagan mavzularga obuna bo'ling va berilgan mavzu bo'yicha yuklarni e'lon qiling. Muxtasar qilib aytganda, u IoT -ning asosiy funktsiyalarini ta'minlaydi.

HTTP veb -server

Ushbu veb -server ikkita maqsadga ega;

  1. Agar IoT qurilmasi SSID, P/W va boshqalar SD -kartadagi Xavfsizlik ma'lumoti faylida ko'rsatilgan WiFi tarmog'iga ulana olmasa, qurilma kirish nuqtasiga aylanadi. Kirish nuqtasi tomonidan taqdim etilgan Wi -Fi tarmog'iga ulanganingizdan so'ng, HTTP veb -serverining mavjudligi qurilmaga to'g'ridan -to'g'ri ulanish va HTTP veb -brauzeri yordamida uning konfiguratsiyasini o'zgartirish imkonini beradi, uning maqsadi "nutq sintezini sozlash". Bosh sahifa veb -sahifasi, u ham SD -kartada joylashgan.
  2. IoT Retro nutq sintez qurilmasi Wi -Fi tarmog'iga va MQTT brokeriga ulanganidan so'ng, agar unga kirilsa, HTTP veb -serveri avtomatik ravishda HTTP veb -sahifasini ishga tushiradi, bu esa IoT qurilmasining cheklangan boshqaruvini o'z ichiga olgan iboralar va sozlamalarni tanlash imkoniyatini beradi. ikkita oldingi qizil va ko'k LEDni aylantiring.

WiFi stantsiyasi

Bu funksiya IoT qurilmasiga Xavfsizlik ma'lumoti faylidagi parametrlar yordamida mahalliy WiFi tarmog'iga ulanish imkoniyatini beradi, bu holda sizning IoT qurilmangiz MQTT Brokeriga obuna bo'la olmaydi/nashr qila olmaydi.

WiFi kirish nuqtasi

Wi -Fi kirish nuqtasi bo'lish qobiliyati - bu IoT qurilmasi unga ulanish va Wi -Fi stantsiyasi va brauzer (masalan, Apple iPad -dagi Safari) orqali konfiguratsiyani o'zgartirish imkonini beradi. Bu kirish nuqtasi SSID = "SPEECHSYN" + IoT qurilmasining MAC manzilining oxirgi 6 ta raqamini uzatadi. Bu yopiq tarmoq uchun parol "PASSWORD" deb nomlangan.

6 -qadam: Dasturiy ta'minotga umumiy nuqtai

Dasturiy ta'minot haqida umumiy ma'lumot
Dasturiy ta'minot haqida umumiy ma'lumot
Dasturiy ta'minot haqida umumiy ma'lumot
Dasturiy ta'minot haqida umumiy ma'lumot
Dasturiy ta'minot haqida umumiy ma'lumot
Dasturiy ta'minot haqida umumiy ma'lumot

Muqaddima

Ushbu manba kodini muvaffaqiyatli kompilyatsiya qilish uchun sizga kodning mahalliy nusxasi va kutubxonalar kerak bo'ladi. Agar siz Arduino kutubxonasini qanday o'rnatishni bilmasangiz, bu erga o'ting.

Sharh

Dastur 1-rasmda ko'rsatilgandek davlat mashinasidan foydalanadi (mana bu erda GitHub omborimdagi manbaning to'liq nusxasi). Quyida keltirilgan 5 ta asosiy shtatlar mavjud;

  • INIT

    Bu ishga tushirish holati - quvvat yoqilgandan keyin kiritilgan birinchi holat

  • NOKONFIG

    Agar bu holat yoqilganidan keyin noto'g'ri yoki yo'qolgan secvals.txt fayli aniqlansa, bu holat kiritiladi. Bu holatda konfiguratsiya sahifasi ko'rinadi

  • NW kutilmoqda

    Bu holat vaqtinchalik, Wi -Fi tarmog'iga ulanmagan holda kiritilgan

  • MQTT kutilmoqda

    Bu holat vaqtinchalik, Wi -Fi tarmog'iga ulanish o'rnatilgandan keyin kiritiladi va shu tarmoqdagi MQTT brokeriga ulanish yo'q

  • AKTIV

    Bu Wi -Fi tarmog'iga ulanish va MQTT Broker ulanishi o'rnatilgandan so'ng kiritiladigan oddiy operatsion holat. Aynan shu holatda IoT Retro nutq sintez qurilmasidagi harorat, issiqlik indeksi va namlik muntazam ravishda MQTT Brokeriga e'lon qilinadi. Bu holatda Speech Synth bosh sahifasi ko'rinadi

Shtatlar orasidagi o'tishni boshqaruvchi hodisalar yuqoridagi 1 -rasmda tasvirlangan. Shtatlar orasidagi o'tish ham SecValsning quyidagi parametrlari bilan boshqariladi;

  • Birinchi MQTT brokerining IP -manzili. AAA. BBB. CCC. DDD punktli kasr shaklida
  • Ikkinchi MQTT broker porti. Integer shaklida.
  • Uchinchi MQTT Broker ulanishi STA rejimidan AP rejimiga o'tishdan oldin amalga oshiriladi. Integer shaklida.
  • 4 -chi WiFi tarmoq SSID. Matn erkin shaklda.
  • WiFi tarmog'ining 5 -paroli. Matn erkin shaklda.

Yuqorida aytib o'tilganidek, agar IoT qurilmasi Wi -Fi stantsiyasi sifatida Wi -Fi tarmog'iga ulana olmasa, SSID va P/W SD kartada saqlangan secvals.txt -da aniqlangan bo'lsa, IoT qurilmasi kirish nuqtasiga aylanadi. Ushbu kirish nuqtasiga ulangandan so'ng, u 2 -rasmda ko'rsatilgandek "Speech Synth Configuration Home Page" xizmatini ko'rsatadi (brauzerlarning URL manzil satriga "SPEECHSVR.local" yoki 192.168.4.1 ni kiritish orqali). Bu bosh sahifa HTTP brauzeri orqali IoT Retro nutq sintez qurilmasini qayta sozlash imkonini beradi.

ACTIVE holatida masofadan kirish

MQTT Broker-ga ulangandan so'ng, MQTT mavzusidagi nashrlar orqali qurilmani qayta sozlash va qayta sozlash mumkin. Calvals.txt fayli R/V ga kirish huquqiga ega va secvals.txt faqat yozish huquqiga ega.

Yuqorida aytib o'tilganidek, faol rejimda bir marta brauzerlarning URL manzil satriga 'SPEECHSVR.local' yoki 192.168.4.1 ni kiritish orqali HTTP interfeysi orqali Speech Synth -ga kirish mumkin bo'ladi. HTTP -ga asoslangan ushbu interfeys nutq sintezini asosiy nazorat qilish imkonini beradi. 3, 4 va 5 -rasmlarda mavjud veb -sahifalar ko'rsatilgan.

Foydalanuvchi tuzatish

Yuklash ketma -ketligi davomida korpusning orqa tomonida joylashgan IoT qurilmasining yashil tizimi quyidagi xatolarni tuzatishga yordam beradi.

  • 1 Qisqa flesh: SD -kartada konfiguratsiya fayli yo'q (secvals.txt)
  • 2 Qisqa yonish: IoT qurilmasi WiFi tarmog'iga ulanishga urinmoqda
  • Doimiy yoritish: IoT qurilmasi MQTT Brokeriga ulanishga urinmoqda
  • O'chirilgan: qurilma faol.

IoT Retro nutq sintezi qurilmasining ACTIVE holatida ishlashi

ACTIVE holatida ESP8266 quyidagi funktsiyalarni chaqiruvchi doimiy tsiklga kiradi; timer_update (), checkTemperatureAndHumidity () va handleSpeech (). Aniq natijasi foydalanuvchiga HTTP yoki MQTT interfeysini taqdim etish uchun mo'ljallangan, fonemalari bo'lgan bortli nutq protsessoriga uzluksiz xizmat ko'rsatish va MQTT orqali mahalliy muhit parametrlarining qiymatlarini e'lon qilish.

Manba kodiga barcha obunalar va nashrlarning to'liq ro'yxati, shu jumladan foydali yuk qiymatlari kiritilgan.

7 -qadam: Sensorni kalibrlash

Sensorni kalibrlash
Sensorni kalibrlash

IoT qurilmasi yoqilganda, yuklash ketma -ketligining bir qismi sifatida SD -kartadan "cavals1.txt" va "cavals2.txt" nomli ikkita fayl o'qiladi.

Bu fayllarning mazmuni yuqorida 1 -rasmda ko'rsatilgan kalibrlash konstantalari hisoblanadi.

  1. 'cavals1.txt': tashqi AM2320 tomonidan ishlatiladi
  2. 'cavals2.txt': Ichki DHT22 tomonidan ishlatiladi

Bu kalibrlash konstantalari mos yozuvlar moslamasiga moslashtirish uchun ikkita sensordan olingan o'qishni sozlash uchun ishlatiladi. Har bir qurilma uchun hisobot berish strategiyasini belgilaydigan yana bir qiymat bor va u datchiklarni kalibrlash tartibiga amal qilinadi.

Hisobot berish strategiyasi

Bu parametr masofadagi sensor atrofdagi har qanday parametrik o'zgarishlar haqida qanday hisobot berishini aniqlaydi. Agar "0" qiymati tanlansa, masofadan boshqarish pulti sensori har o'qilganda (har 10 soniyada) harorat yoki namlikdagi o'zgarishlarni e'lon qiladi. Boshqa har qanday qiymat o'zgarishlarni e'lon qilishni 1… 60 daqiqaga kechiktiradi. Ushbu parametrni o'zgartirish MQTT tarmoq trafigini optimallashtirish imkonini beradi. Ta'kidlash joizki, DHT22 harorat va namlik ma'lumotlari sensor cheklanganligi sababli navbat bilan o'qiladi.

Haroratni kalibrlash

Harorat sezgichini kalibrlash uchun men bu erda 4 -bosqichda ko'rsatilgan jarayonni bajardim, yana oddiy y = mx+c aloqasi yordamida. Yo'naltiruvchi qurilma sifatida IoT harorati, namlik sensori #1 dan foydalanardim. Sensor qiymatlari Selsiy darajasida.

Namlikni kalibrlash

Mahalliy namlikni aniq qayd etish yoki hatto nazorat qilish uchun menda hech qanday vosita yo'qligi sababli, sensorni kalibrlash uchun men yuqoridagi 4 -qadamda shunga o'xshash yondashuvni qo'lladim, yana 1 -sonli sensordan foydalanganman. Yuqorida aytilganidek, men yaqinda Internetda namlik sezgichlarini kalibrlash bo'yicha ajoyib maqolani topdim. Men bu yondashuvni kelajakda sinab ko'rishim mumkin. Sensor qiymatlari nisbiy namlikning %yoshiga to'g'ri keladi.

8 -qadam: MQTT mavzusini nomlash konventsiyasi

MQTT mavzusini nomlash konventsiyasi
MQTT mavzusini nomlash konventsiyasi
MQTT mavzusini nomlash konventsiyasi
MQTT mavzusini nomlash konventsiyasi

Avvalgi Instructable (bu erda) da aytib o'tilganidek, men yuqoridagi 1 -rasmda ko'rsatilgan mavzu nomlash konventsiyasini hal qildim.

Ya'ni, "AccessMethod/DeviceType/whichDevice/Action/SubDevice" Bu mukammal emas, lekin bu berilgan parametrli mavzu uchun barcha sensorli chiqishlarni ko'rish uchun foydali filtrlardan foydalanishga imkon beradi, shuning uchun yuqoridagi 2 -rasmdagi kabi MQTTSpy bilan solishtirish oson.

Bu loyiha bitta qurilmada bir xil turdagi nashrning bir nechta manbalarini o'z ichiga olgan birinchi misol. ya'ni. Ichki va tashqi qurilmalardan ikkita harorat/namlik sensori.

Shuningdek, u ma'lum bir IoT qurilmasidagi funktsional imkoniyatlarning mantiqiy kengaytirilgan guruhlarini qo'llab -quvvatlaydi.

Ushbu mavzularni dasturiy ta'minotda qo'llashda men RAMni tejash va ishlashni yuqori darajada ushlab turish uchun har bir qurilma uchun qattiq, kodlangan mavzu identifikatorlari bilan ish vaqtini dinamik ravishda ishlab chiqarishdan farqli o'laroq foydalanardim.

Eslatma: Agar siz MQTTSpy -dan qanday foydalanishni bilmasangiz, "MQTT brokerini sozlash" bo'limiga qarang. 2 -qism: IoT, uy avtomatizatsiyasi

9 -qadam: disk raskadrovka va xatolarni aniqlash

Nosozliklarni tuzatish va xatolarni aniqlash
Nosozliklarni tuzatish va xatolarni aniqlash

Umuman olganda, mening sevimli mashg'ulotlarim uchun, agar iloji bo'lsa, dasturiy ta'minot ishlab chiqiladigan vakillik prototipini yaratishga moyilman, men dasturiy ta'minotni oxirgi platforma uskunasiga qo'shishda kamdan -kam hollarda muammolarga duch kelaman.

Shu bilan birga, men vaqti -vaqti bilan g'alati xatolarga duch keldim, bunda ba'zi fonemalar yangraydi, boshqalari esa yo'q.

Orduino Uno yordamida Speech Synth PCB -ni dastlabki disk raskadrovka qilgandan so'ng, fonemalarni olish va bu plataning ishlayotganligini isbotlash uchun men IoT PCB va Speech Synth PCB o'rtasidagi I2C liniyalarini qamrab oldim. Yuqoridagi 1 -rasmga qarang.

Siz izlardagi I2C signalining "arra tishi"/eksponensial qirrasini aniq ko'rishingiz mumkin.

Bu odatda I2C tortishish qiymatlari juda yuqori ekanligidan dalolat beradi, bu esa ochiq drenaj pallasida chiziq voltajining etarlicha tez tiklanishiga to'sqinlik qiladi.

"Ish" sifatida men RK va R13 rezistorlarini 10K bilan parallel qilib, 4K7 berdim va ishonch bilan "nutq sintezi" jonlandi"

Ushbu turdagi muvaffaqiyatsizlik, bunday turdagi loyihalarni tuzatishda nima bo'lishi mumkinligiga ziddir. Umuman olganda, Ebay -dan sotib olingan I2C modullarining aksariyati odatda o'rnatilgan 10K yoki 4K7 tortish moslamalari bilan birga keladi. Agar siz> 5 I2C modullaridan foydalanmoqchi bo'lsangiz, ularning har birida 4K7 tortish moslamasi bo'lsa, u holda umumiy yuk 940R ni tashkil etadi, bu esa masterning chiqish bosqichi uchun juda katta bo'ladi. Tuzatish, har bir modulda bitta qarshilik tortish rezistoridan tashqari, hammasini lehimlashdan iborat bo'ladi. Yaxshisi, xo'jayindan jismonan eng uzoqda bo'lgan kishi.

Foydali maslahat va I2C qurilmalari bilan elektronikani loyihalashda yodda tutish kerak.

10 -qadam: Dizaynni sinovdan o'tkazish

Image
Image
Dizaynni sinovdan o'tkazish
Dizaynni sinovdan o'tkazish
Dizaynni sinovdan o'tkazish
Dizaynni sinovdan o'tkazish

Sinov ikkita metodologiya yordamida o'tkazildi; Qo'l va avtomatlashtirilgan.

Dastlabki kodni ishlab chiqish paytida birinchi, qo'lda va odatda ishlatilgan, obuna bo'lgan barcha mavzularni ishlatish va e'lon qilingan javoblarni tekshirish uchun MQTT Spy -dan foydalanish edi (yuqoridagi 2 -rasmda tasvirlangan). Qo'lda ishlash 100% qamrovni ta'minlasa -da, bu qo'lda bajariladigan jarayon bo'lib, kod ishlab chiqish davom etar ekan, ko'p vaqt talab qilinadi va xatolarga moyil bo'ladi.

MQTTSpy qo'lda sinov uchun tanlangan, chunki u yukni formatlash va har qanday mavzuga osonlik bilan nashr etish uchun ajoyib vosita. U, shuningdek, disk raskadrovka uchun juda foydali bo'lgan aniq, vaqtli muhrlangan jurnalni ko'rsatadi (yuqoridagi 3 -rasm).

Ikkinchi, avtomatlashtirilgan yondashuv qabul qilindi, chunki manba kodi murakkablashdi (> 3700 qator). Murakkablikning oshishi qo'lda sinov tsikllari va murakkab testlarni bildiradi. Sinovlarning ishonchliligi, determinizmi va sifatini yaxshilash uchun python test boshqaruvchisi orqali avtomatlashtirilgan test ishlatilgan (1 -rasm). Avtomatlashtirilgan test qanday joriy etilgani haqida ushbu yo'riqnomadagi 10 -qadamga qarang. Bu yo'riqnomada ishlatilgan avtomatlashtirilgan testlarning to'liq nusxasi bu erda mavjud.

Amaldagi avtomatlashtirilgan test ketma -ketligi videosi yuqorida ko'rsatilgan. Navbat quyidagi bosqichlarni bajaradi;

  • MQTT orqali avtomatlashtirilgan

    • MQTT magistraliga ulaning va "Tizim tayyor" deb e'lon qiling.
    • Yashil LED mashq qiling
    • Qizil LED mashqlari
    • Moviy LEDni mashq qiling
    • Digital Pot ishlashini tekshiring
    • Fonemalar yordamida gapiring
    • Fonemalar uchun Hex kodlari yordamida gapiring
    • So'zlarni tuzatish uchun kodlardan foydalanib gapiring
    • Doktor Kim va Daleksning kulgili qismi.
  • HTTP/Chrome orqali qo'lda
    • Moviy LEDni mashq qiling
    • Qizil LED mashqlari
    • "Steven Quinn", "System Ready" va "Hello World" so'z birikmalarini gapiring.
    • HTTP serveriga ega bo'ling, xizmat qiling

      • Nutq sintezi chipi haqida batafsil ma'lumot
      • MQTT tafsilotlari

11 -qadam: Xulosa

Xulosa
Xulosa

Ayniqsa, karnay panjarasi uchun fayllar va matkaplar va boshqalar bilan ko'p harakat talab qilingan bo'lsa -da, menimcha, natija estetik jihatdan yoqimli va kichik, kichik muhafazaga joylashtirilgan. Men uni kichikroq qilib qo'yishim mumkin edi, lekin bitta PCBga o'tish kerak bo'lardi va men uni ataylab ikkiga bo'lib tashladim, shuning uchun men keyinchalik boshqa loyihalar uchun tenglikni qayta ishlatishim mumkin edi. Demak, bu baxtli kelishuv.

Dastur yaxshi ishlaydi, IOT qurilmasi anchadan buyon muammosiz barqaror ishlayapti.

Men Grafana orqali harorat va namlikni kuzatib, birgalikda joylashgan qurilma bilan taqqosladim. Atrof -muhitning ikkita qiymati bir -biri bilan chambarchas bog'liq, bu kalibrlash oqilona ekanligini anglatadi (yoki hech bo'lmaganda ular o'xshash).

Men so'z buyrug'ini ('WFD/SpeechTH/1/Word/Command') amalga oshirishdan to'xtadim, chunki vaqtim tugadi va davom etishim kerak edi. Agar men MySQL ma'lumotlar bazasini o'rnatgan bo'lsam, bu erga yana tashrif buyurishim mumkin. Hozir men InfluxDB dan foydalanayapman.

12 -qadam: Ishlatilgan adabiyotlar

Ushbu ko'rsatmalarni birlashtirish uchun quyidagi manbalar ishlatilgan; IoT Retro nutq sintez qurilmasi uchun manba kodi (bu erda hamma narsaning nusxasi mavjud)

https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2

PubSubClient.h

  • Muallif: Nik O'Leary
  • Maqsad: Qurilmaga MQTT mavzularini berilgan broker yordamida nashr qilish yoki unga obuna bo'lish imkonini beradi
  • Manba:

DHT.h

  • Muallif: Adafruit
  • Maqsad: DHT11DHT22 va boshqalar uchun Arduino kutubxonasi. Harorat va namlik sensori
  • Manba:

Adafruit_AM2320.h/Adafruit_Sensor.h

  • Muallif: Adafruit
  • Maqsad: AM2320 uchun Arduino kutubxonasi va boshqalar. Harorat va namlik sensori
  • Manba:

MCP4561_DIGI_POT.h

  • Muallif: Stiv Quinn
  • Maqsad: MCP4561 raqamli potentsiometr uchun Arduino kutubxonasi
  • Manba:

Adafruit_MCP23017.h

  • Muallif: Stiv Quinn
  • Maqsad: MCP23017 I2C Port Expander uchun Arduino kutubxonasi. Bu Adafruit-ning Adafruit-MCP23017-Arduino-kutubxonasidan GITHub vilkasi.
  • Manba:

O'yin-kulgi uchun

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

PCB ishlab chiqarish

https://jlcpcb.com/

Qo'shimcha Arduino kutubxonalarini o'rnatish

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

Namlik sensori qanday tekshiriladi va kalibrlanadi

https://www.allaboutcircuits.com/projects/how-to-check-and-calibrate-a-humidity-sensor/?utm_source=All+About+Cuits /

SP0256-AL2 ma'lumotlar jadvali

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

Nutq chiplari do'koni

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

Arduino musobaqasi 2019
Arduino musobaqasi 2019
Arduino musobaqasi 2019
Arduino musobaqasi 2019

Arduino 2019 musobaqasida ikkinchi o'rinni egalladi

Tavsiya: