Мазмұны:

Ретро сөйлеу синтезі. Бөлім: 12 IoT, үйді автоматтандыру: 12 қадам (суреттермен)
Ретро сөйлеу синтезі. Бөлім: 12 IoT, үйді автоматтандыру: 12 қадам (суреттермен)

Бейне: Ретро сөйлеу синтезі. Бөлім: 12 IoT, үйді автоматтандыру: 12 қадам (суреттермен)

Бейне: Ретро сөйлеу синтезі. Бөлім: 12 IoT, үйді автоматтандыру: 12 қадам (суреттермен)
Бейне: RomaStories-Фильм (107 тілде субтитр) 2024, Шілде
Anonim
Image
Image
Ретро сөйлеу синтезі. Бөлім: 12 IoT, үйді автоматтандыру
Ретро сөйлеу синтезі. Бөлім: 12 IoT, үйді автоматтандыру

Бұл мақала IoT ретро сөйлеу синтезі құрылғыны қолданыстағы үй автоматтандыру жүйесіне қалай құру және біріктіру керектігін көрсететін, үйдегі автоматтандыру бойынша нұсқаулықтар сериясының 12 -ші мақаласы болып табылады.

1 -суретте IoT сөйлеуді синтездеудің аяқталған құрылғысы көрсетілген, ал 2 -суретте соңғы өнімге түсу үшін форм -факторы азайтылған прототипте қолданылған барлық компоненттер көрсетілген.

Бейнеде құрылғы жұмыс істеп тұрғанын көрсетеді (тестілеу кезінде).

Кіріспе

Жоғарыда айтылғандай, бұл нұсқаулықта IoT ретро сөйлеу синтезі құрылғысын жасау әдісі егжей-тегжейлі сипатталған және SP0256-AL2 жалпы құралдарына негізделген.

Оның негізгі мақсаты - IoT желісіне «ескі мектеп» дауыс синтезін қосу. Неліктен сіз «ескі мектеп» деп сұрай аласыз? Мен 80-ші жылдары, бұл заттар алғаш рет шығарылғанда мен BBC Micro-мен байланысқанмын, сондықтан мен үшін SP0256-AL2 айналасында ностальгия бар.

Мен Amazon эхо немесе Сиридің хипстер үндерін тыңдаудан гөрі, осы Дәлектің дауысты дауысы арқылы жер бетінде не айтылып жатқанын білуге тырысуды ұнатамын. Мен сізден сұрайтын қиындық қайда?

О, мен айтпағанның өзінде, менде «SP0256-AL2» IC-терінің «сөмке жүктемесі» бар.

Құрылғы сонымен қатар жергілікті температура мен ылғалдылықты оқи алады, сондықтан бұл жерде алынған қайта пайдаланылатын кодқа сүйене отырып, MQTT/OpenHAB негізіндегі IoT желісіне қосылған IoT инфрақұрылымының сыртқы құралдарын кеңейтеді.

ESP8266-07-бұл MQTT байланысына жауап беретін және жүйенің барлық функцияларын басқаруға жауап беретін (SD картасына кіру, жарықдиодты басқару, температураны/ылғалдылықты өлшеу, дыбыс деңгейін бақылау, сөйлеу синтезі) құрылғы. жергілікті SD картасы, бірақ калибрлеу мен желінің қауіпсіздігі параметрлері қашықтағы MQTT басылымдары арқылы да бағдарламалануы мүмкін.

Маған қандай бөлшектер қажет?

Материалдар есебін мына жерден қараңыз

Маған қандай бағдарламалық қамтамасыз ету қажет?

  • Arduino IDE 1.6.9,
  • Arduino IDE ESP8266-07 бағдарламалау үшін конфигурацияланған (дәл осылай). Содан кейін IDE бағдарламалық жасақтама эскизінде берілген егжей -тегжейлі сипаттамада көрсетілгендей конфигурациялаңыз,
  • Python v3.5.2 егер сіз автоматтандырылған тестілеу мүмкіндігін қолданғыңыз келсе, мұнда толығырақ

Маған қандай құралдар қажет?

  • Микроскоп кемінде x3 (SMT дәнекерлеу үшін),
  • Molex коннекторын қысу құралы (JST қосқыштары үшін),
  • SMD дәнекерлеу үтігі (сұйық ағынды қаламмен және ағынды дәнекерленген дәнекермен),
  • Бұрағыштар (әр түрлі),
  • Жылу пистолеті,
  • Бұрғылар (әр түрлі),
  • Қарсы қолмен жұмыс жасайтын құрал
  • Файлдар (әр түрлі),
  • Дремель (әр түрлі биттер),
  • Мықты вице (кіші мен үлкен, қара және жұмысшы сияқты),
  • Скальпель,
  • Штангенциркульдер (дайындауды өлшеу үшін қолданылады және ПХД компоненттерінің мөлшерін өлшеу үшін пайдалы),
  • Кілттер мен гайкалар драйверлері (әр түрлі),
  • Күшті пинцет (SMT дәнекерлеу үшін),
  • Джуниор Хекса,
  • Бұрғылау (әр түрлі бұрғылармен),
  • Жіңішке қысқыштар (мұрынды және ұшы),
  • Жуғыш кескіштер,
  • Үзіліссіздікті тексеретін DMM,
  • Қос каналды цифрлық диапазон (сигналдарды жөндеу үшін ыңғайлы)

Маған қандай дағдылар қажет?

  • Көп шыдамдылық,
  • Қолдың ептілігі мен қол мен көзді тамаша үйлестіру,
  • Дәнекерлеудің керемет дағдылары,
  • Өндірістің керемет дағдылары,
  • 3 өлшемде елестету қабілеті,
  • «С» әрпімен бағдарламалық қамтамасыз етуді әзірлеу туралы кейбір білімдер (егер сіз бастапқы кодты түсінгіңіз келсе),
  • Python туралы кейбір білімдер (егер сіз автоматтандырылған тестілеуді қолданғыңыз келсе, сценарийлерді орнату және іске қосу),
  • Arduino және оның IDE туралы білімі,
  • Электрониканы жақсы білу,
  • Үй желісі туралы біраз түсінік.

Қамтылған тақырыптар

  • Пайдаланушы нұсқаулығы
  • Схемаға шолу
  • ПХД жасау және құрастыру
  • Жасау
  • Бағдарламалық қамтамасыз ету жүйесіне шолу
  • Бағдарламалық қамтамасыз етуге шолу
  • Сенсорды калибрлеу
  • MQTT тақырыпты атау конвенциясы
  • Жөндеу және ақауларды табу
  • Дизайнды сынау
  • Қорытынды
  • Қолданылған әдебиеттер

Сілтемелер сериясы 11 бөлімге: IoT Desktop консолі. Бөлім: 11 IoT, үйді автоматтандыру

1 -қадам: Қолданушы нұсқаулығы

Пайдаланушы нұсқаулығы
Пайдаланушы нұсқаулығы
Пайдаланушы нұсқаулығы
Пайдаланушы нұсқаулығы
Пайдаланушы нұсқаулығы
Пайдаланушы нұсқаулығы

Жоғарыдағы 1 -суретте ретро сөйлеу синтезаторының алдыңғы жағы, 2 -суретте артқы жағы көрсетілген.

Қоршаудың алдыңғы жағы

  1. Динамик Гриль
  2. 3,5 мм құлаққап ұясы: 3,5 мм ұя салынған кезде негізгі динамик өшіріледі.
  3. Қызыл жарық диоды: бұл жарық диоды HTTP сұрауы арқылы сөйлеу басталған кезде сөз айтылған кезде жанады.
  4. Көк жарық диоды: бұл жарық диоды MQTT IoT сұрауы арқылы сөйлеу басталған кезде сөз айтылған кезде жанады.

Артқы корпус

  1. Қалпына келтіру түймесі: ESP8266-07 IoT құрылғысын қатты қалпына келтіру үшін қолданылады.
  2. Жарқыл түймесі: Қалпына келтіру түймесімен бірге қолданылған кезде ESP8266-07 қайта жыпылықтауға мүмкіндік береді.
  3. WiFi антенналық штепсель (SMA Plug): жабық алюминий болғандықтан, радиожиілік жолының әлсіреуін беретін сыртқы WiFi антеннасы үшін.
  4. Сыртқы бағдарламалау порты: қайта бағдарламалау мақсатында ESP8266-07-ге кіру үшін қоршауды бұрау қажеттілігін жою үшін. ESP8266-07 бағдарламалау түйреуіштері сыртқы бағдарламалау портына шығарылды. 3 -сурет - бағдарламалау адаптері.
  5. Жасыл жарық диоды: бұл IoT жүйесі, ол құрылғының диагностикалық күйін, жүктеу мен жұмыс кезінде қосылу үшін қолданылады.
  6. Сыртқы температура/ылғалдылық сенсоры (AM2320)
  7. SD картасының ұясы: Бұл барлық конфигурация/қауіпсіздік деректерін веб -сервер беттерімен бірге сақтайды.
  8. 2.1мм 6вдк қуат көзі

2 -қадам: схемаға шолу

Схемаға шолу
Схемаға шолу
Схемаға шолу
Схемаға шолу

Retro Speech Synth құрылғысы екі ПХД құрайды;

  • RetroSpeechSynthIoTBoard: Бұл жалпы, қайта қолданылатын ESP8266-07/12/12E/13 ПХД
  • RetroSpeechSynthBoard: Бұл жалпы SP0256-AL2 ПХД

Retro Speech Synth IoT тақтасы

Бұл тақта ESP8266-07/12/12E/13 немесе ESP8266 тасымалдаушы ПХД орналастырылған 0,1 дюймдік розеткаларды тікелей дәнекерлеуге мүмкіндік береді.

Тақта I2C қосылымы арқылы I/O кеңейтуге арналған және Q1, Q2, R8-13 арқылы 3v3 немесе 5v жеткізу деңгейлерін қолдай алады.

Тақтаға қосылу J2 және J4 тақырыптарының бірі арқылы, 8-жолды DIL IDC таспасы немесе 5-жолды JST/Molex арқылы жүзеге асады.

Бортта жабдықтауды реттеуде U2 және U3 ережесі 3.3в және 5в. Сонымен қатар, егер үлкен ток қуаты қажет болса, сәйкесінше J10 және J11 қосқыштары арқылы сериялы шунт реттегіштері бекітілуі мүмкін.

J1 және J3 қосқыштары SPI арқылы сыртқы SD картасын қолдауды ұсынады. J1 8-бағытты Molex-ке арналған, ал J3-те 3v3 немесе 5v тірегі бар SD картасының PCB сөресінен шығыс үйлесімділігін қолдау үшін тікелей түйреуіш бар.

Retro Speech Synth тақтасы

Бұл тақтаны басқару J1, J5 немесе J6 арқылы I2C 5v үйлесімді қосылым, 4-жолды JST/Molex, 8-жолды DIL IDC немесе 8-жолды IDC таспалы қосқыш арқылы жүзеге асады.

U2 MPC23017 I2C U3-ке параллель интерфейске SP0256-AL2 мен D1 (жасыл), D2 (қызыл) және D3 (көк) жарықдиодты қамтамасыз етеді. Speech Synth шығысы CR1 TBA820M аудио күшейткішке RV1 аналогты немесе U1 MCP4561 сандық кастрюль арқылы беріледі.

Digital Pot U1 сонымен қатар 5В үйлесімді I2C арқылы басқарылады.

Ескерту: ESP8266-07 құрылғысы алюминий корпусына сыртқы WiFi антеннасын қосуға мүмкіндік беретін интегралды IPX RF қосқышы бар болғандықтан таңдалды.

3 -қадам: ПХД жасау және құрастыру

ПХД жасау және құрастыру
ПХД жасау және құрастыру
ПХД жасау және құрастыру
ПХД жасау және құрастыру
ПХД жасау және құрастыру
ПХД жасау және құрастыру
ПХД жасау және құрастыру
ПХД жасау және құрастыру

1 және 2-суреттерде алюминий қоршаудың субстратында орналасқан аяқталған және сымды ПХД қосалқы жинақтары көрсетілген.

Екі ПХД JICPCB шығарған және мен құрастырған Kicad v4.0.7 көмегімен жасалған және 3 -тен 13 -ке дейінгі суреттерде көрсетілген.

4 -қадам: өндіріс

Жасау
Жасау
Жасау
Жасау
Жасау
Жасау

1 -суретте түпкілікті құрастыру алдында барлық дайын бөлшектердің Haynes Manual стиліндегі орналасуы көрсетілген.

2… 5 суреттер қоршауды дайындау кезінде әр түрлі кадрларды көрсетеді.

5 -қадам: Бағдарламалық қамтамасыз ету жүйесіне шолу

Бағдарламалық қамтамасыз ету жүйесіне шолу
Бағдарламалық қамтамасыз ету жүйесіне шолу
Бағдарламалық қамтамасыз ету жүйесіне шолу
Бағдарламалық қамтамасыз ету жүйесіне шолу

Бұл IoT ретро сөйлеуді синтездеу құрылғысы жоғарыда 1 -суретте көрсетілгендей бағдарламалық қамтамасыз етудің алты негізгі компоненттерінен тұрады.

SD картасы

Бұл сыртқы SD SPI Flash файлдық жүйесі және келесі ақпаратты сақтау үшін қолданылады (жоғарыдағы 2 -суретті қараңыз);

  • Белгілер мен 'Speech Synth конфигурациясының бастапқы беті' индексі.htm: IoT WiFi желісіне қосыла алмайтын кезде (әдетте дұрыс емес қауіпсіздік ақпараты немесе бірінші рет қолданылуына байланысты) IoT құрылғысы қызмет көрсетеді және пайдаланушыға құралмен қамтамасыз етеді. датчиктерді қашықтан конфигурациялау, жаңа SD мазмұнын қайта жыпылықтауды қажет етпейді, сонымен қатар index1.htm, mqtt.htm және sp0256.htm-ге ие, бұл веб-браузер арқылы қол жетімді жергілікті сөйлеу синтезін басқаруға мүмкіндік беретін веб-беттер. HTTP арқылы.
  • Қауіпсіздік туралы ақпарат: бұл IoT WiFi желісі мен MQTT брокеріне қосылу үшін IoT құрылғысы қосылған кезде қолданылатын ақпаратты сақтайды. 'Speech Synth конфигурациясының бастапқы беті' арқылы берілген ақпарат осы файлға жазылады ('secvals.txt').
  • Калибрлеу туралы ақпарат: Файлдардағы ақпарат ('calvals1.txt' және 'calvals2.txt') қажет болған жағдайда борттық температура/ылғалдылық сенсорларын калибрлеу үшін қолданылады. Калибрлеу тұрақтыларын IoT құрылғысына MQTT брокерінің MQTT командалары арқылы немесе SD картасын қайта жыпылықтау арқылы жазуға болады. 'calvals1.txt' AM2320 сенсорына және 'calvals2.txt' DHT22 -ге қатысты.
  • Пайдаланушы конфигурацияланатын жүйенің мәндері: пайдаланушы таңдаған осы файлдың ішіндегі ақпарат ('confvals.txt') жүйенің кейбір жауаптарын бақылайды, мысалы, цифрлық дыбыс деңгейінің бастапқы деңгейі, MQTT брокерінің жазылуына «жүйеге дайын» автоматты хабарландыру және т.

mDNS сервері

Бұл функция IoT құрылғысы WiFi желісіне Wi -Fi станциясы ретінде қосыла алмаса және оның орнына жергілікті WiFi маршрутизаторына ұқсас WiFi кіру нүктесіне айналған кезде шақырылады. Егер мұндай маршрутизатор болса, сіз әдетте оған 192.168.1.1 IP мекенжайын енгізу арқылы қосыласыз (әдетте қорапқа жапсырылған жапсырмада басылады) сіздің шолғыштың URL -жолағына тікелей кіру парағын аласыз. құрылғыны конфигурациялауға мүмкіндік беретін пайдаланушы аты мен құпия сөз. AP режимінде ESP8266-07 (кіру нүктесі режимі) үшін құрылғы әдепкі бойынша 192.168.4.1 IP мекенжайын орнатады, бірақ mDNS сервері жұмыс істеп тұрғанда, браузердің URL-жолағына «SPEECHSVR.local» деген адамға ыңғайлы атауды енгізу қажет. «Speech Synth конфигурациясының бастапқы бетін» қараңыз.

MQTT клиенті

MQTT клиенті барлық қажетті функцияларды қамтамасыз етеді; IoT желісінің MQTT брокеріне қосылыңыз, сіз таңдаған тақырыптарға жазылыңыз және берілген тақырыпқа жүктемені жариялаңыз. Қысқаша айтқанда, бұл IoT негізгі функционалдығын қамтамасыз етеді.

HTTP веб -сервері

Бұл веб -сервердің екі мақсаты бар;

  1. Егер IoT құрылғысы SSID, P/W және т.б. SD картасында сақталған қауіпсіздік ақпараты файлында анықталған WiFi желісіне қосыла алмаса, құрылғы кіру нүктесіне айналады. Қатынас нүктесі қамтамасыз ететін WiFi желісіне қосылғаннан кейін, HTTP веб -серверінің болуы құрылғыға тікелей қосылуға және оның конфигурациясын HTTP веб -шолғышының көмегімен өзгертуге мүмкіндік береді, оның мақсаты - сөйлеу синтезінің конфигурациясы. Негізгі беттің веб -беті, ол SD картасында да бар.
  2. IoT ретро сөйлеу синтезі құрылғысы WiFi желісіне және MQTT брокеріне қосылғаннан кейін, егер оған қол жеткізілсе, HTTP веб -сервері HTTP веб -бетіне автоматты түрде қызмет көрсетеді, бұл IoT құрылғысын шектеулі басқаруға бекітілген фразалар мен сөйлеу мүмкіндігін таңдау мүмкіндігін береді. екі алдыңғы қызыл және көк жарықдиодты айналдырыңыз.

WiFi станциясы

Бұл функция IoT құрылғысына қауіпсіздік ақпараты файлындағы параметрлерді қолдана отырып, үйдегі WiFi желісіне қосылу мүмкіндігін береді, онсыз сіздің IoT құрылғысы MQTT брокеріне жазыла алмайды/жариялай алмайды.

WiFi кіру нүктесі

WiFi кіру нүктесі болу мүмкіндігі - бұл IoT құрылғысы оған қосылу және WiFi станциясы мен браузер арқылы конфигурацияны өзгертуге мүмкіндік беретін құрал (мысалы, Apple iPad -тағы Safari). Бұл кіру нүктесі SSID = «SPEECHSYN» + IoT құрылғысының MAC мекенжайының соңғы 6 цифрын таратады. Бұл жабық желінің құпия сөзі «PASSWORD» деп аталады

6 -қадам: Бағдарламалық қамтамасыз етуге шолу

Бағдарламалық қамтамасыз етуге шолу
Бағдарламалық қамтамасыз етуге шолу
Бағдарламалық қамтамасыз етуге шолу
Бағдарламалық қамтамасыз етуге шолу
Бағдарламалық қамтамасыз етуге шолу
Бағдарламалық қамтамасыз етуге шолу

Кіріспе

Бұл бастапқы кодты сәтті құрастыру үшін сізге кодтың жергілікті көшірмесі мен төмендегі 12 -қадамда пайдаланылған әдебиеттер қажет болады. Егер сіз Arduino кітапханасын қалай орнату керектігін білмесеңіз, осында өтіңіз.

Шолу

Бағдарламалық қамтамасыз ету жоғарыдағы 1-суретте көрсетілгендей күй машинасын қолданады (менің GitHub репозиторийімдегі дереккөздің толық көшірмесі). Төменде көрсетілгендей 5 негізгі мемлекет бар;

  • ІШІНДЕ

    Бұл инициализация күйі қосылғаннан кейін енгізілген бірінші күй

  • NOCONFIG

    Бұл күй қосылғаннан кейін жарамсыз немесе жоқ secvals.txt файлы анықталған жағдайда енгізіледі. Бұл күйде конфигурация беті көрінеді

  • NW күтуде

    Бұл күй өтпелі, WiFi желісіне қосылмаған кезде енгізілген

  • MQTT күтуде

    Бұл күй өтпелі, WiFi желісіне қосылғаннан кейін енгізіледі және бұл желіде MQTT брокерімен байланыс жоқ

  • АКТИВТІ

    Бұл WiFi желісінің қосылымы мен MQTT брокерінің қосылымы орнатылғаннан кейін енгізілген қалыпты жұмыс күйі. Дәл осы күйде IoT ретро сөйлеу синтезі құрылғысындағы температура, жылу индексі мен ылғалдылық MQTT брокеріне үнемі жарияланады. Бұл жағдайда Speech Synth бастапқы беті көрінеді

Мемлекеттер арасындағы ауысуларды бақылайтын оқиғалар жоғарыдағы 1 -суретте сипатталған. Штаттар арасындағы ауысулар SecVals -тың келесі параметрлерімен де реттеледі;

  • Бірінші MQTT брокерінің IP мекенжайы. AAA. BBB. CCC. DDD нүктелі ондық түрінде
  • 2 -ші MQTT брокер порты. Бүтін түрінде.
  • 3 -ші MQTT Broker қосылымы STA режимінен AP режиміне ауыспас бұрын жасауға тырысады. Бүтін түрінде.
  • 4 -ші WiFi желісінің SSID. Мәтін еркін түрде.
  • 5 -ші WiFi желісінің құпия сөзі. Мәтін еркін түрде.

Жоғарыда айтылғандай, егер IoT құрылғысы Wi -Fi станциясы ретінде WiFi желісіне қосыла алмаса, SSID және P/W SD картасында сақталған secvals.txt файлында анықталған болса, IoT құрылғысы кіру нүктесіне айналады. Осы кіру нүктесіне қосылғаннан кейін ол жоғарыда 2 -суретте көрсетілгендей «Speech Synth Configuration Home Page» қызмет етеді (браузерлердің URL мекенжай жолағына 'SPEECHSVR.local' немесе 192.168.4.1 енгізу арқылы). Бұл басты бет HTTP браузері арқылы IoT Retro Speech Synthesis құрылғысын қайта конфигурациялауға мүмкіндік береді.

ACTIVE күйінде болғанда қашықтан қатынау

MQTT брокеріне қосылғаннан кейін MQTT тақырыптық жарияланымдар арқылы құрылғыны қайта калибрлеуге де, қайта конфигурациялауға да болады. Calvals.txt файлында R/W қатынасы бар және secvals.txt тек жазуға рұқсаты бар.

Жоғарыда айтылғандай, белсенді режимде браузерлердің URL мекенжай жолағына 'SPEECHSVR.local' немесе 192.168.4.1 енгізу арқылы HTTP интерфейсі арқылы Speech Synth -ке кіруге болады. Бұл HTTP интерфейсі Speech Synth -ті негізгі басқаруға мүмкіндік береді. 3, 4 және 5 суреттерде қол жетімді веб -беттер көрсетілген.

Қолданбаны түзету

Жүктеу дәйектілігі кезінде корпустың артқы жағындағы IoT құрылғысының жасыл жүйесі келесі жөндеу туралы кері байланысты береді;

  • 1 Қысқа жарқыл: SD картасында конфигурация файлы жоқ (secvals.txt)
  • 2 Қысқа жыпылықтау: IoT құрылғысы WiFi желісіне қосылуға тырысуда
  • Үздіксіз жарықтандыру: IoT құрылғысы MQTT брокеріне қосылуға тырысуда
  • Өшірулі: құрылғы белсенді.

IoT ретро сөйлеу синтезі құрылғысының белсенділігі

АКТИВ күйінде ESP8266 келесі функцияларды шақыратын үздіксіз циклге кіреді; timer_update (), checkTemperatureAndHumidity () және handleSpeech (). Таза нәтиже пайдаланушыға HTTP немесе MQTT интерфейсін ұсынуға, фонемалары бар борттық сөйлеу процессорына үздіксіз қызмет көрсетуге және жергілікті қоршаған ортаның параметрлік мәндерін MQTT бойынша жариялауға арналған.

Тақырыптық жазылымдар мен пайдалы жарияланымдардың толық тізімі пайдалы кодты қосады.

7 -қадам: сенсорды калибрлеу

Сенсорды калибрлеу
Сенсорды калибрлеу

IoT құрылғысы қосылған кезде, жүктеу кезегінің бір бөлігі ретінде SD картасынан 'cavals1.txt' және 'cavals2.txt' деп аталатын екі файл оқылады.

Бұл файлдардың мазмұны 1 -суретте жоғарыда көрсетілген калибрлеу тұрақтылары болып табылады.

  1. 'cavals1.txt': сыртқы AM2320 пайдаланылады
  2. 'cavals2.txt': ішкі DHT22 қолданады

Бұл калибрлеу тұрақтылары екі датчиктерден алынған көрсеткіштерді анықтамалық құрылғыға сәйкестендіру үшін реттеу үшін қолданылады. Әр құрылғы үшін есеп беру стратегиясын анықтайтын және сенсорларды калибрлеу процедурасымен бірге төменде сипатталған тағы бір мән бар.

Есеп беру стратегиясы

Бұл параметр қашықтан басқару сенсорының қоршаған ортадағы кез келген параметрлік өзгерістер туралы қалай хабар беретінін анықтайды. Егер 0 мәні таңдалса, қашықтан басқару сенсоры тиісті сенсор әр оқылған сайын температурада немесе ылғалдылықта болатын өзгерістерді жариялайды (шамамен әр 10 секунд сайын). Кез келген басқа мән өзгерісті жариялауды 1… 60 минутқа кешіктіреді. Бұл параметрді өзгерту MQTT желілік трафигін оңтайландыруға мүмкіндік береді. Айта кету керек, DHT22 температурасы мен ылғалдылығы датчиктердің шектеулі болуына байланысты кезектесіп оқылады.

Температураны калибрлеу

Температура сенсорын калибрлеу үшін мен мұнда 4 -қадамда баяндалған процесті орындадым, қайтадан y = mx+c қатынасын қолдандым. Мен анықтамалық құрылғы ретінде IoT температурасы, ылғалдылық сенсоры #1 қолдандым. Сенсордан алынған мәндер Цельсий градусында.

Ылғалдылықты калибрлеу

Жергілікті ылғалдылықты дәл жазып алуға немесе тіпті бақылауға мүмкіндігім болмағандықтан, сенсорды калибрлеу үшін мен жоғарыдағы 4 -қадамға ұқсас әдісті қолдандым, тағы да сенсор ретінде №1 сенсорды қолдандым. Жоғарыда айтылғандай, мен жақында интернетте ылғалдылық сенсорларын калибрлеуді сипаттайтын тамаша мақаланы таптым. Мен болашақта бұл әдісті қолдана аламын. Сенсордан алынған мәндер салыстырмалы ылғалдылықтың %жасында.

8 -қадам: MQTT тақырыптық атау конвенциясы

MQTT тақырыпты атау конвенциясы
MQTT тақырыпты атау конвенциясы
MQTT тақырыпты атау конвенциясы
MQTT тақырыпты атау конвенциясы

Бұрынғы нұсқаулықта (мұнда) айтылғандай, мен жоғарыда 1 -суретте көрсетілген тақырыптың атау конвенциясына тоқталдым.

Атап айтқанда, 'AccessMethod/DeviceType/whichDevice/Action/SubDevice' Бұл мінсіз емес, бірақ ол берілген сүзгілерге берілген параметрлік тақырып бойынша барлық сенсорлық шығуларды көру үшін қолдануға мүмкіндік береді, осылайша MQTTSpy көмегімен жоғарыдағы 2 -суреттегідей оңай салыстыруға мүмкіндік береді.

Бұл жоба - бір құрылғыда бір типті басылымның бірнеше бастапқы көзі бар бірінші нұсқа. яғни. Ішкі және сыртқы қосалқы құрылғылардан екі температура/ылғалдылық сенсоры.

Ол сондай -ақ берілген IoT құрылғысындағы функционалдылықтың ақылға қонымды логикалық топталуын қолдайды.

Бұл тақырыптарды бағдарламалық қамтамасыз етуде іске асыру кезінде мен жедел жадты үнемдеу және өнімділікті жоғарылату үшін жұмыс уақытында тақырыптарды динамикалық түрде құрудан айырмашылығы, әр құрылғы үшін бекітілген, енгізілген сандық идентификаторлары бар қатты кодталған тақырыптық жолдарды қолдандым.

Ескерту: MQTTSpy қалай қолданылатынын білмесеңіз, мына жерден қараңыз: MQTT брокерін орнату. 2 -бөлім: IoT, үйді автоматтандыру

9 -қадам: жөндеу және ақауларды табу

Жөндеу және ақауларды табу
Жөндеу және ақауларды табу

Жалпы алғанда, менің хобби жобаларым үшін, егер мүмкін болса, мен бағдарламалық қамтамасыз етуді өңдейтін өкілдік прототипін құруға бейіммін, менде бағдарламалық қамтамасыз етуді соңғы платформаның аппараттық құралына біріктіру кезінде сирек проблемалар туындайды.

Алайда, бұл жағдайда мен біршама үзіліссіз ақауларға тап болдым, олар арқылы кейбір фонемалар дыбыс шығарады, ал басқалары жоқ.

Arduino Uno көмегімен сөйлеуді синтездеу PCB -де фонемаларды алу және осы тақтаның жұмыс істеп тұрғанын дәлелдеу үшін алғашқы рет түзетуден кейін мен IoT PCB мен Speech Synth ПХД арасындағы I2C желілерін қолдандым. Жоғарыдағы 1 -суретті қараңыз.

Сіз іздердегі I2C сигналының «аралау тісін»/экспоненциалды жиегін анық көре аласыз.

Бұл әдетте I2C тартылу мәндерінің тым жоғары екенін көрсетеді, бұл желілік кернеудің ашық ағызу тізбегінде жеткілікті жылдам қалпына келуіне жол бермейді.

«Жұмыс» ретінде мен RK және R13 резисторларын 10K -пен 4K7 беру үшін параллельдедім және сөйлеу синтезінің «өмірге енуіне» сенімдімін.

Сәтсіздіктің бұл түрі осы типтегі жобаларды жөндеу кезінде не болатынына қарама -қайшы. Жалпы алғанда, Ebay -ден сатып алынған I2C модульдерінің көпшілігі 10K немесе 4K7 тартқыштармен жабдықталған. Егер сіз 5 I2C модулін қолданғыңыз келсе, олардың әрқайсысы 4K7 тартылатын болса, онда жалпы жүктеме 940R құрайды, бұл шебердің шығыс кезеңі үшін тым үлкен болады. Түзету әр модульдегі тартылатын резисторлардың бір жиынтығынан басқасының бәрін дәнекерлеу болады. Жақсырақ, шеберден физикалық алыс.

Пайдалы кеңес және I2C құрылғыларымен электрониканы жобалау кезінде есте ұстаған жөн.

10 -қадам: Дизайнды тексеру

Image
Image
Дизайнды сынау
Дизайнды сынау
Дизайнды сынау
Дизайнды сынау

Тестілеу екі әдістеме бойынша жүргізілді; Қолмен және автоматтандырылған.

Бастапқы кодты әзірлеу кезінде бірінші, қолмен және әдетте қолданылған барлық қол жетімді тақырыптарды қолдану және жарияланған жауаптарды тексеру үшін MQTT Spy қолданылды (2 -суретте көрсетілген). Бұл қолмен орындалатын процесс болғандықтан, кодты әзірлеу барысында уақытты қажет етеді және қателіктерге бейім болады, бірақ қолмен орындау 100% қамтуды қамтамасыз етеді.

MQTTSpy қолмен тестілеу үшін таңдалды, себебі бұл берілген жүктемені қолмен форматтаудың және оны кез келген тақырыпқа оңай жариялаудың тамаша құралы. Ол сонымен қатар уақытты анықтайтын журналды көрсетеді, ол отладка үшін өте пайдалы (жоғарыдағы 3 -сурет).

Екінші, автоматтандырылған тәсіл бастапқы код күрделене түскендіктен қабылданды (> 3700 жол). Күрделіліктің жоғарылауы қолмен тестілеудің ұзағырақ циклін және күрделі тесттерді білдіреді. Тесттердің сенімділігін, детерминизмін және сапасын жақсарту үшін python тест орындаушысы арқылы автоматтандырылған тестілеу қолданылды (1 -сурет). Автоматтандырылған тестілеу қалай енгізілгені туралы осы Нұсқаулықтағы №10 қадамды қараңыз. Нұсқаулықта пайдаланылатын автоматтандырылған тестілердің толық көшірмесі мына жерде.

Автоматтандырылған тестілеудің реттілігі туралы бейне жоғарыда көрсетілген. Кезектілік келесі қадамдарды орындайды;

  • MQTT арқылы автоматтандырылған

    • MQTT магистральына қосылыңыз және «Жүйеге дайын» деп хабарлаңыз
    • Жасыл жарықдиодты жаттығу
    • Қызыл жарықдиодты жаттығу
    • Көк жарықдиодты жаттығу
    • Digital Pot жұмысын тексеріңіз
    • Фонемаларды пайдаланып сөйлеңіз
    • Фонемаларға арналған он алтылық кодтарды қолданып сөйлеңіз
    • Сөз тіркестерінің кодтарын қолданып сөйлеңіз
    • Доктор Кім мен Далекстің сәл көңілді.
  • Қолмен HTTP/Chrome арқылы

    • Көк жарықдиодты жаттығу
    • Қызыл жарықдиодты жаттығу
    • «Стивен Куинн», «Жүйеге дайын» және «Сәлем әлемі» тіркестерін айтыңыз.
    • HTTP сервері бар, қызмет көрсетіңіз

      • Speech Synth чипі туралы мәліметтер
      • MQTT мәліметтері

11 -қадам: Қорытынды

Қорытынды
Қорытынды

Файлдар мен жаттығулармен, әсіресе динамик торына көп күш жұмсалғанына қарамастан, нәтиже эстетикалық жағынан ұнамды деп ойлаймын және жақсы, кішкентай қоршауға жиналады. Мен оны кішірейте алар едім, бірақ бір ПХД-ге өту керек еді, мен оны әдейі екіге бөлдім, сондықтан ПХД-ны басқа жобалар үшін кейінірек қайта пайдалану үшін. Сондықтан бұл бақытты ымыраға келу.

Бағдарламалық қамтамасыз ету жақсы жұмыс істейді, IoT құрылғысы ұзақ уақыт бойы еш қиындықсыз тұрақты жұмыс істейді.

Мен Grafana арқылы температура мен ылғалдылықты бақылап, бірге орналасқан құрылғымен салыстырдым. Қоршаған ортаның екі мәні жақсы сәйкес келеді, бұл калибрлеу ақылға қонымды (немесе, кем дегенде, олар ұқсас).

Мен уақыт командасы («WFD/SpeechTH/1/Word/Command») пәрменін енгізуді тоқтаттым, себебі менде уақыт таусылды, әрі қарай жүру керек болды. Егер мен MySQL деректер базасын құрған болсам, мен бұл жерге қайта кіре аламын. Мен қазір InfluxDB қолданамын.

12 -қадам: Қолданылған әдебиеттер

Нұсқаулықты біріктіру үшін келесі көздер пайдаланылды; IoT ретро сөйлеу синтезі құрылғысының бастапқы коды (мұнда барлығының көшірмесі бар)

https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2

PubSubClient.h

  • Авторы: Ник О'Лири
  • Мақсаты: құрылғыға берілген брокермен MQTT тақырыптарын жариялауға немесе жазылуға мүмкіндік береді
  • Кімнен:

DHT.h

  • Авторы: Адафрут
  • Мақсаты: DHT11DHT22 және т.б. температура мен ылғалдылық сенсорларына арналған Arduino кітапханасы
  • Кімнен:

Adafruit_AM2320.h/Adafruit_Sensor.h

  • Авторы: Адафрут
  • Мақсаты: AM2320 үшін Arduino кітапханасы және т.б. Температура мен ылғалдылық сенсоры
  • Кімнен:

MCP4561_DIGI_POT.h

  • Авторы: Стив Куинн
  • Мақсаты: MCP4561 сандық потенциометріне арналған Arduino кітапханасы
  • Кімнен:

Adafruit_MCP23017.h

  • Авторы: Стив Куинн
  • Мақсаты: MCP23017 I2C Port Expander үшін Arduino кітапханасы. Бұл Adafruit-тен Adafruit-MCP23017-Arduino-кітапханасынан алынған GITHub шанышқысы.
  • Кімнен:

Әзіл үшін

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

ПХД өндірісі

https://jlcpcb.com/

Қосымша Arduino кітапханаларын орнату

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

Ылғалдылық датчигін қалай тексеруге және калибрлеуге болады

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

SP0256-AL2 мәліметтер парағы

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

Сөйлеу чиптері дүкені

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

Arduino байқауы 2019
Arduino байқауы 2019
Arduino байқауы 2019
Arduino байқауы 2019

Arduino 2019 байқауында екінші орын

Ұсынылған: