Мазмуну:

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

Video: Ретро сүйлөө синтези. Бөлүм: 12 IoT, Үйдү автоматташтыруу: 12 кадам (Сүрөттөр менен)

Video: Ретро сүйлөө синтези. Бөлүм: 12 IoT, Үйдү автоматташтыруу: 12 кадам (Сүрөттөр менен)
Video: 10 предупреждающих знаков, что у вас уже есть деменция 2024, Ноябрь
Anonim
Image
Image
Ретро сүйлөө синтези. Бөлүм: 12 IoT, Үйдү автоматташтыруу
Ретро сүйлөө синтези. Бөлүм: 12 IoT, Үйдү автоматташтыруу

Бул макала үйдү автоматташтыруу боюнча көрсөтмөлөрдүн 12 -сериясы болуп саналат, ал IOT Retro Speech Synthesis түзмөгүн үй шартында ийгиликтүү жайылтуу үчүн керектүү программалык камсыздоону камтыган учурдагы үй автоматташтыруу тутумуна кантип түзүү жана интеграциялоону документтештирет.

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 ширетүү үчүн),
  • Junior Hacksaw,
  • Бургулоо (ар кандай бургу менен),
  • Жакшы кычкачтар (учтуу жана мурундуу),
  • Кирүүчү кескичтер,
  • Угуу үзгүлтүксүздүгүн текшерүү менен DMM,
  • Эки каналдуу санариптик диапазон (сигналдарды оңдоо үчүн ыңгайлуу)

Мага кандай көндүмдөр керек?

  • Сабыр көп,
  • Көп кол чеберчилиги жана кол/көздүн мыкты координациясы,
  • Мыкты ширетүү жөндөмү,
  • Мыкты өндүрүү жөндөмү,
  • 3 өлчөмдө элестетүү жөндөмү,
  • "С" менен программалык камсыздоону иштеп чыгуу боюнча кээ бир билимдер (эгер сиз баштапкы кодду түшүнгүңүз келсе),
  • Python боюнча кээ бир билимдер (скрипттерди кантип орнотуу жана иштетүү, эгер сиз автоматташтырылган тестирлөөнү колдонууну кааласаңыз),
  • Arduino жана анын IDE билими,
  • Электрониканы жакшы билүү,
  • Үй тармагыңыз жөнүндө бир аз түшүнүк.

Камтылган темалар

  • Колдонуучу Manual
  • Circuit Overview
  • PCB өндүрүү жана кураштыруу
  • Өндүрүү
  • Программалык камсыздоо системасына сереп
  • Программалык камсыздоо
  • Sensor Calibration
  • MQTT Теманы атоо конвенциясы
  • Мүчүлүштүктөрдү оңдоо жана каталарды табуу
  • Дизайнды сыноо
  • Жыйынтык
  • Колдонулган шилтемелер

Сериялар LinksTo Part 11: IoT Desktop Console. Бөлүм: 11 IoT, Үйдү автоматташтыруу

1 -кадам: Колдонуучунун колдонмосу

Колдонуучу Manual
Колдонуучу Manual
Колдонуучу Manual
Колдонуучу Manual
Колдонуучу Manual
Колдонуучу Manual

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

Корпус фронту

  1. Speaker Grill
  2. 3.5мм гарнитура уячасы: 3.5мм джек салынганда негизги динамик өчүрүлөт.
  3. Кызыл LED: Бул светодиод HTTP сурамы аркылуу сүйлөө башталганда сөз сүйлөп жатканда жарык болот.
  4. Көк LED: Бул LED MQTT IoT өтүнүчү аркылуу сүйлөө башталганда бир сөз айтылып жатканда жарык болот.

Корпус Арткы

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

2 -кадам: Районго жалпы сереп

Circuit Overview
Circuit Overview
Circuit Overview
Circuit Overview

Retro Speech Synth түзмөгү эки ПХБдан турат;

  • RetroSpeechSynthIoTBoard: Бул жалпы, кайра колдонулуучу ESP8266-07/12/12E/13 PCB
  • RetroSpeechSynthBoard: Бул жалпы SP0256-AL2 PCB

Retro Speech Synth IoT Board

Бул такта ESP8266-07/12/12E/13 же ESP8266 ташуучу ПХБны камтыган 0,1 дюймдук розеткаларды түз ширетүүгө мүмкүндүк берет.

Такта I/O туташуусун I2C туташуусун кеңейтүү үчүн иштелип чыккан жана Q1, Q2, R8-13 аркылуу 3v3 же 5v камсыздоо деңгээлин колдой алат.

Тактага туташуу J2 жана J4 эки баштын бири аркылуу, 8 тараптуу DIL IDC тасмасы же 5 тараптуу JST/Molex аркылуу ишке ашат.

Борт менен камсыздоону жөнгө салуу боюнча U2 жана U3 жоболору 3.3v жана 5v. Же болбосо, эгерде чоңураак кубаттуулук талап кылынса, J10 жана J11 коннекторлору аркылуу сериялык шунт жөнгө салгычтары тиркелиши мүмкүн.

J1 жана J3 туташтыргычтары SPI аркылуу тышкы SD картасын колдоону сунуштайт. J1 8-тараптуу Molex үчүн иштелип чыккан жана J3 3v3 же 5v колдоосу бар текчедеги SD карт ПХБ үчүн пиндин шайкештигин колдоо үчүн түз пинге ээ.

Retro Speech Synth Board

Бул тактаны башкаруу J1, J5 же J6, 4 тараптуу JST/Molex, 8 тараптуу DIL IDC же 8 тараптуу IDC лента туташтыргычы аркылуу I2C 5v шайкеш байланыш аркылуу жүргүзүлөт.

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

Digital Pot U1 да 5v шайкеш I2C аркылуу көзөмөлдөнөт.

Эскертүү: ESP8266-07 түзмөгү алюминий корпусуна тышкы WiFi антеннасын кошууга мүмкүндүк берген интегралдык IPX RF туташтыргычы болгондуктан тандалды.

3 -кадам: ПХБ өндүрүү жана чогултуу

PCB өндүрүү жана кураштыруу
PCB өндүрүү жана кураштыруу
PCB өндүрүү жана кураштыруу
PCB өндүрүү жана кураштыруу
PCB өндүрүү жана кураштыруу
PCB өндүрүү жана кураштыруу
PCB өндүрүү жана кураштыруу
PCB өндүрүү жана кураштыруу

1 жана 2-сүрөттөрдө алюминий корпусунун субстратында жайгашкан толтурулган жана зымдуу ПХБнын чакан бирикмелери көрсөтүлгөн.

Эки ПКБ JICPCB тарабынан чыгарылган жана мени чогулткан Kicad v4.0.7 аркылуу иштелип чыккан жана 3төн 13кө чейинки сүрөттөрдө көрсөтүлгөн.

4 -кадам: даярдоо

Өндүрүү
Өндүрүү
Өндүрүү
Өндүрүү
Өндүрүү
Өндүрүү

Сүрөт 1 акыркы чогултууга чейин бардык даярдалган бөлүктөрдүн Haynes Manual стили макетин көрсөтөт.

Сүрөттөр 2… 5 минималдуу тазалыктар менен корпусту даярдоо учурунда ар кандай кадрларды көрсөтөт.

5 -кадам: Программалык камсыздоо тутумуна сереп

Программалык камсыздоо системасына сереп
Программалык камсыздоо системасына сереп
Программалык камсыздоо системасына сереп
Программалык камсыздоо системасына сереп

Бул IoT Retro Speech Synthesis Device жогоруда 1 -сүрөттө көрсөтүлгөндөй алты негизги программалык компоненттерди камтыйт.

SD карта

Бул тышкы SD SPI Flash берүү системасы жана төмөнкү маалыматты кармоо үчүн колдонулат (2 -сүрөттү караңыз);

  • Icons жана 'Speech Synth Configuration Home Page' index.htm: IoT WiFi тармагыңызга туташа албай турганда IoT түзмөгү тарабынан тейленет (көбүнчө туура эмес коопсуздук маалыматынан же биринчи жолу колдонуудан) жана колдонуучуга каражат менен камсыз кылат. сенсорлорду алыстан конфигурациялоо, жаңы SD мазмунун кайра жаркыратуунун кажети жок, ал index1.htm, mqtt.htm жана sp0256.htmди камтыйт, бул веб-браузер аркылуу жеткиликтүү болгон локалдык синтезди башкарууга мүмкүндүк берүүчү жергиликтүү веб баракчалар. HTTP аркылуу.
  • Коопсуздук маалыматы: Бул IoT WiFi тармагына жана MQTT Брокерине туташуу үчүн IoT түзмөгү тарабынан колдонулган маалыматты камтыйт. 'Speech Synth Configuration Home Page' аркылуу берилген маалымат бул файлга жазылган ('secvals.txt').
  • Калибрлөө маалыматы: Файлдардын ичиндеги маалымат ('calvals1.txt' жана 'calvals2.txt') зарыл болгон учурда борттогу температура/нымдуулук сенсорлорун калибрлөө үчүн колдонулат. Калибрлөө константалары IoT түзмөгүнө MQTT брокеринин MQTT буйруктары аркылуу же SD картты кайра жаркыратып жазылышы мүмкүн. 'calvals1.txt' AM2320 сенсоруна жана DHT22'ге 'calvals2.txt' тиешелүү.
  • Колдонуучунун конфигурациялануучу тутумдук баалуулуктары: Бул файлдын ичиндеги маалымат ('confvals.txt'), колдонуучу тарабынан тандалган, системанын айрым жоопторун көзөмөлдөйт, мисалы, санариптик көлөмдүн баштапкы деңгээли, MQTT брокердик жазылуусунда автоматтык "система даяр" кулактандыруусу ж.

mDNS Server

Бул функция IoT түзмөгү сиздин WiFi тармагыңызга WiFi станциясы катары туташа албай калганда, анын ордуна ички WiFi роутерине окшош WiFi кирүү чекитине айланганда колдонулат. Мындай роутер болгон учурда, адатта, 192.168.1.1 сыяктуу нерселердин IP дарегин (адатта кутуга чапталган этикеткага басылган) браузериңиздин URL тилкесине кирүү менен туташасыз, ошондо сиз кирүү үчүн логин баракчасын аласыз. колдонуучунун атын жана паролду түзмөктү конфигурациялоого уруксат берүү. AP режиминде ESP8266-07 үчүн (Кирүү чекити режими) түзмөк 192.168.4.1 IP дареги боюнча иштейт, бирок mDNS сервери менен сиз браузердин URL тилкесине "SPEECHSVR.local" адамдык достук атын гана киргизишиңиз керек. 'Speech Synth Configuration Home Page'ди караңыз.

MQTT кардары

MQTT кардары бардык керектүү функцияларды камсыз кылат; IoT тармагыңызга туташыңыз MQTT брокери, өзүңүз тандаган темаларга жазылыңыз жана берилген темага жүктөрдү жарыялаңыз. Кыскача айтканда, IoT негизги функцияларын камсыз кылат.

HTTP Web Server

Бул веб -сервердин эки максаты бар;

  1. Эгерде IoT түзмөгү SSID, P/W ж. Кирүү түйүнү камсыз кылган WiFi тармагына туташкандан кийин, HTTP веб -серверинин болушу түзмөккө түз туташууга жана анын конфигурациясын HTTP веб браузери аркылуу өзгөртүүгө мүмкүндүк берет, анын максаты 'Speech Synth Configuration Башкы баракчанын веб -баракчасы, ал SD картада да бар.
  2. IoT Retro Speech Synthesis Device WiFi тармагына жана MQTT брокерине туташкандан кийин, эгер кирсе, HTTP Web Server автоматтык түрдө 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 файлы аныкталса киргизилет. Бул учурда Config Page көрүнүп турат

  • NW күтүлүүдө

    Бул абал убактылуу, Wi -Fi тармагы жок болгон учурда киргизилген

  • MQTT күтүлүүдө

    Бул абал убактылуу, WiFi тармагына туташкандан кийин киргизилген жана ал тармакта MQTT брокери менен эч кандай байланыш жок

  • АКТИВДҮҮ

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

Мамлекеттер ортосундагы өткөөлдөрдү көзөмөлдөгөн окуялар жогорудагы 1 -сүрөттө сүрөттөлгөн. Мамлекеттердин ортосундагы өткөөлдөр SecValsтын төмөнкү параметрлери менен да жөнгө салынат;

  • 1st MQTT Broker IP дареги. AAA. BBB. CCC. DDD чекиттүү ондук түрүндө
  • 2 -MQTT брокердик порт. Бүтүн түрүндө.
  • 3rd MQTT Broker байланышы STA режиминен AP режимине өтүүдөн мурун жасоого аракет кылат. Бүтүн түрүндө.
  • 4 -WiFi WiFi тармагы SSID. Эркин формада текст.
  • 5th WiFi тармагынын сырсөзү. Эркин формада текст.

Жогоруда айтылгандай, эгер IoT түзмөгү WiFi түйүнүн 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 түзмөгүн кайра конфигурациялоого мүмкүндүк берет.

АКТИВДҮҮ абалда алыстан кирүү

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 Retro Speech Synthesis Device Functional ACTIVE State

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

Бардык темаларга жазылуулардын жана пайдалуу адабияттардын толук тизмеси пайдалуу коддорго кирет.

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

Sensor Calibration
Sensor Calibration

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 түзмөгүнүн функционалдык акылга сыярлык логикалык топторун колдойт.

Бул темаларды программалык камсыздоого киргизүүдө мен RAMны үнөмдөө жана иштин жогорку деңгээлин сактап калуу үчүн темаларды динамикалык түрдө иштөө убактысынан айырмаланып, ар бир түзмөк үчүн бекитилген, камтылган сандык идентификаторлору бар катуу коддолгон темаларды колдондум.

Эскертүү: Эгер MQTTSpy кантип колдонууну билбей жатсаңыз, бул жерден караңыз 'MQTT брокерин орнотуу. 2 -бөлүк: IoT, Үйдү автоматташтыруу '

9 -кадам: Мүчүлүштүктөрдү оңдоо жана каталарды табуу

Мүчүлүштүктөрдү оңдоо жана каталарды табуу
Мүчүлүштүктөрдү оңдоо жана каталарды табуу

Жалпысынан, менин хобби долбоорлорум үчүн, мүмкүн болушунча, мен программалык камсыздоонун өкүлчүлүк аппараттык прототибин түзүүгө жакынмын, программалык камсыздоону акыркы платформанын жабдууларына интеграциялоодо менде сейрек көйгөйлөр бар.

Бирок, бул жолу мен кээ бир фонемалар үн чыгарып, башкалары жок, кызыктай үзгүлтүккө учураган катага туш болдум.

Speech Synth ПКБнын фонемаларды алуу жана бул тактанын иштеп жатканын далилдөө үчүн Arduino Uno аркылуу баштапкы мүчүлүштүктөрүн оңдогондон кийин, 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 сап). Татаалдыктын жогорулашы кол менен тестирлөөнүн узак циклдерин жана татаал тесттерди билдирет. Ишенимдүүлүктү, детерминизмди жана тесттердин сапатын жогорулатуу үчүн автоматташтырылган тестирлөө питон тестинин аткаруучусу аркылуу колдонулган (pic 1). Автоматташтырылган тестирлөө кантип киргизилгени боюнча ушул Нускамада #10 -кадамды караңыз. Бул Нускамада колдонулган автоматташтырылган тесттердин толук көчүрмөсү бул жерде.

Автоматташтырылган сыноо ырааттуулугунун видеосу жогоруда көрсөтүлгөн. Кезек төмөнкү кадамдарды аткарат;

  • MQTT аркылуу автоматташтырылган

    • MQTT магистралына туташыңыз жана "Система даяр" деп жарыялаңыз
    • Exercise Green LED
    • Exercise Red LED
    • Exercise Blue LED
    • Санарип казандын иштешин текшериңиз
    • Фонемаларды колдонуп сүйлөңүз
    • Фонемалар үчүн он алтылык коддорду колдонуп сүйлөңүз
    • Сөз айкаштарын оңдоо үчүн коддорду колдонуп сүйлөңүз
    • Доктор Ким жана Далекс бир аз кызыктуу.
  • Кол менен HTTP/Chrome аркылуу

    • Exercise Blue LED
    • Exercise Red LED
    • "Steven Quinn", "System Ready" жана "Hello World" фразаларын айтыңыз
    • HTTP серверине ээ болуңуз, кызмат кылыңыз

      • Speech Synth чипи боюнча деталдар
      • MQTT чоо -жайы

11 -кадам: Жыйынтык

Жыйынтык
Жыйынтык

Өзгөчө динамиктин тору үчүн файлдар жана машыгуулар ж.б. менен көп күч -аракетти талап кылса да, натыйжасы эстетикалык жактан жагымдуу жана жакшы, кичинекей корпуска топтолот деп ойлойм. Мен аны кичирейте алмакмын, бирок ал бир ПХБга өтүшү керек болчу жана мен аны атайылап экиге бөлдүм, ошондуктан кийинчерээк башка долбоорлор үчүн ПХБны кайра колдоно алам. Ошентип, бул бактылуу компромисс.

Программа жакшы иштейт, IoT түзмөгү бир топ убакыттан бери эч кандай көйгөйсүз туруктуу иштөөдө.

Мен Grafana аркылуу температураны жана нымдуулукту көзөмөлдөп, чогуу жайгашкан түзмөк менен салыштырып жатам. Эки чөйрөнүн мааниси жакшы корреляцияланган, бул калибрлөө акылга сыярлык экенин билдирет (же жок дегенде алар окшош).

Мен сөз буйругун ишке ашыра албай калдым ('WFD/SpeechTH/1/Word/Command'), анткени убактым түгөнүп, ары кетишим керек болчу. Эгерде мен MySQL маалымат базасын түзсөм, бул жерге кайра барышым мүмкүн. Азыр мен InfluxDB колдонуп жатам.

12 -кадам: Колдонулган шилтемелер

Төмөнкү булактар бул Нускамалыкты бириктирүү үчүн колдонулган; IoT Retro Speech Synthesis Device үчүн булак коду (бул бардыгынын көчүрмөсүн камтыйт)

https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2

PubSubClient.h

  • Автору: Nick O'Leary
  • Максаты: Берилген Брокер менен MQTT темаларын жарыялоого же жазылууга түзмөктү иштетет
  • Кимден:

DHT.h

  • Автор: Adafruit
  • Максаты: DHT11DHT22 жана башкалар үчүн Arduino китепканасы Temp & Humidity Sensors
  • Кимден:

Adafruit_AM2320.h/Adafruit_Sensor.h

  • Автор: Adafruit
  • Максаты: AM2320 үчүн Arduino китепканасы, ж.б Temp & Humidity Sensor
  • Кимден:

MCP4561_DIGI_POT.h

  • Автору: Стив Куинн
  • Максаты: MCP4561 санарип потенциометр үчүн Arduino китепканасы
  • Кимден:

Adafruit_MCP23017.h

  • Автору: Стив Куинн
  • Максаты: MCP23017 I2C Port Expander үчүн Arduino китепканасы. Бул Adafruit-Adafruit-MCP23017-Arduino-Китепканасынан GITHub айры.
  • Кимден:

Көңүл ачуу үчүн

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

PCB өндүрүшү

https://jlcpcb.com/

Кошумча Arduino китепканаларын орнотуу

https://www.arduino.cc/en/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_25m_mutikal /

SP0256-AL2 маалымат жадыбалы

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

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

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

Ардуино сынагы 2019
Ардуино сынагы 2019
Arduino сынагы 2019
Arduino сынагы 2019

Ардуино 2019 конкурсунда экинчи орун

Сунушталууда: