Sisällysluettelo:
- Vaihe 1: Materiaalit
- Vaihe 2: Anturin valinta
- Vaihe 3: LM35
- Vaihe 4: DS18B20
- Vaihe 5: ESP8266 -koodi
- Vaihe 6: ESP8266 Koodi: LM35 -käyttäjä
- Vaihe 7: ESP8266 Koodi: DS18B20 Käyttäjä
- Vaihe 8: ESP8266 Pikku temppu
- Vaihe 9: Ensimmäinen käyttökerta
- Vaihe 10: Johtopäätös
Video: WiFi -lämpötilan kirjaaja (ESP8266): 11 vaihetta (kuvien kanssa)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Hei, kiva nähdä sinut täällä. Toivon, että tästä ohjeesta löydät hyödyllistä tietoa. Lähetä minulle ehdotuksia, kysymyksiä… Tässä muutamia perustietoja ja nopea yleiskatsaus projektista. Mobiilikäyttäjille: Video. Kerro, mitä mieltä olet projektista kommenttiosassa, kiitos. Olen äskettäin ostanut NodeMcu -levyn (esp8266 -pohjainen) vain kokeillakseni, joten tämä ei ole todella edistynyt projekti. Mutta se toimii ja sitä tarvitsen, joten se on ok. Tämän dataloggerin päätoiminto on kerätä lämpötila ja tallentaa se palvelimelle. Tämän avulla käyttäjät voivat tarkistaa tiedot ja kaavion verkossa, vaikka he eivät olisikaan samassa paikassa kuin loggeri (esimerkiksi sääasemalla). Toinen hyödyllinen ominaisuus on koodiin sisältyvä OTA -päivitys, jonka avulla käyttäjä voi päivittää ja muokata ohjelmistoa helposti. Analysoin kahta anturia ja niihin liittyvää hankintamenetelmää tasapainottamaan kaikki edut ja haitat.
Spoileri: Hieman testin jälkeen huomasin, että digitaalinen anturi, kuten DS18B20, on paras ratkaisu, koska se tarjoaa vakautta ja suurempaa tarkkuutta. Se on jo vedenpitävä ja kaapelin kanssa.
Vaihe 1: Materiaalit
Tämä on minimaalinen hanke, jossa on vain muutama ulkoinen komponentti, sillä tätä varten BOM -luettelo on todella lyhyt. Katsotaan kuitenkin, mitä materiaalia pyydetään:
- NodeMcu V3 (tai mikä tahansa yhteensopiva ESP8266 μ -prosessori);
- RGB -led (yhteinen anodi);
- LED -vastukset (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
- DS18B20 (integroitu Maxim -lämpömittari);
- LM35 (Texas Instrument -lämpömittari);
- Ulkoinen akku (valinnainen);
- Kaapeli;
- Liitin ("kehittyneemmäksi");
- Laatikko (valinnainen, jälleen "kehittyneemmän" tekemiseksi);
- LED -pidike (valinnainen);
Huomautus: Kuten sanoin, sinun on valittava toinen kahdesta menetelmästä. Jos valitset LM35 -lämpömittarin, tarvitset muutamia muita komponentteja:
- Attiny45/85;
- AVR -ohjelmoija (tai Arduino Internet -palveluntarjoajana);
- Vastus (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
- 2,54 mm: n nauhaliitin (valinnainen)
- Diodi (2x1N914)
- Perfboard tai PCB;
Vaihe 2: Anturin valinta
Anturin valinta voi olla vaikea askel: nykyään on tonnia antureita (TI tarjoaa 144 erilaista elementtiä), sekä analogisia että digitaalisia, eri lämpötila -alueilla, tarkkuudella ja kotelolla.
- Dataloggeri voidaan helposti vaihtaa lämpötilasta toiseen määrään (jännite, virta,…);
- Voi olla hieman halvempaa;
- Helppokäyttöinen, koska se ei vaadi erityistä kirjastoa;
Haittoja:
- Vaatii ADC: n (joka voi vaikuttaa mittaustarkkuuteen) ja muita ulkoisia komponentteja. Koska esp8266: ssa on vain yksi ADC (eikä se ole oikein), suosittelen käyttämään ulkoista.
- Tarvitsee erillisen kaapelin, jossa on melunvaimennus, koska mikä tahansa indusoitu jännite voi muuttaa tulosta.
Hetken harkinnan jälkeen päätin käyttää LM35: tä, lineaarista anturia, jonka skaalauskerroin on +10 mV/° C ja jonka tarkkuus on 0,5 ° C, ja erittäin pienen virran (noin 60 uA), jonka käyttöjännite on 4–30 V. Jos haluat lisätietoja, suosittelen tutustumaan tietolomakkeeseen: LM35.
Digitaaliset anturit (erittäin suositeltavaa) Hyödyt:
Lähes kaikki ulkoiset komponentit tarvitaan;
Integroitu ADC
Haittoja:
Pyydä kirjastoa tai ohjelmistoa digitaalisen signaalin purkamiseen (I2C, SPI, sarja, yksi johto,…);
Kalliimpi;
Olen valinnut DS18B20: n, koska löysin Amazonista 5 vedenpitävän anturin sarjan ja koska se on laajalti dokumentoitu Internetissä. Pääominaisuus on 9-12-bittinen mittaus, 1-johtiminen väylä, 3,0-5,5 syöttöjännite, 0,5 ° C: n tarkkuus. Jälleen tarkemmin tässä on tietolomake: DS18B20.
Vaihe 3: LM35
Analysoidaan, kuinka olen ottanut käyttöön ulkoisen ADC: n ja muut ominaisuudet LM35 -lämpömittarille. Löysin kaapelin, jossa oli kolme johtoa, joista toinen oli suojattu ja kaksi ilman. Päätin lisätä irrotettavan kondensaattorin vakauttamaan syöttöjännitteen anturin lähellä. Muuntamaan analogisen lämpötilan digitaaliseksi, olen käyttänyt Attiny85 -mikroprosessoria dip8 -paketissa (lisätietoja on jälleen datasheetissä: attiny85). Tärkein asia meille on 10 -bittinen ADC (ei oikeastaan paras, mutta tarpeeksi tarkka minulle). Kommunikoidakseni Esp8266: n kanssa päätin käyttää sarjaliikennettä pitäen mielessä, että esp8266 toimii 3,3 V: n ja attiny85: n kanssa 5 V: lla (koska se tarvitsee virran anturille). Tämän saavuttamiseksi käytin yksinkertaista jännitteenjakajaa (katso kaavio). Negatiivisen lämpötilan lukemiseksi meidän on lisättävä joitain ulkoisia komponentteja (2x1N914 ja 1x18k vastus), koska en halua käyttää negatiivista virtalähdettä, tässä on koodi: TinyADC -arkisto. attiny to ide (lisää tämä vaihtoehtoon: https://drazzy.com/package_drazzy.com_index.json), jos et tiedä miten se tehdään, etsi Googlesta. Tai lataa.hex -tiedosto suoraan.
Vaihe 4: DS18B20
Ostin nuo anturit Amazonista (5 maksaa noin 10 €). Se tuli ruostumattomasta teräksestä valmistetulla kannella ja 1 metrin pituisella kaapelilla. Tämä anturi voi palauttaa 9-12 bitin lämpötilatiedot. Paljon anturia voidaan kytkeä samaan nastaan, koska niillä kaikilla on yksilöllinen tunnus. DS18B20: n liittämiseksi laitteeseen esp8266 voit seurata kaaviota (toinen kuva). Koska olen päättänyt, että kirjaajallani olisi ollut kolme anturia, minun on täytynyt erottaa kumpi. Joten ajattelin antaa heille värin ohjelmiston kautta heidän osoitteeseensa. Olen käyttänyt lämpökutistuvaa putkea (kolmas kuva).
Vaihe 5: ESP8266 -koodi
Koska olen uusi tässä maailmassa, päätin käyttää paljon kirjastoja. Kuten johdannossa todettiin, tärkeimmät ominaisuudet ovat:
- OTA -päivitys: sinun ei tarvitse kytkeä esp8266 -tietokonetta joka kerta, kun sinun on lähetettävä koodi (sinun on tehtävä se vain ensimmäisen kerran);
- Langaton hallinta, jos langaton verkko muuttuu, sinun ei tarvitse ladata luonnosta uudelleen. Voit yksinkertaisesti määrittää uudelleen verkon parametrit, jotka muodostavat yhteyden esp8266 -tukiasemaan;
- Thingspeak -tiedonsiirto;
- Sekä LM35 että DS18B20 tuettu;
- Yksinkertainen käyttöliittymä (RGB -merkkivalo ilmaisee hyödyllisiä tietoja);
Pyydä anteeksi, koska ohjelmistoni ei ole paras eikä se ole oikein järjestetty. Ennen kuin lataat laitteeseen, sinun on muutettava joitain parametreja, jotta koodi sopii asetuksiisi. Täältä voit ladata ohjelmiston Yleiset LM35- ja DS18B20 -kokoonpanot Sinun on vaihdettava OTA -päivityksen pin -määritys, tunnus, kanavan numero, käyttäjä ja salasana. Linja 15-23.
#define red YOURPINHERE #define green YOURPINHERE
#define blue YOURPINHERE const char* host = "valitse isännän osoite"; // ei oikeastaan tarvita voit jättää esp8266-webupdate const char* update_path = "/firmware"; // päivitysosoitteen muuttaminen, esim. 192.168.1.5/firmware const char* update_username = "YOURUSERHERE"; const char * update_password = "YOURPASSWORDHERE; unsigned long myChannelNumber = CHANNELNUMBERHERE; const char * myWriteAPIKey =" WRITEAPIHERE ";
Vaihe 6: ESP8266 Koodi: LM35 -käyttäjä
Sinun on liitettävä attiny -kortti laitteeseen esp8266, jotta ADC -yksikkö saa virtansa VU- ja G -nastalla. Sinun on valittava, mitä pin -näppäintä haluat käyttää sarjaliikenteessä (jotta laitteisto pysyy sarjattomana virheenkorjausta varten). Tx -nasta on valittava, mutta sitä ei käytetä. (Rivi 27). SoftwareSerial mySerial (RXPIN, TXPIN); Alkuun sinun on lisättävä: #define LM35USER
Vaihe 7: ESP8266 Koodi: DS18B20 Käyttäjä
Ensimmäisenä toimenpiteenä sinun on tunnistettava laitteen osoite jokaiselle anturille. Käännä ja ohjelmoi tämä koodi esp: lle ja etsi tuloksia sarjasta. Koodi löytyy täältä (etsi tätä otsikkoa sivulta: «Lue yksittäiset DS18B20 -sisäiset osoitteet»). Liitä vain yksi anturi saadaksesi osoitteen, tulosten pitäisi olla jotain tällaista (satunnaisluku tässä! Esimerkkinä): 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12Sitten sinun on vaihdettava koodini osiossa " Konfigurointi DS18B20 "(rivit 31-36)":
#define ONE_WIRE_BUS ONEWIREPINHERE #define TEMPERATURE_PRECISION TEMPBITPRECISION // (9-12) #define delayDallas READINTERVAL // (Millisekunneissa vähintään 15s tai 15000mS) DeviceAddress blueSensor = {0x 0, 0, 0x, 0x, 0xx, 0x12}; // MUUTA OSOITTEESI DeviceAddress redSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // MUUTA OSOITTEESI DeviceAddress greenSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // MUUTA OSOITTEESI Alkuun sinun on lisättävä: #define DSUSER
Vaihe 8: ESP8266 Pikku temppu
Pienen testauksen jälkeen huomasin, että jos liität esp8266: n ilman ohjelmointia, se ei suorita koodia ennen kuin painat reset -painiketta kerran. Tämän ongelman ratkaisemiseksi havaitsin pienen tutkimuksen jälkeen, että sinun on lisättävä vetovastus 3,3 V: sta D3: een. Tämä kertoo prosessorille, että se lataa koodin flash -muistista. Tällä menetelmällä D3 voidaan käyttää suoraan DS18B20 -antureiden tietojen syöttämiseen.
Vaihe 9: Ensimmäinen käyttökerta
Jos olet ladannut koodin oikein, mutta et koskaan käytä Wifi Manager -kirjastoa, on aika määrittää wifi -yhteys. Odota, kunnes näet RGB -merkkivalon vilkkuvan aiempaa nopeammin, ja etsi sitten matkapuhelimellasi tai tietokoneellasi wifi -verkko nimeltä "AutoConnectAp" ja muodosta yhteys. Kun olet muodostanut yhteyden, avaa verkkoselain ja kirjoita 192.168.4.1, löydät wifi -hallintaohjelman käyttöliittymän (katso kuvat) ja paina "Määritä Wifi". Odota, että esp8266 etsii wifi -verkkoja, ja valitse haluamasi verkko. Lisää salasana ja paina "tallenna". Esp8266 käynnistyy uudelleen (älä välitä RGB -ledistä tällä kertaa, koska se antaa satunnaisia tietoja) ja muodostaa yhteyden verkkoon.
Vaihe 10: Johtopäätös
Lopuksi tässä on kaavio, joka on otettu tiedonkeruulaitteesta toiminnassa pakastimen lämpötilan kirjaamisen aikana. Oranssi on DS18B20 ja sininen LM35 ja sen piiri. Näet suurimman eron tarkkuudessa digitaalisesta analogiseen anturiin (huono ADC-piirini), jotka antavat joitain ei-fyysisiä tietoja. Yhteenvetona, jos haluat rakentaa tämän loggerin, ehdotan digitaalisen DS18B20-lämpötila-anturin käyttöä, koska se on helpompi lukea ja melkein "plug and play", se on vakaampi ja tarkempi, se toimii 3,3 V: n jännitteellä ja vaatii vain yhden nastan monille antureille. Kiitos huomiosta, toivon, että tämä projekti on hyvä sinulle ja olet löytyi hyödyllistä tietoa. Ja jotka haluavat ymmärtää sen, toivon, että annoin kaikki tarvittavat tiedot. Jos en ole vapaa kysymään kaikkea, vastaan mielelläni kaikkiin kysymyksiin. Koska en ole englantia puhuva, ilmoita minulle, jos jokin on pielessä tai ei ymmärrettävää. Jos pidit tästä projektista, äänestä sitä kilpailujen puolesta ja/tai jätä kommentti ☺. Se kannustaa minua jatkuvasti päivittämään ja julkaisemaan uutta sisältöä. Kiitos.
Suositeltava:
Infrapuna -anturin käyttäminen Arduinon kanssa: 8 vaihetta (kuvien kanssa)
Infrapuna -anturin käyttäminen Arduinon kanssa: Mikä on infrapuna -anturi? . IR -signaali
DIY -sykemittari (kirjaaja): 4 vaihetta
DIY -sykemittari (kirjaaja): Tässä projektissa näytän sinulle, kuinka kaupallinen älykello mittaa ja valvoo sykettäsi, ja sen jälkeen näytän sinulle, kuinka luoda DIY -piiri, joka voi periaatteessa tehdä saman lisäyksellä, että se voi myös tallentaa syketiedot
Liekin kirjaaja: 7 vaihetta
Flame Logger: Tämä on yksinkertainen projekti; tehdä liekki -anturi ja tallentaa tiedot. Halusin kytkeä jotain kattilaani kirjataksesi liekin ajan. Koska kattila on vanhempi, tämä näytti olevan helpoin tapa, jota en ole nähnyt
Kuvien tallentaminen tehtävää varten: 4 vaihetta (kuvien kanssa)
Kuvien tallentaminen tehtävää varten: 1. Avaa uusi Google -asiakirja ja suojaa kuvat tällä sivulla. Käytä ctrl (ohjaus) ja " c " kopioitava näppäin 3. Käytä ctrl (control) ja " v " liitettävä avain
Kuvien tekeminen saumattomiksi vain vaaka- tai pystysuunnassa ("The GIMP"): 11 vaihetta (kuvien kanssa)
Kuvien tekeminen saumattomiksi vain vaaka- tai pystysuunnassa ("The GIMP"): Jos yrität "Tee saumaton" -laajennusta GIMP: ssä, se tekee kuvasta saumattoman sekä vaaka- että pystysuunnassa samanaikaisesti. Se ei salli sinun tehdä siitä saumatonta vain yhdessä ulottuvuudessa. Tämä ohje auttaa sinua saamaan kuvan