Kazalo:

Osebni pomočnik: 9 korakov (s slikami)
Osebni pomočnik: 9 korakov (s slikami)

Video: Osebni pomočnik: 9 korakov (s slikami)

Video: Osebni pomočnik: 9 korakov (s slikami)
Video: Эти тайные цифры денежного кода принесут деньги в кошелек. Первые деньги уже через 48 часов 2024, Julij
Anonim
Image
Image
Osebni pomočnik
Osebni pomočnik

V tem navodilu vam bom pokazal, kako lahko uporabite moč ESP8266, ustvarjalnost pri oblikovanju in programiranju programske opreme, da naredite nekaj kul in izobraževalnega.

Poimenoval sem ga Personal Assistant, ker je žepne velikosti, se pogovarja z vami in vam ponuja nekaj koristnih in (seveda) nekaj neuporabnih (a vseeno kul) podatkov o vremenu, času in datumu, sporočilih v Gmailu, rojstvu v živo in smrtnost itd.

Obliko sem poskušal ohraniti preprosto. Naprava ima dva uporabniška vmesnika. Fizični gumb in spletna aplikacija, do katere lahko uporabnik dostopa prek spletnega brskalnika in spremeni nastavitve in konfiguracijo naprave.

Kako deluje? Glavni sestavini tega projekta sta mikrokontroler in modul predvajalnika glasbe. Naš mikrokrmilnik (NodeMCU) uporablja tehnologijo WiFi za povezavo z dostopno točko z internetno povezavo; tako lahko pridobi potrebne podatke, jih obdeluje in predvajalniku glasbe (DFPlayer Mini) pove, kdaj, katero datoteko MP3 je treba predvajati.

Zaenkrat je to vse, kar morate vedeti. V naslednjih korakih vam bom dal podrobnejše informacije, zato ne skrbite.

Korak: Potrebni deli

Potrebni deli
Potrebni deli
  • NodeMCU ESP-12E (CP2102 USB-to-Serial Interface)
  • DFPlayer Mini
  • Trenutni gumb SPST
  • 8 ohmski 2 -vatni zvočnik
  • Micro SD kartica (potrebovali boste nekaj kilobajtov, zato zmogljivost ni pomembna)
  • Matice in vijaki

    • Matice M3 (x6)
    • Vijaki M3 - 23 mm (x4)
    • Vijaki M3 - 15 mm (x2)
  • 1N4148 Signalna dioda (x1)
  • Upori

    • 1K upor (x1)
    • 10K upor (x2)

Drugi deli:

  • PCB (prototip lahko naročite na spletu ali obiščete lokalno trgovino)
  • Lasersko rezana akrilna plošča
    • Prozoren list debeline 2 mm
    • 2,8 mm debeline dveh različnih barvnih listov (oranžna in zelena, rdeča in zelena, odvisno od vas in barve niso pomembne)
  • Kateri koli 5 voltni (vsaj) 1 amperski polnilnik mikro USB (za vklop naprave)

2. korak: Kako deluje

Kako deluje
Kako deluje
Kako deluje
Kako deluje

V redu, želim vam dati podrobnejše informacije o delovanju programske opreme.

Programsko opremo sestavljajo nekatere storitve. Vsaka storitev ima svoje module. (Storitev lahko obravnavate kot razred, njene module pa kot njene metode). Vsak modul se lahko obravnava kot izvršljiv objekt. Torej je naša programska oprema sestavljena iz nekaterih izvedljivih predmetov.

Tukaj imamo nekaj storitev in pod-storitev ali njihovih modulov:

  • Gmail

    Neprebrana sporočila

  • Vreme

    • Trenutna temperatura
    • Današnje stanje
    • Danes nizko / visoko
    • Stanje jutri
    • Jutri nizko / visoko
    • Napoved padavin
    • Sončni vzhod sončni zahod
  • Čas

    • Trenutni čas
    • Trenutni datum
  • Rojstvo in smrt

    • Svetovno rojstvo
    • Svetovna smrt

Obstaja krožna čakalna vrsta, v kateri so moduli. To imenujemo Operacijska čakalna vrsta. Rekel sem, da je vsak modul izvedljiv objekt. Torej, ko pritisnete gumb na napravi, pogleda v čakalno vrsto operacij in izvede naslednji modul (ali predmet).

Člane čakalne vrste operacij lahko uredite v spletnem uporabniškem vmesniku, ki ga bom razložil kasneje. Zaenkrat vam bom dal primer. Razmislite o trenutni vrsti operacij tako:

QUEUE (Nebrana sporočila | Napoved padavin | Trenutni čas)

Če pritisnete gumb, se izvedejo neprebrana sporočila.

QUEUE (Nebrana sporočila | Napoved padavin | Trenutni čas)

Tako bo naprava uporabila podatke, ki jih je zbrala (tukaj, število vaših neprebranih sporočil, ki jih pobere iz vira google poštnega API -ja), da se pogovarja z vami. Ampak kako? Tukaj bo NodeMCU povedal modulu MP3, kdaj naj predvaja kateri del MP3, da naredi smiseln stavek. Da bi to dosegel, sem oblikoval različne čakalne vrste, časovnike in algoritme. (Če ste tip c ++ in imate radi mikrokrmilnike, lahko sami preučite kodo.)

Tako boste slišali, naprava začne govoriti: V mapi »Prejeto« v Gmailu imate 4 neprebrana sporočila.

Ponovno pritisnete gumb, naslednji modul bo Napoved padavin, ki ga je treba obravnavati.

QUEUE (Nebrana sporočila | Napoved padavin | Trenutni čas)

Tako boste slišali nekaj takega: Ne pozabite na dežnik, jutri bo deževno. In tako naprej … Še ena kul stvar: za nekatere module (na primer napoved padavin) lahko pričakujete naključne stavke za ista stanja. Na primer, če jutri padavine in dežuje in ne sneži, lahko pričakujete, "jutri obstaja možnost dežja", "prinesite svoje sonce, jutri bo deževno", "tut, tut, za jutri izgleda kot dež", ali…

Kako dobimo različne podatke za vsako storitev?

  • Gmail

    Neprebrana sporočila Google ima zmogljiv API, do katerega lahko dostopate do različnih storitev, vključno z Gmailom. Toda iz varnostnih razlogov potrebujete različne načine preverjanja pristnosti in avtorizacije, kot je OAuth. ESP8266 ni tako zmogljiv za izvajanje različnih zapletenih algoritmov razpršitve. Zato sem za dostop do mape »Gmail« uporabil starejšo in preprosto tehnologijo prijave. Google Atom Feed lahko uporabljajo tudi bralci RSS. Pošljemo zahtevo HTTP za dostop do vira gmail in njen odgovor je v obliki XML. Tako štejemo število neprebranih sporočil in jih uporabljamo v našem programu

  • Za pridobivanje različnih vremenskih informacij uporabljamo Yahoo Weather API. Nedavno je tako kot Google tudi Yahoo spremenil svoj Weather API, zato boste morali za dostop do svojih podatkov uporabiti standarde OAuth. Žal ESP8266 ne more obvladati njegove kompleksnosti, zato bomo za rešitev težave uporabili trik. Namesto neposrednega dostopa do Yahoo Weather API -ja bomo zahtevo poslali v datoteko po meri na strežniku. Naša datoteka dobi podatke iz Yahoo Weather -a in nam jih preprosto pošlje.

    • Jutrišnje stanje Jutrišnje stanje vam bo povedalo, ali je jutri toplejše ali hladnejše kot danes, ali pa tam, če ne bo občutne spremembe temperature. Za to primerjamo "danes nizko / visoko" z "jutri nizko / visoko". V datoteki knjižnice programa lahko preverite, kako sem napisal ta algoritem in kako deluje.
    • Napoved padavin Če pogledate Yahoo Weather dokumentacijo, si lahko ogledate tabelo s kodami pogojev. Kot piše, se kode pogojev uporabljajo kot odgovor za opis trenutnih razmer. Jutrišnje kode pogojev in njihov pomen bomo uporabili, da ugotovimo, ali bodo padavine in ali dežuje ali sneži.
  • TimeNTP pomeni Network Time Protocol. To je omrežni protokol za sinhronizacijo ure med računalniškimi sistemi. Ker imamo dostop do interneta, bomo za pridobivanje časa s strežnika NTP uporabili odjemalca NTP in ga sinhronizirali prek notranjega časovnika ESP8266 (na primer tistega, ki ga uporabljate z millis (), če ste fant iz Arduina).
  • Rojstvo in smrt Izračunali bomo število rojstev in smrti od začetka dneva (zahvaljujoč odjemalcu NTP je preprosto pridobiti število sekund od začetka dneva). Uporabil sem svetovne stopnje rojstva in umrljivosti iz ekologije.

3. korak: Namestite programsko opremo

Namestite programsko opremo
Namestite programsko opremo

Za nalaganje našega programa v NodeMCU bomo uporabili Arduino IDE. Najnovejšo Arduino IDE lahko prenesete in namestite z njihove uradne strani:

Preden začnete, morate namestiti Arduino IDE za Nodemcu. Tukaj vam ne bom povedal korakov, ker bi to lahko bilo zunaj teme. Lahko pa sledite korakom in razlagam tega odličnega pouka.

Naš program ima nekaj knjižničnih odvisnosti. Kaj je odvisnost od programske opreme?

Odvisnost je širok izraz programskega inženiringa, ki se uporablja za označevanje, ko se del programske opreme opira na drugega.

Tu je seznam knjižnic Arduino, ki jih morate imeti v računalniku, da lahko sestavite program Personal Assistant:

  • ArduinoJson
  • DFRobotDFPlayerMini
  • NTPClient

Lahko jih prenesete enega za drugim s strani Github in nato izvlečete datoteke zip v imenik knjižnice Arduino. Njegova pot v vašem sistemu je: C: / Users [vaše-uporabniško ime] Documents / Arduino

Napisal sem knjižnico, da bi koda ostala čista in se izognila zapletenosti. Prenesite datoteko PersonalAssistant-Library.zip in jo izvlecite v imenik knjižnice Arduino. Tako kot ste prej storili za te tri knjižnice.

Datoteka YahooWeather.php

Ker ESP8266 ni dovolj zmogljiv za izvajanje algoritmov razpršitve, ga ne moremo uporabljati neposredno za pošiljanje zahtev HTTP v Yahoo Weather API na podlagi standardov OAuth. Tako bomo uporabili datoteko med našo napravo in Yahoo Weather API. Lahko prenesete datoteko YahooWeather.zip, jo izvlečete in datoteko YahooWeather.php postavite v spletni strežnik. Na primer, če je vaša domena example.com in datoteko postavite v imenik api, vaša končna točka api postane example.com/api/YahooWeather.php Na to končno točko boste poslali zahteve za vremenske podatke.

Skica programa in FFS (datotečni sistem Flash)

Vaša plošča NodeMCU ima 4 MB bliskovnega datotečnega sistema za shranjevanje podatkov. Torej, ko ga imamo, zakaj ga ne bi uporabili?

Se spomnite, ko sem rekel, da ima naša naprava dva uporabniška vmesnika? Poleg tega osamljenega gumba je naš drugi uporabniški vmesnik preprosta spletna aplikacija. S to aplikacijo lahko upravljate čakalno vrsto operacij tako, da omogočite / onemogočite vsak modul, spremenite nastavitve storitev ali konfiguracijo naprave, na primer nastavite SSID in geslo WiFi. Vse te datoteke bomo shranili v datotečni sistem NodeMCU Flash in zagnali lahek spletni strežnik za obravnavo uporabniških zahtev iz njihovega spletnega brskalnika.

Urejanje konfiguracijske datoteke

Prenesite datoteko PersonalAssistant-Sketch.zip in jo izvlecite nekje v računalniku. Odprite datoteko config.json, ki se nahaja:

PersonalAssistant/data/config.json

Uporabite lahko kateri koli urejevalnik besedil ali kod, na primer beležnico, beležnico ++, Atom itd. Datoteka je podatkovna struktura json, zato je človeško berljiv par ključ / vrednost in ga lahko preprosto uredite. Ta polja lahko spremenite:

  • Gmail

    • uporabniško ime: vaše uporabniško ime za Gmail z naslovom @gmail.com
    • geslo: vaše geslo za Gmail
  • Vreme

    • woeid: lokacija, za katero želite prejemati vremenske informacije. WOEID (Where On Earth IDentifier) je referenčni identifikator, ki ga Yahoo uporablja za lokacijo. Na tej povezavi lahko izvedete iskanje po lokacijah WOEID.
    • api: to je končna točka API. Povezava do datoteke yahooweather.php.
    • appId, customerKey in ConsumerSecret: za dostop do Yahoo Weather API -ja morate ustvariti projekt na strani razvijalcev Yahoo. Tako boste dobili ključ in skrivnost potrošnika, ki sta potrebna za uporabo API -ja. Za začetek obiščite stran Yahoo Weather Developer in ustvarite APP.
  • Časovni pas

    časovni pas: vnesite časovni pas glede na vašo lokacijo. Lahko je pozitivno ali negativno plavajoče število, njegova enota pa so ure

  • Wifi

    • ssid: SSID vašega omrežja.
    • geslo: geslo za omrežje. NodeMCU bo za povezavo z vašim brezžičnim omrežjem uporabil ssid in geslo.

Nalaganje skice programa in podatkov FFS

NodeMCU povežite z računalnikom s kablom mikro USB-USB.

Zdaj odprite datoteko PersonalAssistant.ino, ki se nahaja:

PersonalAssistant/PersonalAssistant.ino

V Arduino IDE v Orodja> Kartica izberite NodeMCU 1.0 (modul ESP-12E), V Orodja> Vrata izberite ustrezna vrata. Predstavlja vaš NodeMCU.

Zdaj izberite Orodja> ESP8266 Sketch Data Upload, to bo naložilo vsebino podatkovne mape v ESP8266. Počakajte nekaj trenutkov, dokler se ne konča. Nato izberite Skica> Naloži ali preprosto pritisnite gumbe Ctrl + U na tipkovnici, da začnete nalagati program. Počakajte, da se prikaže sporočilo "nalaganje je končano".

4. korak: Nastavite kartico Micro SD

Za shranjevanje datotek MP3 uporabljamo kartico micro SD. NodeMCU je tisti, ki se odloči, katero datoteko je treba predvajati ob katerem času, DFPlayer Mini pa mu pomaga pri oblikovanju smiselnega stavka z dekodiranjem datotek MP3.

Uporabil sem Amazon Polly za ustvarjanje potrebnih glasovnih del.

Amazon Polly je storitev, ki pretvori besedilo v realističen govor in vam omogoča, da ustvarite aplikacije, ki govorijo, in ustvarite povsem nove kategorije izdelkov z govorom.

Ne pozabite, da naša naprava ne uporablja API -ja Amazon Polly za dinamičen govor. Imamo nekaj statičnih glasovnih del brez povezave in z njihovo sestavo sestavljamo različne stavke.

To stran sem uporabil za ustvarjanje datotek MP3. Glasovni izhod, ki sem ga izbral, je bil ameriški angleški / salli.

Edino, kar morate storiti, je, da prenesete datoteko microSD.zip in jo nato izvlečete na kartico micro SD. Vsebuje vseh 78 zahtevanih datotek MP3.

Verjetno je priložena kartica Micro SD in adapter. Kartico Micro SD lahko vstavite v adapter in jo pritrdite na prenosni računalnik. Če vaš računalnik ne podpira branja kartic, uporabite zunanji bralnik kartic.

5. korak: Oblikovanje shem in nastavitev tiskanega vezja

Oblikovanje shem in nastavitev tiskanega vezja
Oblikovanje shem in nastavitev tiskanega vezja
Oblikovanje shem in nastavitev tiskanega vezja
Oblikovanje shem in nastavitev tiskanega vezja
Oblikovanje shem in nastavitev tiskanega vezja
Oblikovanje shem in nastavitev tiskanega vezja
Oblikovanje shem in nastavitev tiskanega vezja
Oblikovanje shem in nastavitev tiskanega vezja

Shemo in ploščo sem oblikoval z uporabo Autodesk EAGLE. Datoteke SCH in BRD sem vključil v PersonalAssistant-PCB.zip. Z lahkoto ga lahko uredite in / ali pošljete lokalnemu ali spletnemu proizvajalcu tiskanih vezij, da naroči in dobi vašo ploščo.

Omeniti velja še to, da ESP8266 deluje pri 3.3v, DFPlayer Mini pa v 5v. Ker se morata ta dva modula medsebojno pogovarjati prek serijskega vmesnika, ne moremo neposredno priključiti 5v izhoda na 3.3v vhod, saj poškoduje vaš ESP8266. Potrebovali bomo torej pretvorbo ravni od 5v do 3.3v. Za to uporabljamo signalno diodo in 10K upor.

6. korak: Spajkajte ga

Spajkajte ga
Spajkajte ga
Spajkajte ga
Spajkajte ga

Sestavljanje plošče je precej preprosto, saj imate nekaj komponent. Sledite shemi in zasnovi plošč v 5. koraku, da preprosto postavite vsak predmet na pravo mesto.

Začel sem s spajkanjem uporov in diode, saj sta majhna. Nepotrebne repove lahko preprosto odrežete z rezalnikom žice. Od zgoraj navzdol postavite 1K, 10K in 10K upor.

Ni vam treba spajkati vseh nožic NodeMCU in DFPlayer Mini na tiskanem vezju. Spajkanje zatičev s potjo je dovolj.

Ne pozabite, da imajo zvočniki in diode polarnost. V komponentah imate en zvočnik in eno diodo. Za diodo je stran s črno črto njena negativna stran ali katoda.

7. korak: Ohišje

Ohišje
Ohišje
Ohišje
Ohišje
Ohišje
Ohišje

Odločil sem se, da bom ustvarjalno zasnovo ustvaril na ustvarjalen način. Med zasnovo me je skrbela njegova čudna oblika, a na koncu ni bilo tako hudo. Vsaj izgleda kot klavir in se odlično drži v roki!

Namesto klasične šesterokotne oblike s šestimi ploskvami sem oblikoval večplastno ohišje. Od spodaj navzgor se vsaka plast položi na spodnjo plast. (Poimenoval sem jih od L0 do L6, od spodaj navzgor)

Barve in debelina

Za največji kontrast lahko uporabite dve komplementarni barvi, na primer:

  • Rdeča in zelena
  • Modra in oranžna
  • Rumena in vijolična
  • Modra in rumena

Za zgornjo plast sem uporabil čist akril, tako da lahko vidite notranjost naprave.

Debelina zgornje plasti (plast-6) mora biti 2 mm, debelina drugih plasti (plast-0 do plast-5) pa 4 mm. Če želite uporabiti 2,8 mm akrilni ščit, tako kot sem jaz, ni težav. Za odmik pa morate izrezati dve seriji iz plasti 1 in plasti 3.

Če želite sestaviti ohišje, začnite od spodnje plasti (L0). Namestite desko nanjo, uporabite krajše vijake in jo privijte z maticami. Zdaj lahko pritrdite štiri daljše vijake z dna plasti-0. Nekaj podobnega stolpu. Potem lahko preprosto nadaljujete z nameščanjem drugih plasti nanje.

Opomba: Med spodnjo plastjo in ploščo lahko uporabite izbirno podložko.

Dodal sem tudi informativna besedila za vrata naprav (napajanje in kartica micro SD). Na zgornji sloj lahko uporabite lasersko graviranje.

Vključil sem formate datotek CDR in DXF. Lahko jih naložite, uredite in uporabite za lasersko rezanje.

8. korak: Dostop do spletnega uporabniškega vmesnika

Dostop do spletnega uporabniškega vmesnika
Dostop do spletnega uporabniškega vmesnika

Vklopite napravo

Napravo lahko vklopite s katerim koli polnilnikom 5V micro USB. Priključite mikro USB na vrata za napajanje naprave, to je vhod za mikro USB na vašem NodeMCU.

Dostop do uporabniškega vmesnika

Se spomnite, da smo nekatere datoteke naložili v datotečni sistem ESP8266 Flash? Čas je, da ga uporabite. Vse, kar potrebujete, je naslov IP, dodeljen ESP8266 v omrežju. Naslov IP lahko najdete na različne načine. Nekaj jih bom navedel tukaj:

  • Na strani s konfiguracijo usmerjevalnika, nekje na seznamu najema DHCP, si lahko ogledate seznam naprav z njihovimi naslovi IP v vašem omrežju.
  • V Microsoft Windows in macOS lahko v terminalu zaženete ukaze, kot je arp -a.
  • V sistemu Android in iOS lahko uporabljate aplikacije, kot je Fing. (Android / iOS)
  • V Linuxu lahko uporabite orodja, kot je Nmap.

Ko najdete naslov IP, ga odprite v spletnem brskalniku. Z operacijsko čakalno vrsto lahko upravljate tako, da omogočite / onemogočite module.

9. korak: Zadnje misli

Ta projekt je bil zelo dolgotrajen in porabil je veliko energije. Osebnemu asistentu lahko dodate še veliko drugih možnosti. Nekatere dele sem pustil odprte za prihodnji razvoj. Nekateri deli, kot so:

  1. Dodajanje več storitev in modulov. Na primer štetje številk, metanje kocke ali metanje kovanca.
  2. Po povezavi z omrežjem lahko naprava izgovori naslov IP. To možnost lahko dodate, da poenostavite postopek iskanja naslova IP.
  3. Dodajanje možnosti spreminjanja nastavitev WiFi na spletni nadzorni plošči.
  4. Dodajanje možnosti spreminjanja nastavitev storitev na spletni nadzorni plošči. (Njihov obrazec html je pripravljen. Obravnavati morate zahteve)
  5. Dodajanje več glasovnih odzivov v različnih stanjih naprave.
  6. Dodajanje prijavne strani za spletno nadzorno ploščo. To lahko storite tako, da v vrstice glave HTTP dodate / primerjate piškotke.

In rad bi vedel vaše ideje o tem navodilu.:)

Priporočena: