Sisällysluettelo:

Toinen IoT -sääasema: 8 vaihetta
Toinen IoT -sääasema: 8 vaihetta

Video: Toinen IoT -sääasema: 8 vaihetta

Video: Toinen IoT -sääasema: 8 vaihetta
Video: Kamera-LAMP, jossa on henkilön seuranta ja tunnistaminen. 2024, Heinäkuu
Anonim
Toinen IoT -sääasema
Toinen IoT -sääasema
Toinen IoT -sääasema
Toinen IoT -sääasema
Toinen IoT -sääasema
Toinen IoT -sääasema
Toinen IoT -sääasema
Toinen IoT -sääasema

Seuraavassa oli syntymäpäivälahja isälleni; innoittamana toisesta Instructable-ohjelmasta, jonka näin ja alunperin oli tarkoitus osoittaa hänelle itsensä rakentamispakettina. Kuitenkin aloittaessani tämän projektin työskentelyn hänen kanssaan ymmärsin hyvin nopeasti, että lahjan innoittanut alkuperäinen opetusohjelma oli vanhentunut ja että monien muiden online -opetusohjelmien selityksissä oli merkittäviä aukkoja. Siksi päätin julkaista vielä yhden IoT -sääaseman, joka toivottavasti olisi helppo seurata lomakkeen alusta loppuun.

Lisäksi tämä opas näyttää kuinka käyttää Blynkia, Google Sheetsia tai molempia anturin lukemien seurantaan ja tallentamiseen. Lisäksi Google Sheets -merkinnät kirjoitetaan suoraan taulukkoon (ilman, että sinun on käytettävä kolmannen osapuolen palvelua).

Stevenson-näytön osalta verkossa on monia saatavilla, jotka voidaan tulostaa 3D-muodossa, esim. https://www.thingiverse.com/thing:1718334. Aion rakentaa tätä tätä opetusohjelmaa varten.

Stevenson -näyttö on "instrumenttisuoja on suoja tai kotelo meteorologisille laitteille saostumista ja ulkoista lähdettä vastaan tulevaa suoraa lämpösäteilyä vastaan, samalla kun ilma pääsee kiertämään vapaasti niiden ympärillä". (Wikipedia).

Osat

  • Wemos LolIn - NodeMCU v3 (1,43 USD)
  • BME280 (lämpötila-, paine- ja kosteusanturi) (2,40 USD)
  • 6V 1000mA aurinkopaneeli (USD 9,96)
  • 5V 1A Micro USB 18650 litium -akun latausmoduulin latausmoduuli+kaksoissuojaus TP4056 (0,99 USD)
  • 4x 1,2 V: n ladattavat NiMH -akut
  • Paristopidike (4x AA, vierekkäin ja päästä päähän)
  • Micro USB -urosliittimen pistoke
  • Nippusiteet
  • 3x siipimutterit
  • Varsi tai luudatikku
  • Epoksi ja/tai superliima (jälkikäteen ajateltuna pii olisi voinut toimia paremmin)

Ohjelmisto

  • Blynk -sovellus
  • Google Sheets (jos haluat käyttää historiallisia tietoja)
  • EasyEDA (kaavion piirtämiseen)
  • Arduino IDE

Työkalut

  • Juotin
  • Juottaa
  • Lämpökutistuva letku
  • 3D tulostin
  • Liimapistooli

Vaihe 1: 3D -tulostus - Stevenson -näyttö

3D -tulostus - Stevenson -näyttö
3D -tulostus - Stevenson -näyttö
3D -tulostus - Stevenson -näyttö
3D -tulostus - Stevenson -näyttö
3D -tulostus - Stevenson -näyttö
3D -tulostus - Stevenson -näyttö

Kuten jo mainittiin, lataa tiedostot osoitteesta https://www.thingiverse.com/thing:1718334 ja tulosta tarvittavat bitit. Asennusohjeet löytyvät myös yllä olevasta linkistä. Tein joitain muutoksia (katso huomautukset alla).

Tulostetut osat ovat:

  • Top_Cover_for_m3_tapping.stl
  • Middle_Ring.stl (x5)
  • Middle_Ring_bottom.stl (x1, STL liitteenä yllä)
  • Solid_Plate.stl (x1)
  • Solid_Plate_Base.stl (x1)
  • Pole_Mount_1in_Round.stl
  • Sensor_Grid.stl
  • Electronics_Mount.stl
  • My_Solar_Cell_Mount.stl (x2, STL liitteenä yllä)

Kokoonpanojärjestys on:

  • Pujota reiät
  • Ruuvaa M3 -tangot kierreholkkeihin
  • Top_Cover
  • Solid_Plate
  • Keskimmäiset renkaat
  • Työnnä Sensor_Grid sisään
  • Electronics_Mount
  • Solid_Plate_Bottom
  • Pole_Mount
  • My_Solar_Cell_Mounts epoksataan Top_Coverin yläosaan

Porasin Solid -levyihin reikiä, jotta aurinkopaneelin latausjohto voi muodostaa yhteyden laturiin ja sitten yksi, jotta kaapeli voi kulkea ohjaimesta Sensor_Grid -anturiin.

Kun anturi on valmis, se ohjelmoitiin ottamaan seuraavat lukemat 60 minuutin välein:

  • Lämpötila
  • Kosteus
  • Paine

Huomautuksia

  • Räätälöin aurinkokennojen kiinnikkeet sopimaan paremmin aurinkokennoni pitämiseen.
  • Asensin elektroniikan Pole_Mount ja Solid_Plate väliin. Tämä ei näyttänyt tarjoavan hyvää suojaa elektroniikalle. Siksi muutin Solid_Plate -levyä niin, että siinä oli hame, joka sulkisi raon ja antaisi siten paremman suojan elektroniikalle. Jotkut yllä olevista kuvista on otettu ennen tämän muutoksen tekemistä.
  • Epoksini laskeutui pitämättä kiinni aurinkopaneelista, jonka kiinnitin sitten uudelleen superliimalla. Luulen, että joudun käyttämään silikonia.

Vaihe 2: Piiri

Piiri
Piiri
Piiri
Piiri

Kytke piiri piirustuksen mukaisesti, asenna LoLin ja BME280 3D-tulostetulle verkolle kuvan osoittamalla tavalla.

BME280 -> LiLon

  • VCC -> 3.3V
  • GND -> GND
  • SCL -> D1
  • SDA -> D2

LiLon -> LiLon

D0 -> RST (tätä tarvitaan herättämään ohjain syvästä unesta, mutta se on kytkettävä vasta, kun koodi on ladattu ohjaimeen)

HUOMAUTUS

Minulla oli haasteita sopivan LiLon -akun hankkimisessa. Myös jostain syystä minulla ei onnistunut VIN: n kautta. Sain siis virtaa seuraavasti:

  • Lähtö TP4056: sta johdotettiin uros -USB -liitäntään, joka sitten kytkettiin kortin USB -liitäntään virran saamiseksi.
  • TP4056: n B- ja B+ liitettiin AA-paristopidikkeeseen, joka sisälsi NiMH-akut.

Vaihe 3: IoT - Blynk

IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk

"Blynk on laitteisto-agnostinen IoT-alusta, jossa on muokattavissa olevat mobiilisovellukset, yksityinen pilvi, sääntömoottori ja laitehallinnan analytiikkapaneeli". Pohjimmiltaan sen avulla voit hallita ja valvoa turvallisesti etäantureita kaikkialta maailmasta Internetin kautta. Vaikka kaupallinen palvelu, jokaisella tilillä on 2000 ilmaista hyvitystä. Luottojen avulla voit liittää anturiin tai antureihin erilaisia mittareita, näyttöjä, ilmoituksia jne. Vaikka tilaushinnat eivät ole harrastajan budjetin rajoissa, ilmaiset hyvitykset riittävät tämän kaltaiseen yksinkertaiseen projektiin.

Palvelun käytön aloittamiseksi sinun on ensin ladattava Blynk -sovellus puhelimeesi/laitteellesi, luotava ja luotava tili (tai kirjauduttava sisään nykyisellä tilillä) ja luotava sitten uusi projekti seuraavasti:

  • Valitse laitteisto
  • Anna projektillesi nimi (tässä tapauksessa käytin sääasemaa).
  • Napsauta "Luo"
  • Saat sitten sähköpostitse todennuskoodin.

Sinun ei tarvitse lisätä vaadittuja widgetejä. Lisäsin 2000 ilmaisella luotollani seuraavat:

  • 3 mittaria
  • 1 Superkaavio

Mittarit ja kaaviot asetettiin liitteenä olevien valokuvien mukaisesti, ja jokaiselle annettiin oma virtuaalinen tappi, jota käytettäisiin jälkimmäisessä koodissa.

Kun olet tehnyt asetukset, voit aloittaa päivämäärän keräämisen painamalla oikeassa yläkulmassa olevaa toistopainiketta.

Katso lisätietoja

docs.blynk.cc/#getting-started.

Vaihe 4: Koodi - Arduino IDE: n valmistelu

Seuraavat kirjastot on lisättävä Arduino IDE: hen tämän projektin loppuun saattamiseksi:

  • https://github.com/adafruit/Adafruit_BME280_Library (lämpötila-, paine- ja kosteusanturin tarve)
  • https://github.com/adafruit/Adafruit_Sensor
  • https://github.com/esp8266/Arduino (tämä antaa sinulle pääsyn ESP8266 -kortille)
  • https://github.com/blynkkk/blynk-library/releases/tag/v0.6.1 (Blynk-kirjasto)
  • https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect (Google Sheets -yhteyden muodostamiseen tarvitaan

Ohjeet Arduino IDE -kirjastojen asentamiseen ovat osoitteessa

Laitteistoasetukseni ovat seuraavat:

  • Levy: NodeMCU 1.0 (ESP-12E-moduuli)
  • Latausnopeus: 115200

Kun käytät liitteenä olevaa koodia seuraavissa vaiheissa, lue aina koodin kommentit seuraavien lisäysten osalta:

  • Wifi SID
  • Wifi -salasana
  • Blynk -valtuutusavain
  • Google Script -tunnus
  • Google Sheet -jakoavain

Vaihe 5: Koodi - Blynk

Taistelin vuosien ajan saadakseni BME280 -anturin toimimaan, kunnes löysin seuraavan rivin sisältävän esimerkin.

tila = bme.begin (0x76); // Käyttämäni anturin I2C -osoite on 0x76

Näyttää siltä, että minun piti asettaa anturin osoite. Kun olin tehnyt tämän, kaikki toimi hienosti.

Blynkillä on todella mukava mobiilikäyttöliittymä, mutta sillä on kuitenkin seuraavat rajoitukset:

  • Vain 2000 ilmaista krediittiä, enemmän vaativat projektit vaativat kalliita kuukausitilauksia (ellet isännöi ja ylläpidä omaa Blynk -palvelinta).
  • Ellet isännöi omaa Blynk -palvelinta, et voi viedä historiatietoja.

Edellä esitetyistä syistä katsoin, kuinka voin integroida tiedonkeruuprosessini Google -taulukkoon. Tämä käsitellään seuraavassa osassa.

Vaihe 6: Koodi - Google Sheets

Koodi - Google Sheets
Koodi - Google Sheets
Koodi - Google Sheets
Koodi - Google Sheets
Koodi - Google Sheets
Koodi - Google Sheets

Jotta voit tallentaa lukemasi, jotta voit analysoida historiallisia tietoja myöhemmin, sinun on kirjoitettava ne jonkinlaiseen tietokantaan. HTTPSRedirect -kirjaston avulla voimme tehdä tämän kirjoittamalla tietomme Google -taulukkoon.

Tämän lähestymistavan tärkeimmät rajoitukset ovat seuraavat:

  • Ei mukavaa mobiilikäyttöliittymää
  • Google -taulukossa voi olla enintään 400 000 solua. Tässä projektissa tämä ei ole suuri ongelma, koska kestää yli 11 vuotta ennen kuin tämä raja saavutetaan.

Google Sheet on määritetty seuraavasti.

Luo Google Sheet, jossa on kaksi arkkia.

Taulukko 1: Tiedot

Tietolomake tarvitsee 4 saraketta eli päivämäärä/aika, lämpötila, kosteus, paine (sarakkeet A - D). Muotoile sarakkeet asianmukaisesti esim. Sarakkeesta A tulee päivämäärä ja aika, jotta päivämäärä ja kellonaika näkyvät soluissa.

Taulukko 2: Kojelauta

Luo koontinäyttöarkki liitteenä olevien valokuvien mukaisesti syöttämällä alla olevat kaavat:

  • B2: = laskenta (data! B: B) -1
  • B3: = B1+AIKAARVO (CONCATENATE ("00:", teksti (G7, "0")))
  • B6: = kysely (Data! A2: D, "Valitse B -järjestys A -kuvausraja 1")
  • C6: = kysely (Data! A2: D, "Valitse C -järjestys A desc limit 1")
  • D6: = kysely (Data! A2: D, "Valitse D -järjestys A desc limit 1")
  • B8: = kysely (Data! A2: D, "Valitse A -tilaus B -kuvaraja 1")
  • C8: = kysely (Data! A2: D, "Valitse tilaus C desc limit 1")
  • D8: = kysely (Data! A2: D, "Valitse tilaus D: n raja 1")
  • B9: = kysely (Data! A2: D, "Valitse B -järjestys B -kuvausraja 1")
  • C9: = kysely (Data! A2: D, "Valitse C -järjestys C -kuvausrajan 1 mukaan")
  • D9: = kysely (Data! A2: D, "Valitse D -järjestys D -kuvausrajan 1 mukaan")
  • B11: = kysely (Data! A2: D, "Valitse A, jossa B ei ole nollajärjestys B asc limit 1")
  • C11: = kysely (Data! A2: D, "Valitse A, jossa C ei ole nollajärjestys C asc limit 1")
  • D11: = kysely (Data! A2: D, "Valitse A, jossa D ei ole nollajärjestys D asc limit 1")
  • B12: = kysely (Data! A2: D, "Valitse B, jossa B ei ole nollajärjestys B asc limit 1")
  • C12: = kysely (Data! A2: D, "Valitse C, jossa C ei ole nollajärjestys C asc limit 1")
  • D12: = kysely (Data! A2: D, "Valitse D, jossa D ei ole nollajärjestys D asc limit 1")
  • G3: = 4+B2*4+29+17
  • G4: = (G2-G3)/G2
  • G6: = G2/4 G8: = G7*G6
  • G9: = (G8/60)/24
  • G10: = G9/365
  • G11: = ((((((G2-G3)/4)*G7)/60)/24/365)

Google Sheetsissä voi olla enintään 400 000 solua. Tätä käytetään yhdessä sen tosiasian kanssa, että jokainen lukema käyttää 4 solua, kuinka paljon tilaa on jäljellä ja milloin se loppuu.

Näitä kaavoja voi olla mahdollista parantaa. Tein täällä kahta asiaa, ts. Opin kyselykaavasta ja kirjoitin sitten myös jonkin kaavan siten, että voin muistaa niiden takana olevan logiikan.

"Chart Editor" -kuvakaappaus näyttää lämpötilan kuvaajan perusasetukset. Muut kaaviot on luotu samalla kokoonpanolla. Ainoa ero kaavioiden välillä oli pystysuoran akselin vähimmäisarvot (löytyvät Mukauta -välilehdestä). Mukauta -välilehdellä on myös muita asetuksia, kuten käyttöoikeuksien nimet, kaavioiden otsikot jne.

Tarvitsemme nyt Google -komentosarjan, jonka avulla voimme kirjoittaa tietomme soittamalla URL -osoitteeseen.

Käsikirjoituksen luominen

Merkitse Google Sheetin URL -osoitteeseen näppäin "d /" ja " / edit". Tämä on -Your-Google-Sheet-Sharing-Key -avaimesi-ja sitä tarvitaan alla olevassa koodissa.

Siirry seuraavaksi kohtaan Työkalut> Skriptieditori ja luo Google App Script liittämällä koodi liitteenä olevaan GS -tiedostoon. Päivitä var ss = SpreadsheetApp.openByUrl ("https://docs.google.com/spreadsheets/d/-Your-Google-Sheet-Sharing-Key–/edit"); jakaaksesi avaimesi.

Julkaise skripti nyt valitsemalla Julkaise> Ota käyttöön Web -sovelluksena.

Kopioi nykyisen verkkosovelluksen URL-osoite ja tallenna se jonnekin, kun tarvitset sitä GScriptID-tunnuksen (-Your-Google-Script-ID–) poimimiseksi. GScriptID on merkkijono "s /" ja " / exec?". Varmista, että "kenellä tahansa, jopa nimettömällä" on pääsy sovellukseen. Tämän prosessin aikana sinua pyydetään myöntämään joitakin käyttöoikeuksia. On tärkeää, että myönnät nämä.

Huomautus: Aina kun muokkaat koodiasi, sinun on luotava "uusi" projektiversio ja julkaistava se, muuten muistat edelleen samaa vanhaa koodia.

Voit nyt testata skriptiä selaamalla osoitteeseen https://script.google.com/macros/s/-Your-Google-Script-ID–/exec?Temperature=10&Humidity=11&Pressure=12. Aina kun päivität tämän linkin, Google Sheetiin tulee lisätä uusi merkintä.

Tämä yllä on otettu seuraavasta opetusohjelmasta: https://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/. Tämä opetusohjelma on kuitenkin vanhentunut, joten siihen liittyvä Arduino -koodi seuraavassa osassa on muutettu vastaamaan uusimpia HTTPSRedirect -kirjastoja.

Arduinon koodi

Katso liitteenä oleva koodi.

Vaihe 7: Koodi - Blynk ja Google Sheets

Jotta saat parhaan hyödyn molemmista maailmoista, voit yhdistää sekä Blynk- että Google Sheets -koodin.

Katso liitteenä oleva koodi.

Vaihe 8: Lopulliset kommentit

Lopulliset kommentit
Lopulliset kommentit
Lopulliset kommentit
Lopulliset kommentit

Mikään yllä olevista ei ole minun ideoitani, vaan pikemminkin tämä projekti, joka perustuu muiden ideoihin ja työhön. Olen nauttinut sen vetämisestä yhteen paikkaan. käyttämällä eri tekniikoita ja työkaluja loistavaan ja käytännölliseen projektiin. Nautin erityisesti siitä, että opin lukemieni tallentamisen Google Sheetiin. Tästä haluan kiittää ElectronicsGuya (Sujay Phadke).

Päivittää

Tämän projektin päätyttyä minun piti muuttaa langattoman verkon asetuksia. Olin nyt töissä eri tietokoneella. Muutosten lataamisen jälkeen projekti lakkasi toimimasta. Joidenkin vianmääritysten jälkeen tulin siihen tulokseen, että nukahtamistoiminto epäonnistui. Otin projektin takaisin kotiin ja latasin sen sinne (käyttäen samaa koodia) ja se toimi. Olen siis tullut siihen johtopäätökseen, että jotain on täytynyt muuttua lisäämissäni kirjastoissa. Siksi olen liittänyt tähän osaan kotikoneellani olevat kirjastot. jos joku muu törmää tähän ongelmaan.

Suositeltava: