Სარჩევი:

რეტრო მეტყველების სინთეზი. ნაწილი: 12 IoT, სახლის ავტომატიზაცია: 12 ნაბიჯი (სურათებით)
რეტრო მეტყველების სინთეზი. ნაწილი: 12 IoT, სახლის ავტომატიზაცია: 12 ნაბიჯი (სურათებით)

ვიდეო: რეტრო მეტყველების სინთეზი. ნაწილი: 12 IoT, სახლის ავტომატიზაცია: 12 ნაბიჯი (სურათებით)

ვიდეო: რეტრო მეტყველების სინთეზი. ნაწილი: 12 IoT, სახლის ავტომატიზაცია: 12 ნაბიჯი (სურათებით)
ვიდეო: Fun with Music and Programming by Connor Harris and Stephen Krewson 2024, ივლისი
Anonim
Image
Image
რეტრო მეტყველების სინთეზი. ნაწილი: 12 IoT, სახლის ავტომატიზაცია
რეტრო მეტყველების სინთეზი. ნაწილი: 12 IoT, სახლის ავტომატიზაცია

ეს სტატია მე –12 სერიაა სახლის ავტომატიზაციის ინსტრუქციებზე, რომელიც ასახავს თუ როგორ უნდა შექმნათ და ინტეგრირდეთ IoT რეტრო მეტყველების სინთეზის მოწყობილობა არსებულ სახლის ავტომატიზაციის სისტემაში, ყველა საჭირო პროგრამული უზრუნველყოფის ჩათვლით, რაც შესაძლებელს გახდის წარმატებული განლაგებას საშინაო გარემოში.

სურათი 1 გვიჩვენებს დასრულებული IoT მეტყველების სინთეზურ მოწყობილობას, ხოლო სურათი 2 გვიჩვენებს პროტოტიპში გამოყენებულ ყველა იმ კომპონენტის ნაწილს, რომლებიც შემცირდა ფორმით საბოლოო პროდუქტში გადასასვლელად.

ვიდეო გვიჩვენებს მოწყობილობას მოქმედებაში (ტესტირების დროს).

შესავალი

როგორც ზემოთ აღვნიშნეთ, ეს ინსტრუქცია დეტალურად აღწერს როგორ გავაკეთოთ IoT რეტრო მეტყველების სინთეზის მოწყობილობა და ემყარება ზოგადი ინსტრუმენტების SP0256-AL2- ს.

მისი უპირველესი მიზანია IoT ქსელში "ძველი სკოლის" ხმის სინთეზის დამატება. რატომ შეიძლება გკითხოთ "ძველი სკოლა"? კარგად, რადგან მე ვიყავი 80-იან წლებში, როდესაც ეს ნივთები პირველად იქნა წარმოებული და მე დავუკავშირდი ერთს ჩემს BBC Micro– ს, ასე რომ ჩემთვის არის გარკვეული ხარისხის ნოსტალგია SP0256-AL2– ის გარშემო.

მე უფრო მირჩევნია გამოწვევა, გავარკვიო რას ამბობს დედამიწაზე ამ დალეკის ხმით, ვიდრე ჰიპსტერის ამაზონის ექოს ან სირიის დრამატული ტონების მოსმენა. სად არის გამოწვევა იმაში, რასაც მე გეკითხები?

ოჰ, და რომ აღარაფერი ვთქვათ, მე ასევე მაქვს "SP0256-AL2" IC- ების "ჩანთა დატვირთვა".

მოწყობილობას ასევე შეუძლია წაიკითხოს ადგილობრივი ტემპერატურა და ტენიანობა, რაც კიდევ უფრო აფართოებს ჩემი არსებული IoT ინფრასტრუქტურის გარე ინსტრუმენტებს MQTT/OpenHAB დაფუძნებულ IoT ქსელში, რომელიც დეტალურად არის აღწერილი ამ სერიაში სახლის ავტომატიზაციისთვის (HA), რომელიც ეფუძნება ხელახლა გამოყენებულ კოდს აქედან.

მის გულში არის ESP8266-07, რომელიც პასუხისმგებელია MQTT კომუნიკაციებზე და ყველა სისტემის ფუნქციონირების კონტროლზე (SD ბარათის წვდომა, led კონტროლი, ტემპერატურის/ტენიანობის შეგრძნება, მოცულობის კონტროლი, მეტყველების სინთეზი). მოწყობილობა სრულად არის კონფიგურირებადი ტექსტური ფაილების საშუალებით ადგილობრივი SD ბარათი, თუმცა დაკალიბრებისა და ქსელის უსაფრთხოების პარამეტრების დაპროგრამება შესაძლებელია დისტანციური MQTT პუბლიკაციების საშუალებითაც.

რა ნაწილები მჭირდება?

მასალების კანონპროექტი იხილეთ აქ

რა პროგრამული უზრუნველყოფა მჭირდება?

  • Arduino IDE 1.6.9,
  • Arduino IDE კონფიგურირებულია ESP8266-07 პროგრამირებისთვის (იგივე). შემდეგ დააკონფიგურირეთ IDE, როგორც ეს მითითებულია პროგრამული უზრუნველყოფის ესკიზში მოცემულ დეტალურ აღწერილობაში,
  • Python v3.5.2 თუ გსურთ გამოიყენოთ ავტომატური ტესტირების შესაძლებლობა, დეტალები აქ

რა ინსტრუმენტები მჭირდება?

  • მიკროსკოპი მინიმუმ x3 (SMT შედუღებისთვის),
  • Molex კონექტორის დასაკეცი ინსტრუმენტი (JST კონექტორებისთვის),
  • SMD soldering რკინა (თხევადი ნაკადის კალმით და ნაკადის ბირთვით შედუღებით),
  • ხრახნები (სხვადასხვა),
  • სითბოს იარაღი,
  • წვრთნები (სხვადასხვა),
  • Countersink ხელსაწყო,
  • ფაილები (სხვადასხვა),
  • დრემელი (სხვადასხვა ბიტი),
  • ძლიერი ვიცე (პატარა და დიდი, როგორც შავკანიანი და დამცავი სამუშაო პარტნიორი),
  • სკალპელი,
  • ვერნიეს კალიბრები (გამოიყენება ფაბრიკაციის გასაზომად და სასარგებლოა PCB კომპონენტების ზომის შესაფასებლად),
  • Spanners და Nut მძღოლები (სხვადასხვა),
  • ძლიერი პინცეტი (SMT შედუღებისთვის),
  • უმცროსი Hacksaw,
  • საბურღი (სხვადასხვა საბურღი ნაჭრებით),
  • სახიფათო pliers (წერტილი და snub ცხვირი),
  • გამრეცხი საჭრელი,
  • DMM ხმოვანი უწყვეტობის შემოწმებით,
  • ორმაგი არხის ციფრული ფარგლები (მოსახერხებელია სიგნალების გამართვისთვის)

რა უნარები მჭირდება?

  • დიდი მოთმინება,
  • ხელით დიდი მოხერხებულობა და ხელის/თვალის შესანიშნავი კოორდინაცია,
  • შედუღების შესანიშნავი უნარი,
  • წარმოების შესანიშნავი უნარი,
  • 3 განზომილებაში ვიზუალიზაციის უნარი,
  • 'C' პროგრამული უზრუნველყოფის შემუშავების გარკვეული ცოდნა (თუ გსურთ გაიგოთ წყაროს კოდი),
  • პითონის გარკვეული ცოდნა (თუ როგორ უნდა დააყენოთ და გაუშვათ სკრიპტები, თუ გსურთ გამოიყენოთ ავტომატური ტესტირება),
  • არდუინოს ცოდნა და მისი IDE,
  • ელექტრონიკის კარგი ცოდნა,
  • თქვენი სახლის ქსელის გარკვეული გაგება.

დაფარული თემები

  • Ინსტრუქცია
  • მიკროსქემის მიმოხილვა
  • PCB წარმოება და შეკრება
  • ფაბრიკაცია
  • პროგრამული სისტემის მიმოხილვა
  • პროგრამული უზრუნველყოფის მიმოხილვა
  • სენსორის კალიბრაცია
  • MQTT თემის სახელის კონვენცია
  • გამართვა და ხარვეზის პოვნა
  • დიზაინის ტესტირება
  • დასკვნა
  • გამოყენებული წყაროები

სერიის ბმულები ნაწილი 11: IoT დესკტოპის კონსოლი. ნაწილი: 11 IoT, სახლის ავტომატიზაცია

ნაბიჯი 1: მომხმარებლის სახელმძღვანელო

Ინსტრუქცია
Ინსტრუქცია
Ინსტრუქცია
Ინსტრუქცია
Ინსტრუქცია
Ინსტრუქცია

სურათი 1 გვიჩვენებს Retro Speech Synthesizer- ის წინა ნაწილს და სურათი 2 უკანა მხარეს.

დანართი წინა

  1. სპიკერი გრილი
  2. 3.5 მმ ყურსასმენის ჯეკი: მთავარი დინამიკი გამორთულია 3.5 მმ ჯეკის ჩასმისას.
  3. წითელი LED: ეს LED ანათებს მაშინ, როდესაც სიტყვა მეტყველებს, როდესაც მეტყველება იწყება HTTP მოთხოვნის საშუალებით.
  4. ცისფერი LED: ეს LED ანათებს მაშინ, როდესაც სიტყვა მეტყველებს MQTT IoT მოთხოვნის მეშვეობით მეტყველების დაწყების დროს.

დანართი უკანა

  1. გადატვირთვის ღილაკი: გამოიყენება ESP8266-07 IoT მოწყობილობის მყარი გადატვირთვისთვის.
  2. Flash ღილაკი: როდესაც გამოიყენება გადატვირთვის ღილაკთან ერთად, იძლევა ESP8266-07- ის ხელახლა ციმციმებას.
  3. WiFi ანტენის დანამატი (SMA დანამატი): გარე WiFi ანტენისთვის, რომელიც იძლევა ყველაზე ნაკლებად RF ბილიკს, რადგან დახურვა ალუმინისაა.
  4. გარე პროგრამირების პორტი: ამოიღონ საჭიროება გარუჯვისათვის, რათა მიიღონ წვდომა ESP8266-07 ხელახალი პროგრამირების მიზნით. ESP8266-07 პროგრამირების ქინძისთავები გადმოტანილია გარე პროგრამირების პორტში. სურათი 3 არის პროგრამირების ადაპტერი.
  5. მწვანე LED: ეს არის IoT სისტემის ხელმძღვანელობა და გამოიყენება მოწყობილობის დიაგნოსტიკური სტატუსის მითითებისთვის და ჩატვირთვისას და მუშაობის დროს.
  6. გარე ტემპერატურის/ტენიანობის სენსორი (AM2320)
  7. SD ბარათის სლოტი: ეს ინახავს ყველა კონფიგურაციის/უსაფრთხოების მონაცემებს ვებ სერვერის გვერდებთან ერთად.
  8. 2.1 მმ -იანი მიწოდება 6vdc

ნაბიჯი 2: მიკროსქემის მიმოხილვა

მიკროსქემის მიმოხილვა
მიკროსქემის მიმოხილვა
მიკროსქემის მიმოხილვა
მიკროსქემის მიმოხილვა

Retro Speech Synth მოწყობილობა მოიცავს ორ PCB- ს;

  • RetroSpeechSynthIoTBoard: ეს არის ზოგადი, ხელახლა გამოსაყენებელი ESP8266-07/12/12E/13 PCB
  • RetroSpeechSynthBoard: ეს არის ზოგადი SP0256-AL2 PCB

Retro Speech Synth IoT დაფა

ეს დაფა საშუალებას გაძლევთ პირდაპირ შედუღოთ ESP8266-07/12/12E/13 ან 0.1 ბუდე სოკეტი, რომელიც შეიცავს ESP8266 გადამზიდავი PCB- ს.

დაფა შექმნილია I/O I2C კავშირის საშუალებით მისი I/O გაფართოების მიზნით და შეუძლია 3v3 ან 5v დონის მიწოდება Q1, Q2, R8-13 საშუალებით.

დაფასთან კავშირი მიიღება ორი სათაურიდან J2 და J4, 8-გზის DIL IDC ლენტით ან 5-გზის JST/Molex- ით.

U2 და U3 უზრუნველყოფა 3.3v და 5v ბორტზე მიწოდების რეგულირებაზე. ალტერნატიულად, თუ საჭიროა უფრო დიდი მიმდინარე სიმძლავრე, სერიული შუნტის მარეგულირებლები შეიძლება დამაგრდეს შესაბამისად J10 და J11 კონექტორებით.

კონექტორები J1 და J3 გთავაზობთ გარე SD ბარათის მხარდაჭერას SPI– ით. J1 განკუთვნილია 8-გზა Molex და J3 აქვს პირდაპირი pin ამისთვის pin თავსებადობა მხარდაჭერა off თაროზე SD ბარათი PCB ან 3v3 ან 5v მხარდაჭერა.

Retro Speech Synth დაფა

ამ დაფის კონტროლი არის I2C 5v თავსებადი კავშირის საშუალებით J1, J5 ან J6, 4 გზა JST/Molex, 8 გზა DIL IDC ან 8 გზა IDC ლენტი კონექტორით.

U2 MPC23017 უზრუნველყოფს I2C– ს პარალელურ ინტერფეისს U3– სთან SP0256-AL2 და LEDS D1 (მწვანე), D2 (წითელი) და D3 (ლურჯი). Speech Synth– ის გამომუშავება იკვებება აუდიო გამაძლიერებლით CR1 TBA820M ან ანალოგური ქოთნის RV1 ან ციფრული ქოთნის U1 MCP4561 საშუალებით.

ციფრული ქოთანი U1 ასევე კონტროლდება 5v- ით თავსებადი I2C საშუალებით.

შენიშვნა: ESP8266-07 მოწყობილობა შეირჩა, რადგან მას აქვს ინტეგრალური IPX RF კონექტორი, რომელიც საშუალებას აძლევს გარე WiFi ანტენის დამატებას ალუმინის შიგთავსში.

ნაბიჯი 3: PCB წარმოება და შეკრება

PCB წარმოება და შეკრება
PCB წარმოება და შეკრება
PCB წარმოება და შეკრება
PCB წარმოება და შეკრება
PCB წარმოება და შეკრება
PCB წარმოება და შეკრება
PCB წარმოება და შეკრება
PCB წარმოება და შეკრება

სურათები 1 და 2 გვიჩვენებს დასრულებული და სადენიანი PCB ქვეჯგუფებს, რომლებიც მდებარეობს ალუმინის შიგთავსის სუბსტრატზე.

ორი PCB დაპროექტებულია Kicad v4.0.7 გამოყენებით, დამზადებულია JLCPCB– ს მიერ და აწყობილია ჩემ მიერ და ნაჩვენებია ზემოთ სურათები 3 – დან 13 – მდე.

ნაბიჯი 4: დამზადება

ფაბრიკაცია
ფაბრიკაცია
ფაბრიკაცია
ფაბრიკაცია
ფაბრიკაცია
ფაბრიკაცია

სურათი 1 გვიჩვენებს ყველა წინასწარ ასაწყობი ნაწილის ჰეინესის ხელით სტილის განლაგებას საბოლოო შეკრებამდე.

სურათები 2… 5 აჩვენებს სხვადასხვა კადრებს შიგთავსის დამზადების დროს მინიმალური დაშორებით.

ნაბიჯი 5: პროგრამული სისტემის მიმოხილვა

პროგრამული სისტემის მიმოხილვა
პროგრამული სისტემის მიმოხილვა
პროგრამული სისტემის მიმოხილვა
პროგრამული სისტემის მიმოხილვა

ეს IoT რეტრო მეტყველების სინთეზის მოწყობილობა შეიცავს პროგრამის ექვს ძირითად კომპონენტს, როგორც ეს ნაჩვენებია სურათზე 1 ზემოთ.

SD ბარათი

ეს არის გარე SD SPI Flash შევსების სისტემა და გამოიყენება შემდეგი ინფორმაციის შესანახად (იხ. სურათი 2 ზემოთ);

  • ხატები და 'Speech Synth Configuration Home Page' index.htm: ემსახურება IoT მოწყობილობას, როდესაც მას არ შეუძლია დაუკავშირდეს თქვენს IoT WiFi ქსელს (ჩვეულებრივ უსაფრთხოების არასწორი ინფორმაციის გამო, ან პირველად გამოყენებისას) და აძლევს მომხმარებელს საშუალებებს სენსორების დისტანციური კონფიგურაციის გარეშე ახალი SD შინაარსის ხელახლა განათების გარეშე. იგი ასევე შეიცავს index1.htm, mqtt.htm და sp0256.htm, ეს არის ადგილობრივად მოწოდებული ვებ გვერდები, რომლებიც ხელმისაწვდომია ბრაუზერის საშუალებით, რაც შეზღუდულია მეტყველების სინთეზის კონტროლის შეზღუდვით. HTTP– ზე მეტი.
  • უსაფრთხოების ინფორმაცია: ეს შეიცავს ინფორმაციას, რომელიც გამოიყენება IoT მოწყობილობის ჩართვისას თქვენს IoT WiFi ქსელთან და MQTT ბროკერთან დასაკავშირებლად. 'Speech Synth Configuration Home Page' მეშვეობით წარმოდგენილი ინფორმაცია იწერება ამ ფაილზე ('secvals.txt').
  • ინფორმაცია კალიბრაციის შესახებ: ფაილებში შემავალი ინფორმაცია ('calvals1.txt' და 'calvals2.txt') გამოიყენება ბორტზე ტემპერატურის/ტენიანობის სენსორების დასადგენად, საჭიროების შემთხვევაში. კალიბრაციის მუდმივები შეიძლება ჩაწეროს IoT მოწყობილობაზე MQTT ბრძანებების მეშვეობით MQTT ბროკერისგან ან SD ბარათის ხელახლა ციმციმით. 'calvals1.txt' ეხება AM2320 სენსორს და 'calvals2.txt' DHT22- ს.
  • მომხმარებლის მიერ კონფიგურირებადი სისტემის ღირებულებები: მომხმარებლის მიერ არჩეული ინფორმაცია ამ ფაილში ('confvals.txt') აკონტროლებს სისტემის გარკვეულ პასუხებს, როგორიცაა ციფრული მოცულობის საწყისი დონე, ავტომატური "სისტემის მზა" განცხადება MQTT ბროკერის გამოწერაზე და ა.

mDNS სერვერი

ეს ფუნქცია გამოიყენება მაშინ, როდესაც IoT მოწყობილობა ვერ უკავშირდება თქვენს WiFi ქსელს, როგორც WiFi სადგურს და სამაგიეროდ ხდება WiFi წვდომის წერტილი, რომელიც შინაგანი WiFi როუტერის მსგავსია. ასეთი როუტერის შემთხვევაში თქვენ ჩვეულებრივ დაუკავშირდებით მას 192.168.1.1 – ის IP მისამართის (ჩვეულებრივ დაბეჭდილი ყუთზე განთავსებულ ეტიკეტზე) პირდაპირ თქვენს ბრაუზერის URL ზოლში, რის შემდეგაც თქვენ მიიღებთ შესვლის გვერდს შესასვლელად მომხმარებლის სახელი და პაროლი, რომელიც საშუალებას მოგცემთ დააკონფიგურიროთ მოწყობილობა. ESP8266-07 AP რეჟიმში (წვდომის წერტილის რეჟიმი) მოწყობილობა ნაგულისხმევია IP მისამართს 192.168.4.1, თუმცა mDNS სერვერთან ერთად თქვენ მხოლოდ ბრაუზერის URL ზოლში უნდა შეიყვანოთ ადამიანის მეგობრული სახელი 'SPEECHSVR.local' იხილეთ "Speech Synth Configuration Home Page".

MQTT კლიენტი

MQTT კლიენტი უზრუნველყოფს ყველა საჭირო ფუნქციონირებას; დაუკავშირდით თქვენს IoT ქსელის MQTT ბროკერს, გამოიწერეთ თქვენთვის სასურველი თემები და გამოაქვეყნეთ დატვირთვები მოცემულ თემაზე. მოკლედ ის ასახავს IoT– ს ძირითად ფუნქციონირებას.

HTTP ვებ სერვერი

ამ ვებ სერვერს აქვს ორი მიზანი;

  1. თუ IoT მოწყობილობა ვერ დაუკავშირდება WiFi ქსელს, რომლის SSID, P/W და ა.შ. განსაზღვრულია SD ბარათზე დაცული უსაფრთხოების ინფორმაციის ფაილში, მოწყობილობა გახდება წვდომის წერტილი. მას შემდეგ რაც დაუკავშირდებით წვდომის წერტილით გათვალისწინებულ WiFi ქსელს, HTTP ვებ სერვერის არსებობა საშუალებას გაძლევთ უშუალოდ დაუკავშირდეთ მოწყობილობას და შეცვალოთ მისი კონფიგურაცია HTTP ვებ ბრაუზერის გამოყენებით. საწყისი გვერდის ვებ გვერდი, რომელიც ასევე არის SD ბარათზე.
  2. მას შემდეგ რაც IoT რეტრო მეტყველების სინთეზის მოწყობილობა შეუერთდება WiFi ქსელს და MQTT ბროკერს, თუ წვდომა გაქვთ, HTTP ვებ სერვერი ავტომატურად მოემსახურება HTTP ვებ გვერდს, რაც IoT მოწყობილობის შეზღუდულ კონტროლს საშუალებას მისცემს ისაუბროს ფიქსირებული ფრაზების შერჩევაზე და უნარზე ციკლის ორი წინა წითელი და ლურჯი LEDS.

WiFi სადგური

ეს ფუნქციონირება IoT მოწყობილობას აძლევს შესაძლებლობას დაუკავშირდეს შიდა WiFi ქსელს უსაფრთხოების ინფორმაციის ფაილის პარამეტრების გამოყენებით, ამის გარეშე თქვენი IoT მოწყობილობა ვერ შეძლებს MQTT ბროკერის გამოწერას/გამოქვეყნებას.

WiFi წვდომის წერტილი

შესაძლებლობა გახდეთ WiFi წვდომის წერტილი არის საშუალება, რომლითაც IoT მოწყობილობა საშუალებას გაძლევთ დაუკავშირდეთ მას და გააკეთოთ კონფიგურაციის ცვლილებები WiFi სადგურისა და ბრაუზერის საშუალებით (როგორიცაა Safari Apple iPad– ზე). ეს წვდომის წერტილი ავრცელებს SSID = "SPEECHSYN" + IoT მოწყობილობის MAC მისამართის ბოლო 6 ციფრს. ამ დახურული ქსელის პაროლს წარმოსახვით ჰქვია 'PASSWORD'

ნაბიჯი 6: პროგრამული უზრუნველყოფის მიმოხილვა

პროგრამული უზრუნველყოფის მიმოხილვა
პროგრამული უზრუნველყოფის მიმოხილვა
პროგრამული უზრუნველყოფის მიმოხილვა
პროგრამული უზრუნველყოფის მიმოხილვა
პროგრამული უზრუნველყოფის მიმოხილვა
პროგრამული უზრუნველყოფის მიმოხილვა

პრეამბულა

ამ კოდის წარმატებით შესადგენად დაგჭირდებათ კოდისა და ბიბლიოთეკების ადგილობრივი ასლი ქვემოთ მოყვანილი ნაბიჯი 12, გამოყენებული წყაროები. თუ არ ხართ დარწმუნებული როგორ დააინსტალიროთ Arduino ბიბლიოთეკა, გადადით აქ.

მიმოხილვა

პროგრამული უზრუნველყოფა იყენებს სახელმწიფო მანქანას, როგორც ეს ნაჩვენებია სურათზე 1 ზემოთ (წყაროს სრული ასლი ჩემს GitHub საცავში აქ). არსებობს 5 ძირითადი მდგომარეობა, როგორც ქვემოთ არის ასახული;

  • ᲛᲐᲡᲨᲘ

    ეს ინიციალიზაციის მდგომარეობა არის პირველი მდგომარეობა, რომელიც ძალაუფლების ჩართვის შემდეგ შევიდა

  • არაკონფიგურაცია

    ეს მდგომარეობა შევა, თუ ამოქმედდება არასწორი ან დაკარგული secvals.txt ფაილი. ამ მდგომარეობის დროს კონფიგურაციის გვერდი ჩანს

  • ელოდება NW

    ეს მდგომარეობა არის გარდამავალი, შესულია მაშინ, როდესაც არ არსებობს WiFi ქსელის კავშირი

  • მომლოდინე MQTT

    ეს მდგომარეობა არის გარდამავალი, შედის WiFi ქსელის კავშირის დამყარების შემდეგ და სანამ არ არსებობს კავშირი ამ ქსელში MQTT ბროკერთან

  • აქტიური

    ეს არის ნორმალური ოპერაციული მდგომარეობა, როდესაც შეიქმნა როგორც WiFi ქსელის კავშირი, ასევე MQTT საბროკერო კავშირი. ამ მდგომარეობის დროს ტემპერატურა, სითბოს ინდექსი და ტენიანობა IoT რეტრო მეტყველების სინთეზის მოწყობილობაზე რეგულარულად ქვეყნდება MQTT ბროკერზე. ამ მდგომარეობაში მეტყველების სინთის საწყისი გვერდი ჩანს

მოვლენები, რომლებიც აკონტროლებენ გადასვლას სახელმწიფოებს შორის, აღწერილია ზემოთ 1 სურათზე. სახელმწიფოებს შორის გადასვლა ასევე რეგულირდება შემდეგი SecVals პარამეტრებით;

  • პირველი MQTT ბროკერის IP მისამართი. წერტილოვანი ათობითი ფორმით AAA. BBB. CCC. DDD
  • მე -2 MQTT საბროკერო პორტი. მთელი რიცხვის ფორმით.
  • მე –3 MQTT საბროკერო კავშირი ცდილობს განახორციელოს STA რეჟიმიდან AP რეჟიმში. მთელი რიცხვის ფორმით.
  • მეოთხე WiFi ქსელი SSID. ტექსტი თავისუფალი ფორმით.
  • მე -5 WiFi ქსელის პაროლი. ტექსტი თავისუფალი ფორმით.

როგორც ზემოთ აღვნიშნეთ, თუ IoT მოწყობილობა ვერ დაუკავშირდება როგორც WiFi სადგური WiFi ქსელს, რომლის SSID და P/W განისაზღვრება secvals.txt SD ბარათზე დაცული IoT მოწყობილობა გახდება წვდომის წერტილი. ამ წვდომის წერტილთან დაკავშირების შემდეგ ის გამოჩნდება "Speech Synth Configuration Home Page", როგორც ეს ნაჩვენებია ზემოთ სურათ 2 -ში (ბრაუზერის URL მისამართის ზოლში ან "SPEECHSVR.local" ან 192.168.4.1). ეს საწყისი გვერდი საშუალებას იძლევა IoT რეტრო მეტყველების სინთეზის მოწყობილობის ხელახალი კონფიგურაცია HTTP ბრაუზერის საშუალებით.

დისტანციური წვდომა აქტიური მდგომარეობაში

MQTT ბროკერთან დაკავშირების შემდეგ ასევე შესაძლებელია მოწყობილობის ხელახალი დაკალიბრება და კონფიგურაცია MQTT თემის პუბლიკაციების საშუალებით. ფაილს calvals.txt აქვს R/W წვდომა და secvals.txt აქვს მხოლოდ ჩაწერის წვდომა.

ასევე, როგორც ზემოთ აღვნიშნეთ, ერთხელ აქტიურ რეჟიმში შესაძლებელი იქნება Speech Synth– ზე წვდომა HTTP ინტერფეისის საშუალებით თქვენი ბრაუზერის URL მისამართის ზოლში „SPEECHSVR.local“ან 192.168.4.1. ეს 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 მოწყობილობა გააქტიურდება, ჩატვირთვის თანმიმდევრობით ორი ფაილი სახელწოდებით 'cavals1.txt' და 'cavals2.txt' იკითხება SD ბარათიდან.

ამ ფაილების შინაარსი არის კალიბრაციის მუდმივები, როგორც ზემოთ მოცემულია სურათზე 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" ეს არ არის სრულყოფილი, მაგრამ ის საშუალებას იძლევა გამოყენებულ იქნას სასარგებლო ფილტრები მოცემული პარამეტრული თემის ყველა სენსორის გამოსავლის სანახავად, რაც საშუალებას იძლევა ადვილად შევადაროთ როგორც ზემოთ სურათზე 2 MQTTSpy.

ეს პროექტი არის პირველი შემთხვევა, როდესაც ერთი მოწყობილობა შეიცავს ერთი და იმავე ტიპის პუბლიკაციის ერთზე მეტ საწყის წყაროს. ანუ ორი ტემპერატურის/ტენიანობის სენსორი, შიდა და გარე ქვე მოწყობილობებიდან.

იგი ასევე მხარს უჭერს გონივრულად გაფართოებულ ფუნქციონალურ ლოგიკურ დაჯგუფებებს მოცემულ IoT მოწყობილობაში.

ამ თემების პროგრამული უზრუნველყოფის განსახორციელებლად გამოვიყენე მყარი კოდირებული თემის სტრიქონები ფიქსირებული, ჩამონტაჟებული რიცხვითი იდენტიფიკატორებით თითოეული მოწყობილობისთვის, განსხვავებით დინამიური გენერირებისა თემების გაშვებისას, რათა დაზოგო ოპერატიული მეხსიერება და შეინარჩუნო შესრულება მაღალი.

შენიშვნა: თუ არ ხართ დარწმუნებული როგორ გამოიყენოთ MQTTSpy იხილეთ აქ 'MQTT ბროკერის დაყენება. ნაწილი 2: IoT, სახლის ავტომატიზაცია '

ნაბიჯი 9: გამართვისა და ხარვეზის პოვნა

გამართვა და ხარვეზის პოვნა
გამართვა და ხარვეზის პოვნა

ზოგადად, ჩემი ჰობის პროექტებისთვის, სადაც შესაძლებელია, ვამზადებ აპარატურის წარმომადგენლობით პროტოტიპს, რომლის წინააღმდეგაც პროგრამული უზრუნველყოფა არის შემუშავებული.

თუმცა, ამ შემთხვევას წავაწყდი უცნაურ წყვეტილ ხარვეზს, რომლის მიხედვითაც ზოგიერთი ფონემა გაისმის, მაგრამ ზოგი არა.

მას შემდეგ, რაც Arduino Uno– მ გამოიყენა Speech Synth PCB– ის Arbeino Uno– ს საწყისი დებიუგირების შემდეგ და დაამტკიცა, რომ ეს დაფა მუშაობს, მე გავითვალისწინე I2C ხაზები IoT PCB– სა და Speech Synth PCB– ს შორის. იხილეთ სურათი 1 ზემოთ.

თქვენ აშკარად ხედავთ "ხერხის კბილს"/I2C სიგნალის ექსპონენციალურ ზღვარს კვალზე.

ეს ჩვეულებრივ მიუთითებს იმაზე, რომ I2C გაყვანის მნიშვნელობები ძალიან მაღალია, რაც ხელს უშლის ხაზის ძაბვას საკმარისად სწრაფად აღდგენაში ღია სანიაღვრე წრეში.

როგორც "სამუშაო გარშემო" მე პარალელურად ორი smt pull up resistors R12 და R13 ერთად 10Ks მისცეს 4K7 და რასაკვირველია მეტყველების Synth "დაიწყო ცხოვრებაში"

ამ ტიპის წარუმატებლობა საპირისპიროა იმისა, რაც შეიძლება მოხდეს ამ ტიპის პროექტების გამართვისას. ზოგადად, Ebay– დან შეძენილი I2C დაფუძნებული მოდულების უმეტესობას გააჩნია უკვე დამონტაჟებული 10K ან 4K7 მოდული. თუ თქვენ აპირებთ> 5 I2C მოდულის გამოყენებას, თითოეულს 4K7 დატვირთვით, მაშინ მთლიანი დატვირთვაა 940R, რაც ძალიან დიდი იქნება სამაგისტრო გამომავალი ეტაპისთვის. გამოსავალი იქნება თითოეული მოდულის ყველა გამაგრების მოხსნა მხოლოდ ერთი ნაკრების გარდა. სასურველია ის, ვინც ფიზიკურად ყველაზე შორს არის სამაგისტროდან.

სასარგებლო რჩევა და რომელიც უნდა გაითვალისწინოთ I2C მოწყობილობებით ელექტრონიკის შემუშავებისას.

ნაბიჯი 10: დიზაინის ტესტირება

Image
Image
დიზაინის ტესტირება
დიზაინის ტესტირება
დიზაინის ტესტირება
დიზაინის ტესტირება

ტესტირება ჩატარდა ორი მეთოდოლოგიის გამოყენებით; მექანიკური და ავტომატური.

პირველი, სახელმძღვანელო და ზოგადად გამოყენებული პირველადი კოდის შემუშავებისას იყო MQTT Spy– ის გამოყენება ყველა არსებული ხელმოწერილი თემის გასააქტიურებლად და გამოქვეყნებული პასუხების შესამოწმებლად (ნაჩვენებია სურათზე 2 ზემოთ). ვინაიდან ეს სახელმძღვანელო პროცესია, ეს შეიძლება იყოს შრომატევადი და შეცდომებისკენ მიდრეკილი კოდის განვითარების პროცესში, თუმცა ხელით შესრულება 100% დაფარვის საშუალებას იძლევა.

MQTTSpy შეირჩა ხელით ტესტირებისათვის, რადგან ეს არის შესანიშნავი ინსტრუმენტი მოცემული დატვირთვის ფორმატირებისათვის და მარტივად გამოსაქვეყნებლად ნებისმიერ თემაზე. იგი ასევე აჩვენებს მკაფიო, დროის ბეჭდით ჩამწერ ჟურნალს, რომელიც ძალიან გამოსადეგია გამართვისთვის (სურათი 3 ზემოთ).

მეორე, ავტომატიზირებული მიდგომა იქნა მიღებული, რადგან წყაროს კოდი უფრო რთული გახდა (> 3700 სტრიქონი). სირთულის გაზრდა ნიშნავს მექანიკური ტესტირების ხანგრძლივ ციკლს და უფრო რთულ ტესტებს. ტესტების საიმედოობის, დეტერმინიზმისა და ხარისხის გასაუმჯობესებლად ავტომატური ტესტირება გამოიყენეს პითონის ტესტის აღმასრულებლის მეშვეობით (სურათი 1). იხილეთ ნაბიჯი #10 ამ ინსტრუქციებში, თუ როგორ დაინერგა ავტომატური ტესტირება. ამ ინსტრუქციებში გამოყენებული ავტომატური ტესტების სრული ასლი ხელმისაწვდომია აქ.

ვიდეოში ნაჩვენებია ავტომატური ტესტირების თანმიმდევრობის ვიდეო ზემოთ. თანმიმდევრობა ასრულებს შემდეგ ნაბიჯებს;

  • ავტომატიზირებულია MQTT– ის საშუალებით

    • დაუკავშირდით MQTT ხერხემალს და გამოაცხადეთ "სისტემა მზად არის"
    • სავარჯიშო მწვანე LED
    • სავარჯიშო წითელი LED
    • სავარჯიშო ლურჯი LED
    • შეამოწმეთ ციფრული ქოთნის მუშაობა
    • ისაუბრეთ ფონემების გამოყენებით
    • ისაუბრეთ ჰექსაციური კოდების გამოყენებით ფონემებისთვის
    • ისაუბრეთ კოდების გამოყენებით ფრაზების გასასწორებლად
    • ცოტაოდენი დოქტორი ვინ და დალექსი გართობა.
  • ხელით HTTP/Chrome– ის საშუალებით

    • სავარჯიშო ლურჯი LED
    • სავარჯიშო წითელი LED
    • ილაპარაკე ფიქსირებული ფრაზები "სტივენ ქუინი", "სისტემა მზადაა" და "გამარჯობა მსოფლიო"
    • გქონდეთ HTTP სერვერი, იმუშავეთ

      • დეტალები Speech Synth ჩიპზე
      • MQTT დეტალები

ნაბიჯი 11: დასკვნა

დასკვნა
დასკვნა

მიუხედავად იმისა, რომ დიდი ძალისხმევა დასჭირდა ფაილებს და სავარჯიშოებს და ა.შ. განსაკუთრებით დინამიკების ცხაურისთვის, მე ვფიქრობ, რომ შედეგი ესთეტიურად სასიამოვნოა და მოთავსებულია ლამაზ, პატარა შიგთავსში. მე შემეძლო გამეცილებინა, მაგრამ დასჭირდებოდა ერთ PCB– ზე გადასვლა და მე განზრახ გავყავი იგი ორ ნაწილად, რათა შემდგომში მე შემეძლო PCB– ების ხელახლა გამოყენება სხვა პროექტებისთვის. ასე რომ, ეს არის სასიამოვნო კომპრომისი.

პროგრამული უზრუნველყოფა კარგად მუშაობს, IoT მოწყობილობა უკვე საკმაოდ დიდი ხანია მუშაობს ყოველგვარი პრობლემის გარეშე.

მე თვალყურს ვადევნებ ტემპერატურასა და ტენიანობას გრაფანას საშუალებით და ვადარებ ადგილსამყოფელ მოწყობილობას. გარემოს ორი მნიშვნელობა კარგად იყო კორელაცია, რაც გულისხმობს დაკალიბრების გონივრულობას (ან ყოველ შემთხვევაში ისინი მსგავსია).

მე შევწყვიტე სიტყვის ბრძანების ('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- ისთვის და ა.შ. ტემპერატურისა და ტენიანობის სენსორები
  • საიდან:

Adafruit_AM2320.h/Adafruit_Sensor.h

  • ავტორი: ადაფრუტი
  • დანიშნულება: არდუინოს ბიბლიოთეკა AM2320 და ა.შ. ტემპერატურის და ტენიანობის სენსორი
  • საიდან:

MCP4561_DIGI_POT.h

  • ავტორი: სტივ ქუინი
  • დანიშნულება: არდუინოს ბიბლიოთეკა MCP4561 ციფრული პოტენომეტრისათვის
  • საიდან:

Adafruit_MCP23017.ჰ

  • ავტორი: სტივ ქუინი
  • დანიშნულება: Arduino ბიბლიოთეკა MCP23017 I2C პორტის გაფართოებისთვის. ეს არის GITHub ჩანგალი Adafruit-MCP23017-Arduino- ბიბლიოთეკიდან, Adafruit– ის მიერ.
  • საიდან:

Გასართობად

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_CAMPAIGN_2017_07_77_77_77_77_77_77_77_7777_07_77_07_07_07_07 /

SP0256-AL2 მონაცემთა ცხრილი

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

მეტყველების ჩიპსების მაღაზია

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

არდუინოს კონკურსი 2019
არდუინოს კონკურსი 2019
არდუინოს კონკურსი 2019
არდუინოს კონკურსი 2019

მეორე ადგილი არდუინოს კონკურსში 2019

გირჩევთ: