Sisällysluettelo:

WiFi -lämpötilan kirjaaja (ESP8266): 11 vaihetta (kuvien kanssa)
WiFi -lämpötilan kirjaaja (ESP8266): 11 vaihetta (kuvien kanssa)

Video: WiFi -lämpötilan kirjaaja (ESP8266): 11 vaihetta (kuvien kanssa)

Video: WiFi -lämpötilan kirjaaja (ESP8266): 11 vaihetta (kuvien kanssa)
Video: Мониторинг солнечных панелей с помощью blynk iot 2.0 2024, Marraskuu
Anonim
Image
Image
Materiaalit
Materiaalit

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

Materiaalit
Materiaalit
Materiaalit
Materiaalit
Materiaalit
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
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

LM35
LM35
LM35
LM35
LM35
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

DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
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

ESP8266 -koodi
ESP8266 -koodi
ESP8266 -koodi
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

ESP8266 Pikku temppu
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

Ensimmäinen käyttökerta
Ensimmäinen käyttökerta
Ensimmäinen käyttökerta
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

Johtopäätös
Johtopäätös
Johtopäätös
Johtopäätös
Johtopäätös
Johtopäätös
Johtopäätös
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: