Sisällysluettelo:

Henkilökohtainen avustaja: 9 vaihetta (kuvilla)
Henkilökohtainen avustaja: 9 vaihetta (kuvilla)

Video: Henkilökohtainen avustaja: 9 vaihetta (kuvilla)

Video: Henkilökohtainen avustaja: 9 vaihetta (kuvilla)
Video: Henkilökohtaisen avustajan työnantajuus: työntekijän perehdyttäminen 2024, Marraskuu
Anonim
Image
Image
Henkilökohtainen avustaja
Henkilökohtainen avustaja

Tässä ohjeessa näytän sinulle, kuinka voit käyttää ESP8266: n voimaa, luovuutta ohjelmistosuunnittelussa ja ohjelmoinnissa, tehdäksesi jotain siistiä ja opettavaista.

Nimesin sen henkilökohtaiseksi avustajaksi, koska se on taskukokoinen, puhuu sinulle ja voi antaa sinulle hyödyllisiä ja (tietysti) muutamia ei -hyödyllisiä (mutta silti viileitä) tietoja säästä, kellonajasta ja päivämäärästä, Gmail -viesteistä, elävästä syntymästä ja kuolleisuus jne.

Yritin pitää suunnittelun yksinkertaisena. Laitteessa on kaksi käyttöliittymää. Fyysinen painike ja verkkopohjainen sovellus, jonka käyttäjä voi käyttää sitä verkkoselaimella ja muuttaa laitteen asetuksia ja kokoonpanoa.

Tämän projektin pääkomponentit ovat mikro- ja musiikkisoitinmoduuli. Mikro -ohjaimemme (NodeMCU) käyttää WiFi -tekniikkaa muodostaakseen yhteyden tukiasemaan, jossa on Internet -yhteys; jotta se voi saada tarvittavat tiedot, käsitellä sitä ja kertoo musiikkisoittimelle (DFPlayer Mini) milloin, mikä MP3 -tiedosto tulee toistaa.

Toistaiseksi sinun tarvitsee vain tietää. Annan sinulle tarkempia tietoja seuraavissa vaiheissa, joten älä huoli.

Vaihe 1: Tarvittavat osat

Tarvittavat osat
Tarvittavat osat
  • NodeMCU ESP-12E (CP2102 USB-sarjaliitäntä)
  • DFPlayer Mini
  • SPST hetkellinen painike
  • 8 ohmin 2 watin kaiutin
  • Micro SD -kortti (tarvitset muutaman kilotavun, joten kapasiteetilla ei ole väliä)
  • Mutterit ja pultit

    • M3 -mutterit (x6)
    • M3 pultit - 23 mm (x4)
    • M3 pultit - 15 mm (x2)
  • 1N4148 Signaalidiodi (x1)
  • Vastukset

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

Toiset osat:

  • PCB (voit tilata prototyypin verkossa tai käydä paikallisessa kaupassa)
  • Laserleikattu akryylilevy

    • 2 mm paksu kirkas arkki
    • 2,8 mm paksu kaksi eri väriä (oranssi ja vihreä, punainen ja vihreä, se on sinun valintasi ja väreillä ei ole väliä)
  • Mikä tahansa 5 voltin (vähintään) 1 ampeerin mikro -USB -laturi (laitteen käynnistämiseksi)

Vaihe 2: Näin se toimii

Kuinka se toimii
Kuinka se toimii
Kuinka se toimii
Kuinka se toimii

Okei, haluan antaa sinulle tarkempaa tietoa ohjelmiston toiminnasta.

Ohjelmisto koostuu joistakin palveluista. Jokaisella palvelulla on omat moduulit. (Voit pitää palvelua luokana ja sen moduuleja menetelminä). Jokaista moduulia voidaan pitää suoritettavana objektina. Joten ohjelmistomme koostuu joistakin suoritettavista objekteista.

Tässä on joitain palveluita ja alipalveluja tai niiden moduuleja:

  • Gmail

    Lukemattomat viestit

  • Sää

    • Nykyinen lämpötila
    • Tänään kunto
    • Tänään matala / korkea
    • Huomenna kunto
    • Huomenna matala / korkea
    • Sateen ennuste
    • Auringonnousu auringonlasku
  • Aika
    • Tämänhetkinen aika
    • Nykyinen päivämäärä
  • Syntymä ja kuolema
    • Maailman syntymä
    • Maailman kuolema

Siinä on pyöreä jono, joka pitää moduuleja. Kutsumme sitä Operation Queueksi. Sanoin, että jokainen moduuli on suoritettava objekti. Joten kun painat laitteen painiketta, se näyttää toimintonäytön ja suorittaa seuraavan moduulin (tai objektin).

Voit muokata käyttöjonon jäseniä verkkopohjaisessa käyttöliittymässä, jonka selitän myöhemmin. Annan teille nyt esimerkin. Harkitse nykyistä operaatiojonoa seuraavasti:

Jono (lukemattomat viestit | sademääräennuste | nykyinen aika)

Kun painat painiketta, lukemattomat viestit tulee suorittaa.

Jono (lukemattomat viestit | sademääräennuste | nykyinen aika)

Laite käyttää siis keräämiäsi tietoja (tässä lukemattomien viestiesi lukumäärä, joka on otettu Google -postiliittymän syötteestä) puhuakseen sinulle. Mutta miten? Täällä NodeMCU kertoo MP3 -moduulille, milloin sen pitäisi toistaa mikä MP3 -kappale tehdäkseen mielekäs lause. Tämän saavuttamiseksi olen suunnitellut erilaisia jonoja, ajastimia ja algoritmeja. (Jos olet c ++ -mies ja pidät mikro -ohjaimista, voit tutkia koodin itse.)

Joten kuulet, laite alkaa puhua: Gmail -postilaatikossasi on 4 lukematonta viestiä.

Painamalla painiketta uudelleen, seuraava moduuli on sateen ennuste, joka tulisi käsitellä.

Jono (lukemattomat viestit | sademääräennuste | nykyinen aika)

Joten kuulet jotain tällaista: Älä unohda sateenvarjoa, huomenna on sateista. Ja niin edelleen. Jos esimerkiksi huomenna on sadetta ja sataa eikä lunta, voit odottaa "huomenna on mahdollista sade", "tuo oma auringonpaiste, huomenna on sateista", "tut, tut, näyttää sateelta huomenna", tai…

Miten saamme eri tiedot jokaisesta palvelusta?

  • Gmail

    Lukemattomat viestit Googlella on tehokas sovellusliittymä, jonka avulla voit käyttää sen eri palveluja, mukaan lukien Gmail. Turvallisuussyistä tarvitset erilaisia todennus- ja valtuutusmenetelmiä, kuten OAuth. ESP8266 ei ole niin tehokas erilaisten monimutkaisten hajautusalgoritmien suorittamiseen. Joten käytin vanhempaa ja yksinkertaista kirjautumistekniikkaa päästäkseni gmail-postilaatikkoon. RSS -lukijat voivat myös käyttää Google Atom -syötettä. Lähetämme HTTP -pyynnön käyttää Gmail -syötettä, ja sen vastaus on XML -muodossa. Joten laskemme lukemattomien viestien määrän ja käytämme sitä ohjelmassamme

  • Sää Käytämme Yahoo Weather -sovellusliittymää erilaisten säätietojen saamiseen. Äskettäin, kuten Google, Yahoo on muuttanut Weather -sovellusliittymänsä, joten sinun on käytettävä OAuth -standardeja päästäksesi tietoihin. Valitettavasti ESP8266 ei voi käsitellä sen monimutkaisuutta, joten käytämme temppua ongelman ratkaisemiseksi. Sen sijaan, että pääsisimme suoraan Yahoo Weather -sovellusliittymään, lähetämme pyyntömme palvelimen mukautettuun tiedostoon. Tiedostomme saa tietoja Yahoo Weatherilta ja lähettää ne meille.

    • Huomenna kunto Huomenna ehto kertoo, onko huomenna lämpimämpää tai kylmempää kuin tänään, tai jos ei ole mitään järkevää lämpötilan muutosta. Vertaamme "tänään matala / korkea" ja "huominen matala / korkea" tämän saavuttamiseksi. Voit tarkistaa, miten kirjoitin tämän algoritmin ja miten se toimii ohjelmakirjastotiedostossa.
    • Jos tarkistat Yahoo Weather -dokumentaation, näet Tilakoodit -taulukon. Kuten sanotaan, ehtokoodeja käytetään vastauksessa kuvaamaan nykyisiä olosuhteita. Käytämme huomisen olosuhteiden koodeja ja niiden merkityksiä selvittääksemme, onko sateita ja onko sade vai lumi.
  • TimeNTP on lyhenne sanoista Network Time Protocol. Se on verkkoprotokolla kellojen synkronoimiseksi tietokonejärjestelmien välillä. Koska meillä on Internet -yhteys, käytämme NTP -asiakasta saadaksemme aikaa NTP -palvelimelta ja synkronoimme sen ESP8266 -sisäisen ajastimen (kuten sen, jota käytät millis (): n kanssa, jos olet Arduino -kaveri) kanssa.
  • Syntymä ja kuolema Laskemme syntyvien ja kuolleiden lukumäärän päivän alusta (NTP -asiakkaan ansiosta on helppo saada sekunteja päivän alusta). Käytin maailman syntyvyyttä ja kuolleisuutta ekologiasta.

Vaihe 3: Asenna ohjelmisto

Asenna ohjelmisto
Asenna ohjelmisto

Käytämme Arduino IDE: tä ohjelman lataamiseen NodeMCU: hon. Voit ladata ja asentaa uusimman Arduino IDE: n viralliselta sivustolta:

Ennen kuin aloitat, sinun on asennettava Arduino IDE Nodemcu -ohjelmaa varten. En kerro vaiheita täällä, koska se voi mennä aiheen ulkopuolelle. Mutta voit seurata tämän erinomaisen ohjeen ohjeita ja selityksiä.

Ohjelmamme sisältää joitakin kirjastoriippuvuuksia. Mikä on ohjelmistiriippuvuus?

Riippuvuus on laaja ohjelmistosuunnittelun termi, jota käytetään viittaamaan, kun ohjelmisto perustuu toiseen.

Tässä on luettelo Arduino -kirjastoista, jotka sinulla on oltava tietokoneellasi Personal Assistant -ohjelman kääntämiseksi:

  • ArduinoJson
  • DFRobotDFPlayerMini
  • NTPClient

Voit ladata ne yksitellen heidän Github -sivultaan ja purkaa zip -tiedostot Arduino -kirjastohakemistoon. Sen polku järjestelmässäsi on: C: / Users [käyttäjänimesi] Documents / Arduino

Kirjoitin kirjaston pitääkseni koodin puhtaana ja välttääkseni monimutkaisuuden. Lataa tiedosto PersonalAssistant-Library.zip ja pura se Arduinon kirjastohakemistoon. Aivan kuten teit näiden kolmen kirjaston osalta aiemmin.

YahooWeather.php -tiedosto

Koska ESP8266 ei ole tarpeeksi tehokas suorittamaan hajautusalgoritmeja, emme voi käyttää sitä suoraan HTTP -pyyntöjen lähettämiseen Yahoo Weather API: lle OAuth -standardien perusteella. Käytämme siis tiedostoa laitteemme ja Yahoo Weather API: n välillä. Voit ladata YahooWeather.zip -tiedoston, purkaa sen ja laittaa YahooWeather.php -tiedoston verkkopalvelimelle. Jos esimerkiksi verkkotunnuksesi on example.com ja laitat tiedoston api -hakemistoon, api -päätepisteestäsi tulee example.com/api/YahooWeather.php Lähetät säätietopyynnöt tähän päätepisteeseen.

Ohjelmaluonnos ja FFS (Flash File System)

NodeMCU -kortissa on 4 Mt: n flash -tiedostojärjestelmä tietojen tallentamiseen. Joten, kun meillä on se, miksi emme käytä sitä?

Muistatko, kun sanoin, että laitteellamme on kaksi käyttöliittymää? Tämän yksinäisen painikkeen lisäksi toinen käyttöliittymämme on yksinkertainen verkkopohjainen sovellus. Tämän sovelluksen avulla voit muokata toimintajonoa ottamalla käyttöön / poistamalla käytöstä jokaisen moduulin, muuttamalla palveluasetuksia tai laitteen kokoonpanoa, kuten asettamalla WiFi SSID: n ja salasanan. Tallennamme kaikki nämä tiedostot NodeMCU Flash File System -järjestelmään ja käytämme kevyttä verkkopalvelinta, joka käsittelee käyttäjäpyyntöjä heidän selaimellaan.

Asetustiedoston muokkaaminen

Lataa tiedosto PersonalAssistant-Sketch.zip ja pura se jonnekin tietokoneellesi. Avaa tiedosto config.json, joka sijaitsee:

PersonalAssistant/data/config.json

Voit käyttää mitä tahansa teksti- tai koodieditoria, kuten muistilehtiö, muistilehtiö ++, Atom jne. Tiedosto on json -tietorakenne, joten se on ihmisen luettavissa oleva avain / arvo -pari ja voit muokata sitä helposti. Voit muuttaa näitä kenttiä:

  • Gmail

    • käyttäjänimi: Gmail -käyttäjänimesi ja sen @gmail.com
    • salasana: Gmail -salasanasi
  • Sää

    • woeid: sijainti, josta haluat saada säätietoja. WOEID (Where On Earth IDentifier) on viitetunniste, jota Yahoo käyttää sijainnin määrittämiseen. Voit tehdä haun WOEID -paikoista tästä linkistä.
    • api: se on API -päätepiste. Linkki yahooweather.php -tiedostoosi.
    • appId, ConsumerKey ja ConsumerSecret: Jos haluat käyttää Yahoo Weather -sovellusliittymää, sinun on luotava projekti Yahoo -kehittäjien sivulla. Tämä antaa sinulle kuluttaja -avaimen ja salaisuuden, joita tarvitaan sovellusliittymän käyttämiseen. Aloita käymällä Yahoo Weather Developer -sivulla ja luomalla APP.
  • Aikavyöhyke

    aikavyöhyke: anna aikavyöhyke sijaintisi perusteella. Se voi olla positiivinen tai negatiivinen kelluva luku ja sen yksikkö on tunteja

  • WiFi

    • ssid: verkon SSID.
    • salasana: verkkosi salasana. NodeMCU käyttää SSID: tä ja salasanaa muodostaakseen yhteyden wifi -verkkoon.

Ohjelmaluonnoksen ja FFS -tietojen lataaminen

Liitä NodeMCU tietokoneeseen micro-USB-USB-kaapelilla.

Avaa nyt tiedosto PersonalAssistant.ino, joka sijaitsee:

PersonalAssistant/PersonalAssistant.ino

Valitse Arduino IDE -työkalussa Työkalut> Hallitus -kohdasta NodeMCU 1.0 (ESP-12E-moduuli). Valitse Työkalut> Portti -portti. Se edustaa NodeMCU: ta.

Valitse nyt Työkalut> ESP8266 Sketch Data Upload, jolloin datakansion sisältö ladataan ESP8266 -laitteeseen. Odota muutama hetki, kunnes se on valmis. Valitse sitten Luonnos> Lataa tai aloita ohjelman lataaminen painamalla näppäimistön Ctrl + U -painikkeita. Odota, kunnes näet viestin "lataus on valmis".

Vaihe 4: Asenna Micro SD -kortti

Käytämme micro SD -korttia MP3 -tiedostojen tallentamiseen. NodeMCU päättää, mikä tiedosto tulisi toistaa milloin ja DFPlayer Mini auttaa häntä tekemään merkityksellisen lauseen purkamalla MP3 -tiedostot.

Käytin Amazon Pollyä tarvittavien äänikappaleiden luomiseen.

Amazon Polly on palvelu, joka muuttaa tekstin todentuntuiseksi puheeksi, jolloin voit luoda sovelluksia, jotka puhuvat, ja rakentaa kokonaan uusia puhetuotteiden luokkia.

Älä unohda, että laitteemme ei käytä Amazon Polly -sovellusliittymää puhumaan dynaamisesti. Meillä on joitakin staattisia offline -äänikappaleita, ja yhdistämällä ne teemme erilaisia lauseita.

Käytin tätä sivustoa MP3 -tiedostojen luomiseen. Valitsemani äänilähtö oli US English / Salli.

Ainoa mitä sinun tarvitsee tehdä, on ladata microSD.zip -tiedosto ja purkaa se sitten micro SD -kortillesi. Se sisältää kaikki 78 vaadittua MP3 -tiedostoa.

Luultavasti Micro SD -korttisi tulee mukana ja sovitin. Voit asettaa Micro SD -kortin sovittimeen ja kiinnittää sen kannettavaan tietokoneeseen. Jos tietokoneesi ei tue kortinlukua, käytä ulkoista kortinlukijaa.

Vaihe 5: Kaavioiden suunnittelu ja piirilevyn asennus

Kaavioiden suunnittelu ja piirilevyn asennus
Kaavioiden suunnittelu ja piirilevyn asennus
Kaavioiden suunnittelu ja piirilevyn asennus
Kaavioiden suunnittelu ja piirilevyn asennus
Kaavioiden suunnittelu ja piirilevyn asennus
Kaavioiden suunnittelu ja piirilevyn asennus
Kaavioiden suunnittelu ja piirilevyn asennus
Kaavioiden suunnittelu ja piirilevyn asennus

Olen suunnitellut kaavion ja piirustuksen käyttämällä Autodesk EAGLEa. Olen sisällyttänyt sekä SCH- että BRD-tiedostot PersonalAssistant-PCB.zip-tiedostoon. Voit helposti muokata ja / tai lähettää sen paikalliselle tai online -piirilevyvalmistajalle tilataksesi ja saadaksesi levyn.

Vielä yksi mainittava asia on, että ESP8266 toimii 3,3 V: n jännitteellä, kun taas DFPlayer Mini toimii 5 V: n jännitteellä. Koska näiden kahden moduulin on puhuttava keskenään sarjaliitännän kautta, emme voi suoraan kytkeä 5 voltin lähtöä 3,3 voltin tuloon, koska se vahingoittaa ESP8266 -laitettasi. Tarvitsemme siis tasomuunnoksen 5v: stä 3.3v: iin. Käytämme signaalidiodia ja 10K vastusta sen toteuttamiseksi.

Vaihe 6: Juottaa se

Juota se ylös
Juota se ylös
Juota se ylös
Juota se ylös

Levyn kokoaminen on melko yksinkertaista, koska sinulla on muutama komponentti. Noudata kaaviota ja levyn malleja vaiheessa 5, jotta voit helposti sijoittaa jokaisen kohteen oikeaan paikkaan.

Aloitin juottamalla vastukset ja diodin, koska ne ovat pieniä. Voit helposti leikata tarpeettomat hännät lankaleikkurilla. Ylhäältä alas, sinun pitäisi laittaa 1K, 10K ja 10K vastus.

Sinun ei tarvitse juottaa kaikkia NodeMCU- ja DFPlayer Mini -nastoja piirilevylle. Piikkien juottaminen polulla riittää.

Älä unohda, että kaiuttimilla ja diodeilla on napaisuus. Komponenteissasi on yksi kaiutin ja yksi diodi. Diodille musta viiva on sen negatiivinen puoli tai katodi.

Vaihe 7: Kotelo

Kotelo
Kotelo
Kotelo
Kotelo
Kotelo
Kotelo

Päätin suunnitella hienon kotelon luovalla tavalla. Olin huolissani sen oudosta muodosta suunnittelun aikana, mutta lopussa se ei ollut niin paha. Ainakin se näyttää flyygeliltä ja tuntuu hyvältä kädessäsi!

Klassisen kuusikulmaisen kuutiomuodon sijasta, jossa on 6 kasvoa, suunnittelin monikerroksisen kotelon. Kukin kerros on alhaalta ylöspäin alemmalle kerrokselleen. (Nimesin ne L0 - L6, alhaalta ylös)

Värit ja paksuus

Voit käyttää kahta täydentävää väriä luodaksesi vahvimman kontrastin, kuten:

  • Punainen ja vihreä
  • Sininen ja oranssi
  • Keltainen ja violetti
  • Sininen ja keltainen

Käytin yläkerroksessa kirkasta akryylia, joten näet laitteen sisälle.

Yläkerroksen (kerroksen-6) paksuuden tulee olla 2 mm, muiden kerrosten (kerros-0-kerros-5) paksuuden tulee olla 4 mm. Jos haluat käyttää 2,8 mm: n akryylisuojaa, kuten minä, ei ole ongelma. Mutta sinun on leikattava kaksi sarjaa kerroksesta 1 ja kerroksesta 3 offsetia varten.

Aloita kotelon kokoaminen alimmasta kerroksesta (L0). Aseta levy sen päälle, käytä lyhyempiä ruuveja ja kiristä se muttereilla. Voit nyt kiinnittää neljä pidempää ruuvia kerroksen 0 pohjasta. Jotain tornin kaltaista. Sitten voit helposti jatkaa muiden kerrosten asentamista niihin.

Huomautus: Voit käyttää valinnaista aluslevyä pohjakerroksen ja levyn välissä.

Olen myös lisännyt tietoviestejä laiteportteihin (virta ja micro SD -kortti). Voit käyttää laserkaiverrusta yläkerroksessa.

Olen sisällyttänyt sekä CDR- että DXF -tiedostomuodot. Voit ladata ne, muokata niitä ja käyttää niitä laserleikkauksessa.

Vaihe 8: Web -pohjaisen käyttöliittymän käyttäminen

Web -pohjaisen käyttöliittymän käyttäminen
Web -pohjaisen käyttöliittymän käyttäminen

Käynnistä laite

Voit käynnistää laitteen millä tahansa 5 voltin mikro -USB -laturilla. Liitä mikro -USB laitteen virtaporttiin, joka on NodeMCU: n mikro -USB -tulo.

Pääsy User Interacen

Muistatko, että olemme ladanneet joitakin tiedostoja ESP8266 Flash -tiedostojärjestelmään? On aika käyttää sitä. Tarvitset vain IP -osoitteen, joka on määritetty verkkoon ESP8266. IP -osoitteen voi löytää monella eri tavalla. Luettelen joitain niistä täällä:

  • Reitittimen määrityssivulla, jossain DHCP -vuokraluettelossa, näet luettelon laitteista, joilla on IP -osoitteet verkossa.
  • Microsoft Windowsissa ja macOS: ssa voit suorittaa komentoja, kuten arp -a, terminaalissa.
  • Androidissa ja iOS: ssa voit käyttää sovelluksia, kuten Fing. (Android / iOS)
  • Linuxissa voit käyttää työkaluja, kuten Nmap.

Kun olet löytänyt IP -osoitteen, avaa se verkkoselaimellasi. Voit muokata toimintajonoa ottamalla käyttöön / poistamalla käytöstä moduuleja.

Vaihe 9: Viimeiset ajatukset

Tämä projekti vei paljon aikaa ja energiaa. Voit lisätä monia muita vaihtoehtoja henkilökohtaiseen avustajaan. Olen jättänyt joitakin osia avoinna tulevaa kehitystä varten. Jotkut osat kuten:

  1. Lisää palveluita ja moduulia. Esimerkiksi numeroiden laskeminen, nopan heittäminen tai kolikon kääntäminen.
  2. Kun laite on muodostanut yhteyden verkkoon, laite voi puhua IP -osoitteen. Voit lisätä tämän vaihtoehdon yksinkertaistaaksesi IP -osoitteen etsimistä.
  3. Lisätty mahdollisuus muuttaa WiFi -asetuksia verkkopohjaisessa ohjauspaneelissa.
  4. Lisätty mahdollisuus muuttaa palveluasetuksia verkkopohjaisessa ohjauspaneelissa. (Heidän html -lomakkeensa on valmis. Sinun on käsiteltävä pyynnöt)
  5. Lisää äänivastauksia laitteen eri tiloissa.
  6. Kirjautumissivun lisääminen verkkopohjaiseen ohjauspaneeliin. Voit tehdä tämän lisäämällä / vertaamalla evästeitä HTTP -otsikkoriville.

Ja haluaisin tietää ajatuksianne tästä opettavaisesta.:)

Suositeltava: