Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:42
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ö
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
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
"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
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
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:
Toinen enimmäkseen 3D -tulostettu kiertokytkin: 7 vaihetta (kuvilla)
Toinen lähinnä 3D -tulostettu kiertokytkin: Hetki sitten loin lähinnä 3D -tulostetun kiertokytkimen erityisesti Minivac 601 Replica -projektilleni. Uutta Think-a-Tron 2020 -projektiani varten tarvitsen vielä yhden kiertokytkimen. Etsin SP5T -paneeliasennuskytkintä. Lisäys
Toinen näppäimistö makroille: 3 vaihetta
Toinen näppäimistö makroille: Jos sinulla on ylimääräinen näppäimistö tai numeronäppäimistö. Voit käyttää sitä makronäppäimistönä. Kun painat näppäintä, tapahtuu esiohjelmoitu tehtävä. Esimerkiksi sovellus käynnistetään tai suoritetaan automaattisen avaimen komentosarja
Vain toinen ATtiny85 Retro -pelikonsoli: 4 vaihetta
Vielä yksi ATtiny85 Retro -pelikonsoli: Pieni retrokonsolin kaltainen kokoonpano, joka perustuu noin ATtiny85 x 0,96 OLED -laitteeseen pelitilan hyökkääjien, Tetrisin jne
YADPF (Vielä toinen digitaalinen kuvakehys): 7 vaihetta (kuvien kanssa)
YADPF (Vielä toinen digitaalinen kuvakehys): Tiedän, että tämä ei ole uutta, tiedän, olen nähnyt joitain näistä projekteista täällä, mutta olen aina halunnut rakentaa oman digitaalisen kuvakehyksen. Kaikki näkemäni kuvakehykset ovat mukavia, mutta etsin jotain muuta, etsin todella mukavaa
Toinen MIDI -CV -laatikko: 7 vaihetta (kuvilla)
Toinen MIDI -CV -laatikko: Toinen MIDI -CV -laatikko on projekti, jonka kehitin, kun Korg MS10 koputti oveeni ja tapahtui studiossani. Koska asennukseni liittyy vahvasti MIDI: hen kaikkien instrumenttien automatisoimiseksi ja synkronoimiseksi, kun ostin MS10: n, ensimmäinen ongelma, jonka minulla oli