Talaan ng mga Nilalaman:

Retro Speech Synthesis. Bahagi: 12 IoT, Home Automation: 12 Hakbang (na may Mga Larawan)
Retro Speech Synthesis. Bahagi: 12 IoT, Home Automation: 12 Hakbang (na may Mga Larawan)

Video: Retro Speech Synthesis. Bahagi: 12 IoT, Home Automation: 12 Hakbang (na may Mga Larawan)

Video: Retro Speech Synthesis. Bahagi: 12 IoT, Home Automation: 12 Hakbang (na may Mga Larawan)
Video: 3-часовой марафон паранормальных и необъяснимых историй 2024, Hulyo
Anonim
Image
Image
Retro Speech Synthesis. Bahagi: 12 IoT, Home Automation
Retro Speech Synthesis. Bahagi: 12 IoT, Home Automation

Ang artikulong ito ay ang ika-12 sa isang serye tungkol sa mga automation ng Instruction ng bahay na nagdodokumento kung paano lumikha at isama ang isang IoT Retro Speech Synthesis Device sa isang mayroon nang sistema ng automation sa bahay kasama ang lahat ng kinakailangang pagpapaandar ng software upang paganahin ang matagumpay na pag-deploy sa loob ng isang domestic environment.

Ipinapakita ng Larawan 1 ang nakumpleto na aparato ng pagsasalita ng IoT pagsasalita at ipinapakita ng Larawan 2 ang lahat ng mga bahagi ng sangkap na ginamit sa prototype na binawasan ang form factor upang makapunta sa huling produkto.

Ipinapakita ng video ang aparato sa pagkilos (habang sinusubukan).

Panimula

Tulad ng nabanggit sa itaas ng mga detalyeng Maituturo kung paano gumawa ng isang IoT Retro Speech Synthesis Device at batay sa paligid ng Pangkalahatang Mga Instrumentong SP0256-AL2.

Pangunahing layunin nito ay magdagdag ng synthesis ng boses na 'old school' sa isang IoT network. Bakit ka maaaring magtanong sa 'old school'? Sa gayon, dahil nasa paligid ako noong dekada 80 nang ang mga bagay na ito ay unang ginawa at nag-interfaced ako ng isa sa aking BBC Micro kaya para sa akin mayroong ilang antas ng nostalgia na nakapalibot sa SP0256-AL2.

Mas gusto ko ang hamon ng pagsubok na alamin kung ano ang nasa lupa na sinasabi ng Dalek na tunog na ito kaysa sa pakikinig sa mga tono ng dulcet ng isang hipster na Amazon echo o Siri. Nasaan ang hamon sa pagtatanong ko sa iyo?

Oh, at hindi na banggitin mayroon din akong isang 'bag load' ng 'SP0256-AL2' ICs na nakahiga.

Ang aparato ay may kakayahang basahin ang lokal na temperatura at halumigmig kaya't karagdagang pinapalawig ang paligid ng pagtuturo ng aking mayroon nang IoT na imprastraktura na nakakabit sa MQTT / OpenHAB na nakabatay sa IoT network na detalyado sa seryeng ito sa home automation (HA), pagbuo ng muling ginamit na code na kinuha mula rito.

Nasa puso ito ay isang ESP8266-07 na responsable para sa mga komunikasyon ng MQTT at pagkontrol sa lahat ng pag-andar ng system (pag-access sa SD card, humantong sa kontrol, pag-sensing ng temperatura / kahalumigmigan, kontrol sa dami, pagsasalita synthesis). Ang aparato ay ganap na mai-configure sa pamamagitan ng mga file ng teksto na nakaimbak sa isang lokal na SD card, kahit na ang pagkakalibrate at mga parameter ng seguridad ng network ay maaari ding mai-program sa pamamagitan ng malayuang mga publication ng MQTT.

Anong mga bahagi ang kailangan ko?

Tingnan ang bill ng mga materyales dito

Anong software ang kailangan ko?

  • Arduino IDE 1.6.9,
  • Ang Arduino IDE ay naka-configure upang mai-program ang ESP8266-07 (pareho nito). Pagkatapos ay i-configure ang IDE tulad ng ipinahiwatig sa detalyadong paglalarawan na ibinigay sa sketch ng software dito,
  • Python v3.5.2 kung nais mong gamitin ang awtomatikong kakayahan sa pagsubok, mga detalye dito

Anong mga tool ang kailangan ko?

  • Mikroskopyo na hindi bababa sa x3 (para sa SMT paghihinang),
  • Molex connector crimping tool (para sa mga konektor ng JST),
  • SMD soldering Iron (na may likidong fluks pen at flux cored solder),
  • Mga Screwdriver (iba't ibang),
  • Mainit na baril,
  • Drills (iba't ibang),
  • Countersink handtool,
  • Mga file (iba't ibang),
  • Dremel (iba't ibang mga piraso),
  • Matibay na bisyo (maliit at malaki, tulad ng isang itim at decker na kasosyo sa trabaho),
  • Scalpel,
  • Vernier calipers (ginamit upang sukatin ang katha at kapaki-pakinabang para sa pag-laki ng mga bahagi ng PCB),
  • Mga Spanner at Nut driver (iba't ibang),
  • Malakas na sipit (para sa SMT paghihinang),
  • Junior Hacksaw,
  • Drill (na may iba't ibang mga drill bits),
  • Pinong pliers (point at snub nosed),
  • Mga pamutol ng flush,
  • Ang DMM na may naririnig na pagpapatuloy na tseke,
  • Dobleng saklaw ng digital na channel (madaling gamitin para sa mga signal ng pag-debug)

Anong mga kasanayan ang kailangan ko?

  • Maraming pasensya,
  • Ang isang mahusay na pakikitungo ng manu-manong kagalingan ng kamay at mahusay na koordinasyon ng kamay / mata,
  • Mahusay na kasanayan sa paghihinang,
  • Mahusay na kasanayan sa katha,
  • Ang kakayahang mailarawan sa 3 sukat,
  • Ang ilang kaalaman sa pagbuo ng software na may 'C' (kung nais mong maunawaan ang source code),
  • Ang ilang kaalaman sa Python (kung paano mag-install at magpatakbo ng mga script, kung nais mong gamitin ang awtomatikong pagsubok),
  • Kaalaman sa Arduino at ito ay IDE,
  • Magandang kaalaman sa electronics,
  • Ang ilang pag-unawa sa iyong network sa bahay.

Saklaw na Mga Paksa

  • Manwal ng Gumagamit
  • Pangkalahatang-ideya ng Circuit
  • Paggawa at pagpupulong ng PCB
  • Katha
  • Pangkalahatang-ideya ng System System
  • Pangkalahatang-ideya ng Software
  • Pagkakalibrate ng Sensor
  • MQTT Paksa ng Pagpapangalan ng Paksa
  • Paghahanap ng Debug at Fault
  • Pagsubok sa Disenyo
  • Konklusyon
  • Ginamit na Mga Sanggunian

Mga Link sa Serye Sa Bahagi 11: IoT Desktop Console. Bahagi: 11 IoT, Home Automation

Hakbang 1: Manwal ng Gumagamit

Manwal ng Gumagamit
Manwal ng Gumagamit
Manwal ng Gumagamit
Manwal ng Gumagamit
Manwal ng Gumagamit
Manwal ng Gumagamit

Ang larawan 1 sa itaas ay nagpapakita ng harap ng Retro Speech Synthesizer at larawan 2 sa likuran.

Enclosure Front

  1. Speaker Grill
  2. 3.5mm Earphone Jack: Ang pangunahing speaker ay hindi pinagana kapag 3.5mm jack ay ipinasok.
  3. Red LED: Ang LED na ito ay nag-iilaw habang ang isang salita ay sinasalita nang ang pananalita ay sinimulan sa pamamagitan ng isang kahilingan sa
  4. Blue LED: Ang LED na ito ay nag-iilaw habang ang isang salita ay sinasalita nang ang pagsasalita ay sinimulan sa pamamagitan ng isang kahilingan sa MQTT IoT.

Enclosure Rear

  1. I-reset ang Button: Ginamit upang mahirap i-reset ang aparatong ESP8266-07 IoT.
  2. Button ng Flash: Kapag ginamit kasabay ng I-reset ang Button ay pinapayagan ang muling pag-flashing ng ESP8266-07.
  3. WiFi Antenna plug (SMA Plug): Para sa panlabas na WiFi Antenna na nagbibigay ng hindi bababa sa pagpapalambing ng landas ng RF habang ang pagsara ay aluminyo.
  4. Panlabas na Port ng Programming: Upang alisin ang pangangailangan upang i-unscrew ang enclosure upang makakuha ng pag-access sa ESP8266-07 para sa mga layuning muling pag-program. Ang mga pin ng programa ng ESP8266-07 ay inilabas sa panlabas na port ng programa. Ang larawan 3 ay ang adapter sa programa.
  5. Green LED: Ito ang pinamunuan ng IoT system at ginagamit upang ipahiwatig ang katayuan ng diagnostic ng aparato at mag-boot up at habang tumatakbo.
  6. Panlabas na Temperatura / Sensor ng Humidity (AM2320)
  7. Slot ng SD Card: Hawak nito ang lahat ng data ng config / seguridad kasama ang mga pahina ng web server.
  8. 2.1mm Supply jack 6vdc

Hakbang 2: Pangkalahatang-ideya ng Circuit

Pangkalahatang-ideya ng Circuit
Pangkalahatang-ideya ng Circuit
Pangkalahatang-ideya ng Circuit
Pangkalahatang-ideya ng Circuit

Ang aparato ng Retro Speech Synth ay naglalaman ng dalawang PCB;

  • RetroSpeechSynthIoTBoard: Ito ay isang pangkaraniwan, magagamit muli ESP8266-07 / 12 / 12E / 13 PCB
  • RetroSpeechSynthBoard: Ito ay isang pangkaraniwang SP0256-AL2 PCB

Retro Speech Synth IoT Board

Pinapayagan ng board na ito para sa alinman sa direktang paghihinang ng isang ESP8266-07 / 12 / 12E / 13 o 0.1 pitch sockets na tumatanggap ng isang ESP8266 carrier PCB.

Ang board ay idinisenyo upang mapalawak ito ng I / O sa isang koneksyon sa I2C at maaaring suportahan ang alinman sa 3v3 o 5v na mga antas ng supply sa pamamagitan ng Q1, Q2, R8-13.

Ang koneksyon sa board ay nakamit sa pamamagitan ng isa sa dalawang mga header na J2 at J4, Isang 8-way DIL IDC ribbon o 5-way JST / Molex.

Ang probisyon ng U2 at U3 ay 3.3v at 5v sa regulasyon ng suplay ng board. Bilang kahalili kung kinakailangan ng mas malaking kasalukuyang kapasidad, ang mga board reguler ng shunt regulator ay maaaring mai-attach sa pamamagitan ng mga konektor na J10 at J11 ayon sa pagkakabanggit.

Nag-aalok ang mga konektor J1 at J3 ng panlabas na suporta sa SD card sa SPI. Ang J1 ay dinisenyo para sa isang 8-way Molex at ang J3 ay may direktang pin para sa suporta sa pagiging tugma ng pin para sa isang off the shelf SD card PCB na may alinman sa 3v3 o 5v na suporta.

Retro Speech Synth Board

Ang kontrol ng board na ito ay higit sa isang koneksyon na sumusunod sa I2C 5v sa pamamagitan ng J1, J5 o J6, isang 4-way JST / Molex, 8-way DIL IDC o 8-way IDC ribbon connector.

Nagbibigay ang U2 MPC23017 ng I2C sa parallel interface sa U3 ang SP0256-AL2 at LEDS D1 (Green), D2 (Red) at D3 (Blue). Ang output ng Speech Synth ay pinakain sa audio amp CR1 TBA820M sa pamamagitan ng alinman sa analogue pot RV1 o digital pot U1 MCP4561.

Ang Digital Pot U1 ay kinokontrol din sa pamamagitan ng 5v na sumusunod na I2C.

Tandaan: Ang aparato ng ESP8266-07 ay napili dahil mayroon itong isang mahalagang konektor ng IPX RF na nagpapahintulot sa isang panlabas na WiFi Antenna na maidagdag sa enclosure ng aluminyo.

Hakbang 3: Paggawa at pagpupulong ng PCB

Paggawa at pagpupulong ng PCB
Paggawa at pagpupulong ng PCB
Paggawa at pagpupulong ng PCB
Paggawa at pagpupulong ng PCB
Paggawa at pagpupulong ng PCB
Paggawa at pagpupulong ng PCB
Paggawa at pagpupulong ng PCB
Paggawa at pagpupulong ng PCB

Ang mga larawan 1 at 2 ay nagpapakita ng nakumpleto at may wired na mga sub-assemble ng PCB na matatagpuan sa substrate ng enclosure ng aluminyo.

Ang dalawang PCB ay idinisenyo gamit ang Kicad v4.0.7, na gawa ng JLCPCB at binuo sa akin at ipinakita sa itaas ng Mga Larawan 3 hanggang 13.

Hakbang 4: Pabrika

Katha
Katha
Katha
Katha
Katha
Katha

Ipinapakita ng Larawan 1 ang isang layout ng estilo ng Manu-manong Haynes ng lahat ng mga prefabricated na bahagi bago ang huling pagpupulong.

Ang Mga Larawan 2 … 5 ay nagpapakita ng iba't ibang mga pag-shot sa panahon ng paggawa ng enclosure na may kaunting mga clearance.

Hakbang 5: Pangkalahatang-ideya ng System System

Pangkalahatang-ideya ng System System
Pangkalahatang-ideya ng System System
Pangkalahatang-ideya ng System System
Pangkalahatang-ideya ng System System

Ang IoT Retro Speech Synthesis Device na ito ay naglalaman ng anim na pangunahing mga sangkap ng software tulad ng ipinakita sa larawan 1 sa itaas.

SD Card

Ito ang panlabas na SD SPI Flash Filing System at ginagamit upang hawakan ang sumusunod na impormasyon (tingnan ang larawan 2 sa itaas);

  • Mga Icon at index ng 'Pag-configure ng Home ng Synth Home' index.htm: Inihatid ng aparato ng IoT kapag hindi ito makakonekta sa iyong IoT WiFi network (karaniwang dahil sa maling impormasyon sa seguridad, o sa unang paggamit na ginamit) at nagbibigay ng paraan ang gumagamit sa malayuang pag-configure ng mga sensor nang hindi na kinakailangang muling mai-flash ang bagong nilalaman ng SD. Mayroon din itong index1.htm, mqtt.htm at sp0256.htm, ito ang mga lokal na hinatid na mga web page na naa-access sa isang web browser na pinapayagan ang limitadong kontrol ng synth ng pagsasalita sa paglipas ng
  • Impormasyon sa Seguridad: Hawak nito ang impormasyong ginamit sa kapangyarihan ng aparato ng IoT upang kumonekta sa iyong IoT WiFi network at MQTT Broker. Ang impormasyong isinumite sa pamamagitan ng 'Pahina ng Pagsasaayos ng Synth Synth' ay nakasulat sa file na ito ('secvals.txt').
  • Impormasyon sa Pagkakalibrate: Ang impormasyong nilalaman sa loob ng mga file ('calvals1.txt' at 'calvals2.txt') ay ginagamit upang i-calibrate ang on-board na temperatura / halumigmig na mga sensor kung kinakailangan na kinakailangan. Ang mga nagpapatuloy na pagkakalibrate ay maaaring isulat sa aparato ng IoT sa pamamagitan ng mga utos ng MQTT mula sa isang MQTT broker o sa pamamagitan ng muling pag-flashing ng SD card. Ang 'calvals1.txt' ay tumutukoy sa AM2320 sensor at 'calvals2.txt' sa DHT22.
  • Mga halaga ng system na maaaring mai-configure ng gumagamit: Ang impormasyon na nilalaman sa loob ng file na ito ('confvals.txt'), na pinili ng gumagamit, ay kumokontrol sa ilang mga tugon ng system, tulad ng paunang antas ng dami ng digital, anunsyo ng awtomatikong 'system' sa subscription ng broker ng MQTT atbp.

mDNS Server

Ang pagpapaandar na ito ay tinawag kapag ang IoT aparato ay nabigo upang kumonekta sa iyong WiFi network bilang isang istasyon ng WiFi at sa halip ay naging isang access point ng WiFi na bagay na katulad ng isang domestic WiFi router. Sa kaso ng tulad ng isang router ay karaniwang kumokonekta ka rito sa pamamagitan ng pagpasok ng IP Address ng isang bagay tulad ng 192.168.1.1 (karaniwang naka-print sa isang label na nakakabit sa kahon) nang direkta sa iyong browser URL bar kung saan makakatanggap ka ng isang pahina sa pag-login upang ipasok ang username at password upang payagan kang i-configure ang aparato. Para sa ESP8266-07 sa AP mode (Access Point mode) ang aparato ay nag-default sa IP address 192.168.4.1, subalit sa pagpapatakbo ng mDNS server kailangan mo lamang ipasok ang palakaibigan na pangalang 'SPEECHSVR.local' sa browser URL bar upang tingnan ang 'Home Page na Pag-configure ng Synth Synth'.

MQTT Client

Ang MQTT client ay nagbibigay ng lahat ng kinakailangang pagpapaandar sa; kumonekta sa iyong IoT network MQTT broker, mag-subscribe sa mga paksa na iyong pinili at mag-publish ng mga kargamento sa isang naibigay na paksa. Sa madaling salita naglalaan ito ng IoT pangunahing pag-andar.

HTTP Web Server

Ang web server na ito ay may dalawang layunin;

  1. Kung ang aparato ng IoT ay hindi makakonekta sa WiFi network na ang SSID, P / W atbp ay tinukoy sa file ng Impormasyon sa Seguridad na gaganapin sa SD Card ang aparato ay magiging isang Access Point. Sa sandaling nakakonekta sa WiFi network na ibinigay ng Access Point, ang pagkakaroon ng isang HTTP Web Server ay nagbibigay-daan sa iyo upang direktang kumonekta sa aparato at baguhin ang pagsasaayos nito sa pamamagitan ng paggamit ng isang HTTP Web Browser na nilalayon na maihatid ang 'Pagsasaayos ng Synth Synth Web page ng Home Page 'na gaganapin din sa SD Card.
  2. Kapag ang IoT Retro Speech Synthesis Device ay nakakonekta sa WiFi network at MQTT broker, kung na-access, ang HTTP Web Server ay awtomatikong maghatid ng isang web page na HTTP na nagpapahintulot sa limitadong kontrol ng IoT aparato na magsalita ng isang pagpipilian ng mga nakapirming parirala at ang kakayahang ikot ang dalawang harap na Red at Blue LEDS.

WiFi Station

Binibigyan ng pagpapaandar na ito ang aparato ng IoT ng kakayahang kumonekta sa isang domestic WiFi network gamit ang mga parameter sa file ng Impormasyon sa Seguridad, kung wala ito ang iyong IoT aparato ay hindi maaaring mag-subscribe / mai-publish sa MQTT Broker.

WiFi Access Point

Ang kakayahang maging isang WiFi Access Point ay isang paraan kung saan pinapayagan ka ng IoT aparato na kumonekta dito at gumawa ng mga pagbabago sa pagsasaayos sa pamamagitan ng isang istasyon ng WiFi at isang browser (tulad ng Safari sa Apple iPad). Ang access point na ito ay nag-broadcast ng isang SSID = "SPEECHSYN" + ang huling 6 na numero ng MAC address ng IoT device. Ang password para sa saradong network na ito ay mapanlikha na pinangalanang 'PASSWORD'

Hakbang 6: Pangkalahatang-ideya ng Software

Pangkalahatang-ideya ng Software
Pangkalahatang-ideya ng Software
Pangkalahatang-ideya ng Software
Pangkalahatang-ideya ng Software
Pangkalahatang-ideya ng Software
Pangkalahatang-ideya ng Software

Panimula

Upang matagumpay na maipon ang source code na ito kakailanganin mo ng isang lokal na kopya ng code at mga aklatan na nakabalangkas sa ibaba sa Hakbang 12, Ginamit na Mga Sanggunian. Kung hindi ka sigurado kung paano mag-install ng Arduino library pumunta dito.

Pangkalahatang-ideya

Ginagamit ng software ang state-machine tulad ng ipinakita sa larawan 1 sa itaas (buong kopya ng mapagkukunan sa aking GitHub repository dito). Mayroong 5 pangunahing estado na nakabalangkas sa ibaba;

  • SA LOOB

    Ang estado ng inisyal na ito ay ang unang estado na ipinasok pagkatapos ng lakas

  • NOCONFIG

    Ang estado na ito ay ipinasok kung pagkatapos mapalakas ang isang hindi wasto o nawawalang mga secvals.txt file ay nakita. Sa panahong ito makikita ang pahina ng Config

  • PENDING NW

    Ang estado na ito ay pansamantala, ipinasok habang walang umiiral na koneksyon sa WiFi network

  • PENDING MQTT

    Ang estado na ito ay pansamantala, ipinasok pagkatapos ng isang koneksyon sa WiFi network ay nagawa at habang walang koneksyon sa isang MQTT broker sa network na iyon

  • AKTIBO

    Ito ang normal na estado ng pagpapatakbo na ipinasok sa sandaling kapwa isang koneksyon sa WiFi network at isang koneksyon sa MQTT Broker ay naitatag. Sa panahong ito ay ang temperatura, index ng init at halumigmig sa IoT Retro Speech Synthesis Device ay regular na nai-publish sa MQTT Broker. Sa estadong ito ang pahina ng Speech Synth Home ay nakikita

Ang mga kaganapan sa pagkontrol sa mga pagbabago sa pagitan ng mga estado ay inilarawan sa larawan 1 sa itaas. Ang mga paglilipat sa pagitan ng mga estado ay pinamamahalaan din ng mga sumusunod na parameter ng SecVals;

  • 1st MQTT Broker IP Address. Sa may tuldok na decimal form na AAA. BBB. CCC. DDD
  • 2nd MQTT Broker Port. Sa Integer form.
  • Tangkaing gawin ng koneksyon sa ika-3 na MQTT Broker bago lumipat mula sa STA mode patungong AP mode. Sa Integer form.
  • 4th WiFi Network SSID. Sa libreng form na teksto.
  • Ika-5 WiFi Network Password. Sa libreng form na teksto.

Tulad ng nabanggit sa itaas kung ang aparato ng IoT ay hindi makakonekta bilang isang WiFi Station sa WiFi network kung sino ang SSID at P / W ay tinukoy sa mga secvals.txt na gaganapin sa SD Card ang IoT aparato ay magiging isang Access Point. Sa sandaling nakakonekta sa access point na ito, ihahatid nito ang 'Pahina ng Pag-configure ng Home ng Pagkumpirma' tulad ng ipinakita sa itaas sa Pic 2 (sa pamamagitan ng pagpasok ng alinman sa 'SPEECHSVR.local' o 192.168.4.1 sa iyong address bar ng mga browser). Pinapayagan ng home page na ito ang muling pag-configure ng IoT Retro Speech Synthesis Device sa pamamagitan ng isang HTTP browser.

Remote Access habang nasa aktibong estado

Sa sandaling nakakonekta sa MQTT Broker posible ring pareho i-calibrate at i-configure muli ang aparato sa pamamagitan ng mga publication ng paksa ng MQTT. Ang file calvals.txt ay may R / W access at secvals.txt ay sumulat lamang ng access na nakalantad.

Gayundin tulad ng nabanggit sa itaas, isang beses sa aktibong mode posible na i-access ang Speech Synth sa pamamagitan ng isang interface ng HTTP sa pamamagitan ng pagpasok ng 'SPEECHSVR.local' o 192.168.4.1 sa iyong address bar ng mga browser. Pinapayagan ng interface na batay sa HTTP na ito para sa pangunahing kontrol ng Speech Synth. Ipinapakita ng mga larawan 3, 4 at 5 ang mga web page na magagamit.

Pag-debug ng gumagamit

Sa panahon ng pagkakasunud-sunod ng boot, ang berdeng aparato ng IoT na humantong sa likuran ng enclosure ay nagbibigay ng sumusunod na feedback sa pag-debug;

  • 1 Maikling flash: Walang Config file na matatagpuan sa SD Card (secvals.txt)
  • 2 Maikling flashes: Sinusubukan ng IoT aparato na kumonekta sa WiFi network
  • Patuloy na pag-iilaw: Sinusubukan ng IoT na aparato na kumonekta sa MQTT Broker
  • Naka-off: Aktibo ang aparato.

Pag-andar ng Device ng IoT Retro Speech Synthesis Device sa ACTIVE State

Sa sandaling nasa ACTIVE na estado ang ESP8266 ay pumapasok sa isang tuluy-tuloy na loop na tumatawag sa mga sumusunod na pag-andar; timer_update (), checkTemperatureAndHumidity () at handleSpeech (). Ang net na resulta kung saan ay dinisenyo upang ipakita ang gumagamit ng isang HTTP o MQTT interface, walang putol na serbisyo na ito ay on-board na processor ng pagsasalita na may mga ponemang hinihiling at mai-publish ang mga lokal na halaga ng parametrikong nakapaligid sa paglipas ng MQTT.

Ang isang komprehensibong listahan ng lahat ng mga subscription sa paksa at publication kasama ang mga halagang payload ay kasama sa source code.

Hakbang 7: Pagkalibrate ng Sensor

Pagkakalibrate ng Sensor
Pagkakalibrate ng Sensor

Kapag nagpalakas ang aparato ng IoT, bilang bahagi ng pagkakasunud-sunod ng boot ng dalawang file na pinangalanang 'cavals1.txt' at 'cavals2.txt' ay nabasa mula sa SD Card.

Ang mga nilalaman ng mga file na ito ay pare-pareho ang pagkakalibrate tulad ng ipinahiwatig sa itaas sa larawan 1.

  1. 'cavals1.txt': Ginamit ng panlabas na AM2320
  2. 'cavals2.txt': Ginamit ng panloob na DHT22

Ang mga Constant na pagkakalibrate ay ginagamit upang ayusin ang mga pagbabasa na nakuha mula sa dalawang mga sensor upang dalhin sila sa linya kasama ang isang sanggunian na aparato. Mayroong isang karagdagang halaga na tumutukoy sa isang diskarte sa pag-uulat para sa bawat aparato at inilalarawan sa ibaba kasama ang pamamaraang sinusundan upang i-calibrate ang mga sensor.

Diskarte sa Pag-uulat

Tinutukoy ng parameter na ito kung paano iniuulat ng remote sensor ang anumang mga pagbabago sa lokal na parametric na lokal dito. Kung ang isang halaga ng 0 ay napili ang remote sensor ay maglalathala ng anumang pagbabago na nakikita nito sa temperatura o halumigmig sa tuwing nababasa ang kani-kanilang sensor (tinatayang bawat 10 segundo). Anumang iba pang halaga ay maaantala ang paglalathala ng isang pagbabago ng 1… 60 minuto. Pinapayagan ng pagbabago ng parameter na ito para sa pag-optimize ng trapiko sa network ng MQTT. Dapat pansinin na ang data ng temperatura at kahalumigmigan mula sa DHT22 ay binabasa na halili dahil sa mga limitasyon ng sensor.

Pag-calibrate ng temperatura

Upang mai-calibrate ang sensor ng temperatura Sinundan ko ang parehong proseso tulad ng nakabalangkas dito hakbang 4, muli gamit ang isang simpleng relasyon ng y = mx + c. Ginamit ko ang IoT Temperature, Humidity Sensor # 1 bilang sanggunian na aparato. Ang mga halaga mula sa sensor ay nasa degree celcius.

Pag-calibrate ng Humidity

Dahil wala akong anumang paraan upang tumpak na maitala o makontrol ang lokal na halumigmig sa paligid, upang i-calibrate ang sensor na ginamit ko ang isang katulad na diskarte sa itaas dito hakbang 4, muling ginagamit ang Sensor # 1 bilang sanggunian. Gayunpaman sinabi sa itaas, Natagpuan ko kamakailan ang isang mahusay na artikulo sa web na naglalarawan kung paano i-calibrate ang mga sensor ng kahalumigmigan. Maaari ko ring subukan ang pamamaraang ito minsan sa hinaharap. Ang mga halaga mula sa sensor ay nasa% edad ng kamag-anak halumigmig.

Hakbang 8: MQTT Paksa ng Pagpapangalan ng Paksa

MQTT Paksa ng Pagpapangalan ng Paksa
MQTT Paksa ng Pagpapangalan ng Paksa
MQTT Paksa ng Pagpapangalan ng Paksa
MQTT Paksa ng Pagpapangalan ng Paksa

Tulad ng nabanggit sa isang naunang Instructable (dito) naayos ko ang paksa sa pagbibigay ng pangalan sa kombensiyon na nakabalangkas sa larawan 1 sa itaas.

Lalo, 'AccessMethod / DeviceType / AlingDevice / Action / SubDevice' Hindi ito perpekto ngunit pinapayagan nitong mailapat ang mga kapaki-pakinabang na filter upang makita ang lahat ng mga output ng sensor para sa isang naibigay na paksang parametric kaya pinapayagan ang madaling paghahambing tulad ng sa larawan 2 sa itaas na may MQTTSpy.

Ang proyektong ito ay ang unang pagkakataon kung saan ang isang solong aparato ay naglalaman ng higit sa isang nagmumulang mapagkukunan ng parehong uri ng publication. ibig sabihin Dalawang sensor ng temperatura / kahalumigmigan, mula sa panloob at panlabas na mga sub-device.

Sinusuportahan din nito ang makatuwirang extensible lohikal na pagpapangkat ng pag-andar sa loob ng isang naibigay na IoT aparato.

Sa pagpapatupad ng mga paksang ito sa software Gumamit ako ng mga hard naka-code na mga string ng paksa na may nakapirming, naka-embed na mga identifier ng bilang para sa bawat aparato na taliwas sa pagbuo ng mga paksa sa napapanahong oras upang makatipid sa RAM at mapanatili ang mataas na pagganap.

Tandaan: Kung hindi ka sigurado kung paano gamitin ang MQTTSpy tingnan dito 'Pagse-set up ng isang MQTT Broker. Bahagi 2: IoT, Home Automation '

Hakbang 9: Paghahanap ng Debug at Fault

Paghahanap ng Debug at Fault
Paghahanap ng Debug at Fault

Sa pangkalahatan, para sa aking mga proyekto sa libangan, kung posible ay may posibilidad akong bumuo ng isang kinatawan ng prototype ng hardware laban sa kung saan binuo ang software bihira akong magkaroon ng anumang mga isyu kapag isinasama ang software sa pangwakas na hardware ng platform.

Gayunpaman, sa pagkakataong ito ay nakatagpo ako ng kakaibang paulit-ulit na kasalanan kung saan ang ilang mga ponema ay tunog ngunit ang iba ay hindi.

Matapos ang ilang paunang pag-debug ng Speech Synth PCB gamit ang isang Arduino Uno upang mapagkukunan ang mga ponema at patunayan na gumagana ang board na ito, kumuha ako ng saklaw sa mga linya ng I2C sa pagitan ng IoT PCB at ng Speech Synth PCB. Tingnan ang Pic 1 sa itaas.

Malinaw mong nakikita ang 'saw tooth' / exponential edge sa signal ng I2C sa mga bakas.

Kadalasan ito ay isang pahiwatig na ang I2C pull up na halaga ay masyadong mataas na pumipigil sa boltahe ng linya mula sa pagbawi ng sapat na mabilis sa isang bukas na circuit ng kanal.

Bilang isang 'trabaho sa paligid' ay inihambing ko ang dalawang smt hilahin ang resistors R12 at R13 na may 10Ks upang bigyan ang 4K7 at siguradong sapat na 'Sinabog ng Buhay Synth' sa buhay '

Ang ganitong uri ng kabiguan ay kabaligtaran sa maaaring mangyari kapag na-debug ang mga ganitong uri ng proyekto. Sa pangkalahatan ang karamihan sa mga modyul na batay sa I2C na binili mula sa Ebay ay may posibilidad na magkaroon ng 10K o 4K7 na mga pull up na nilagyan na. Kung balak mong gamitin ang> 5 mga module ng I2C, bawat isa ay may mga 4K7 pull up, kung gayon ang pangkalahatang pagkarga ay 940R na magiging napakahusay para sa yugto ng output ng master. Ang pag-aayos ay upang i-de-solder ang lahat ngunit isang hanay ng mga pull up resistors sa bawat module. Mas mabuti ang pisikal na pinakamalayo sa master.

Isang kapaki-pakinabang na tip at nagkakahalaga ng isinasaalang-alang kapag nagdidisenyo ng electronics sa mga aparato ng I2C.

Hakbang 10: Pagsubok sa Disenyo

Image
Image
Pagsubok sa Disenyo
Pagsubok sa Disenyo
Pagsubok sa Disenyo
Pagsubok sa Disenyo

Isinasagawa ang pagsubok gamit ang dalawang pamamaraan; Manu-manong at Awtomatiko.

Ang una, manu-manong, at karaniwang ginagamit sa panahon ng paunang pag-unlad ng code ay ang paggamit ng MQTT Spy upang magamit ang lahat ng mga magagamit na mga naka-subscribe na paksa at suriin ang nai-publish na mga tugon (nakalarawan sa larawan 2 sa itaas). Bilang isang manu-manong proseso na ito ay maaaring maging matagal at madaling kapitan ng pagkakamali sa pag-unlad ng code, bagaman ang manu-manong pagpapatupad ay nagbibigay-daan sa 100% na saklaw.

Napili ang MQTTSpy para sa manu-manong pagsusuri sapagkat ito ay isang mahusay na tool upang mai-format ang isang naibigay na kargamento at mai-publish ito sa anumang paksa nang madali. Nagpapakita rin ito ng isang malinaw, oras na nakatatak na log na kung saan ay napaka kapaki-pakinabang para sa pag-debug (larawan 3 sa itaas).

Ang pangalawa, awtomatikong diskarte ay pinagtibay habang ang source code ay naging mas kumplikado (> 3700 mga linya). Ang pagtaas ng pagiging kumplikado ay nangangahulugang mas mahaba ang mga siklo ng pagsubok sa manu-manong at mas kumplikadong mga pagsubok. Upang mapabuti ang pagiging maaasahan, determinismo at kalidad ng mga pagsubok, ginamit ang awtomatikong pagsubok sa pamamagitan ng isang ehekutibo sa pagsubok ng sawa (larawan 1). Tingnan ang Hakbang # 10 sa Tagubilin na ito sa kung paano ipinakilala ang awtomatikong pagsubok. Ang isang buong kopya ng mga awtomatikong pagsubok na ginamit sa Instructable na ito ay magagamit dito.

Ang isang video ng awtomatikong pagkakasunud-sunod ng pagsubok sa pagpapatakbo ay ipinapakita sa itaas. Ang pagkakasunud-sunod ay nagpapatupad ng mga sumusunod na hakbang;

  • Awtomatiko sa pamamagitan ng MQTT

    • Kumonekta sa MQTT backbone at ipahayag ang 'System Ready'
    • Exercise Green LED
    • Exercise Red LED
    • Mag-ehersisyo ng Blue LED
    • Suriing gumagana ang Digital Pot
    • Magsalita gamit ang mga Phonemes
    • Magsalita gamit ang Hex Codes para sa mga Phonemes
    • Magsalita gamit ang mga code para sa pag-aayos ng mga parirala
    • Kaunting saya ni Dr Who at ng Daleks.
  • Mano-manong sa pamamagitan ng HTTP / Chrome

    • Mag-ehersisyo ng Blue LED
    • Exercise Red LED
    • Sabihin ang mga nakapirming pariralang 'Steven Quinn', 'System Ready' at 'Hello World'
    • Magkaroon ng HTTP server, maghatid

      • Mga detalye sa Speech Synth Chip
      • Mga Detalye ng MQTT

Hakbang 11: Konklusyon

Konklusyon
Konklusyon

Kahit na ito ay tumagal ng maraming pagsisikap sa mga file at drills at iba pa lalo na para sa speaker grille, sa palagay ko ang kinalabasan ay kaaya-aya sa aesthetically at naka-pack sa isang magandang, maliit na enclosure. Maaari ko itong gawing mas maliit ngunit kakailanganin itong pumunta sa isang PCB at sadya kong sinira ito sa dalawa upang magamit ko ulit ang mga PCB sa susunod na petsa para sa iba pang mga proyekto. Kaya't ito ay isang masayang kompromiso.

Ang software ay gumagana nang maayos, ang aparato ng IoT ay nasa matatag na pagpapatakbo nang medyo matagal na ngayon nang walang anumang mga isyu.

Sinusubaybayan ko ang temperatura at halumigmig sa pamamagitan ng Grafana at paghahambing sa isang co-matatagpuan na aparato. Ang dalawang mga halaga sa paligid ay naging maayos na nag-uugnay, na nagpapahiwatig ng pagkakalibrate ay makatwiran (o hindi bababa sa magkatulad ang mga ito).

Huminto ako sa pagpapatupad ng utos ng salita ('WFD / SpeechTH / 1 / Word / Command') dahil naubusan ako ng oras at kailangang magpatuloy. Maaari kong bisitahin muli ito kung at kailan nag-set up ako ng isang MySQL database. Sa ngayon gumagamit ako ng InfluxDB.

Hakbang 12: Ginamit na Mga Sanggunian

Ang mga sumusunod na mapagkukunan ay ginamit upang pagsamahin ang Instructable na ito; Source code para sa IoT Retro Speech Synthesis Device (naglalaman ito ng isang kopya ng lahat)

https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2

PubSubClient.h

  • Ni: Nick O'Leary
  • Layunin: Pinapagana ang aparato upang mag-publish o mag-subscribe sa mga paksa ng MQTT sa isang ibinigay na Broker
  • Mula sa:

DHT.h

  • Ni: Adafruit
  • Layunin: Arduino library para sa DHT11DHT22, atbp Temp at Humidity Sensors
  • Mula sa:

Adafruit_AM2320.h / Adafruit_Sensor.h

  • Ni: Adafruit
  • Layunin: Arduino library para sa AM2320, atbp Temp at Humidity Sensor
  • Mula sa:

MCP4561_DIGI_POT.h

  • Ni: Steve Quinn
  • Layunin: Arduino Library para sa MCP4561 digital potentiometer
  • Mula sa:

Adafruit_MCP23017.h

  • Ni: Steve Quinn
  • Layunin: Arduino Library para sa MCP23017 I2C Port Expander. Ito ay isang tinidor ng Github mula sa Adafruit-MCP23017-Arduino-Library, ni Adafruit.
  • Mula sa:

Para sa kasiyahan

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

Paggawa ng PCB

https://jlcpcb.com/

Pag-install ng Karagdagang Arduino Library

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

Paano Suriin at I-calibrate ang isang Sensor ng Humidity

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&mm51&e1w51&e51&e1w51&e1w51&e03&e1w57&e1w51&e1w51&e1w51&e1w51&e1w51&e3w51&e1&51&e1w5&&e1w5&&e1w5&&e1w5&&e1w5&&e1w5&&e1w5&&m&&&&&&&&=0&&m&&m&&m=0&&m&&m&&==e&m&&m=501&ml&m&&m&&m=14&hl=tl&hl=tl&hl=tl /

SP0256-AL2 Datasheet

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

Shop ng Mga Chip sa Pagsasalita

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

Arduino Contest 2019
Arduino Contest 2019
Arduino Contest 2019
Arduino Contest 2019

Runner Up sa Arduino Contest 2019

Inirerekumendang: