Sisukord:

WiFi temperatuurilogija (koos ESP8266 -ga): 11 sammu (piltidega)
WiFi temperatuurilogija (koos ESP8266 -ga): 11 sammu (piltidega)

Video: WiFi temperatuurilogija (koos ESP8266 -ga): 11 sammu (piltidega)

Video: WiFi temperatuurilogija (koos ESP8266 -ga): 11 sammu (piltidega)
Video: ENDER 3 PRO'YU CEP TELEFONU İLE UZAKTAN KONTROL ETMEK|SHELLY 1 WIFI RELAY SWITCH 2024, Juuli
Anonim
Image
Image
Materjalid
Materjalid

Tere, mul on hea meel teid siin näha. Loodan, et sellest juhendist leiate kasulikku teavet. Saatke mulle julgelt ettepanekuid, küsimusi… Siin on mõned põhiandmed ja kiire ülevaade projektist. Mobiilikasutajatele: video. Tänan, andke mulle teada, mida arvate projektist kommentaaride osas. Ostsin hiljuti proovimiseks NodeMcu (esp8266 põhinev) plaadi, nii et see pole tõesti arenenud projekt. Kuid see töötab ja see on see, mida ma vajan, nii et see on korras. Selle andmekoguja põhifunktsioon on koguda temperatuuri ja salvestada see serverisse. See võimaldab kasutajatel andmeid ja graafikuid võrgus kontrollida isegi siis, kui nad ei ole logija samas kohas (näiteks ilmajaamas). Teine kasulik funktsioon on koodis sisalduv OTA värskendus, mis võimaldab kasutajal tarkvara hõlpsalt värskendada ja kohandada. Analüüsin kahte andurit ja nendega seotud hankimismeetodit, et tasakaalustada kõik plussid ja miinused.

Spoiler: pärast väikest katsetamist leidsin, et digitaalne andur nagu DS18B20 on parim lahendus, kuna see pakub stabiilsust ja suuremat täpsust. See on juba veekindel ja kaabliga.

Samm: materjalid

Materjalid
Materjalid
Materjalid
Materjalid
Materjalid
Materjalid

See on minimaalne projekt, millel on vaid mõned välised komponendid, selle jaoks on materjalide nimekiri tõesti lühike. Vaatame siiski, millist materjali soovitakse:

  • NodeMcu V3 (või mis tahes ühilduv ESP8266 mikroprotsessor);
  • RGB led (ühine anood);
  • LED -takistid (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
  • DS18B20 (Maxim integreeritud termomeeter);
  • LM35 (Texas Instrument termomeeter);
  • Väline aku (valikuline);
  • Kaabel;
  • Pistik (et muuta see "arenenumaks");
  • Kast (valikuline, jällegi, et muuta see "arenenumaks");
  • LED -hoidik (valikuline);

Märkus: Nagu ma ütlesin, peate valima ühe kahest meetodist. Kui valite termomeetri LM35, vajate veel mõnda komponenti:

  • Attiny45/85;
  • AVR -i programmeerija (või Arduino kui ISP);
  • Takisti (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
  • 2,54 mm ribaliides (valikuline)
  • Diood (2x1N914)
  • Perfboard või PCB;

2. samm: anduri valimine

Anduri valimine
Anduri valimine

Anduri valimine võib olla keeruline samm: tänapäeval on tonni andureid (TI pakub 144 erinevat elementi), nii analoog- kui ka digitaalseid, erineva temperatuurivahemiku, täpsuse ja korpusega. Analoogandurid (TI -lt 46 osa saadaval):

  • Andmelogijat saab hõlpsalt muuta temperatuurilt teisele kogusele (pinge, vool jne);
  • Võib olla veidi odavam;
  • Lihtne kasutada, kuna see ei vaja spetsiaalset raamatukogu;

Miinused:

  • Nõuda ADC -d (mis võib mõjutada mõõtmise täpsust) ja muid väliseid komponente. Kuna esp8266 -l on ainult üks ADC (ja mitte päris täpne), soovitaksin kasutada välist.
  • Vajab müra summutavat spetsiaalset kaablit, kuna mis tahes indutseeritud pinge võib tulemust muuta.

Pärast natuke mõtlemist otsustasin kasutada LM35, lineaarset andurit, mille skaalakoefitsient on +10 mV/° C ja mille täpsus on 0,5 ° C, ning väga väikese voolu (umbes 60uA) tööpingega 4–30 V. Täpsema teabe saamiseks soovitan vaadata andmelehte: LM35.

Digitaalsed andurid (väga soovitatav) Plussid:

Peaaegu kõik välised komponendid on vajalikud;

Integreeritud ADC

Miinused:

Taotlege raamatukogu või tarkvara digitaalse signaali dekodeerimiseks (I2C, SPI, jada, üks traat jne);

Veel kallim;

Olen valinud DS18B20, kuna leidsin Amazonist 5 veekindla anduri komplekti ja kuna see on Internetis laialdaselt dokumenteeritud. Peamine omadus on 9-12-bitine mõõtmine, 1-juhtmeline buss, 3,0 kuni 5,5 toitepinge, 0,5 ° C täpsus. Jällegi, siin on üksikasjalikumalt andmeleht: DS18B20.

3. samm: LM35

LM35
LM35
LM35
LM35
LM35
LM35

Analüüsime, kuidas olen rakendanud välise ADC ja muu funktsiooni LM35 termomeetrile. Leidsin kolme juhtmega kaabli, ühe varjestusega ja kaks ilma. Otsustasin lisada anduri lähedal asuva toitepinge stabiliseerimiseks kondensaatori. Seadme analoogtemperatuuri digitaalseks teisendamiseks olen kasutanud Attiny85 mikroprotsessorit dip8 paketis (lisateabe saamiseks vaadake uuesti andmelehte: attiny85). Meie jaoks on kõige olulisem 10 -bitine ADC (pole tegelikult parim, kuid minu jaoks piisavalt täpne). Esp8266 -ga suhtlemiseks otsustasin kasutada jadaühendust, pidades meeles, et esp8266 töötab 3.3V ja attiny85 5V juures (kuna see vajab anduri toiteallikat). Selle saavutamiseks kasutasin lihtsat pingejaoturit (vt skeemi). Negatiivse temperatuuri lugemiseks peame lisama mõned välised komponendid (2x1N914 ja 1x18k takisti), kuna ma ei taha negatiivset toiteallikat kasutada. Siin on kood: TinyADC hoidla. Märkus: selle koodi koostamiseks peate installima attiny to ide (sisestage see valikusse: https://drazzy.com/package_drazzy.com_index.json), kui te ei tea, kuidas seda teha, otsige lihtsalt Google'ist. Või laadige.hex -fail otse üles.

4. samm: DS18B20

DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20

Ostsin need andurid Amazonist (5 maksab umbes 10 €). See saabus koos roostevabast terasest kattega ja 1 m pikkuse kaabliga. See andur võib taastada 9–12 -bitise temperatuuri andmed. Samasse tihvti saab ühendada palju andureid, kuna kõigil neil on ainulaadne ID. DS18B20 ühendamiseks esp8266 -ga saate lihtsalt järgida skemaatikat (teine foto). Kuna olen otsustanud, et minu logijal oleks olnud kolm sondi, olen pidanud eristama, kumb on kumb. Nii et ma mõtlesin anda neile tarkvara kaudu seotud värvi nende aadressile. Olen kasutanud mõnda termokahanevat toru (kolmas foto).

Samm: ESP8266 kood

Kood ESP8266
Kood ESP8266
Kood ESP8266
Kood ESP8266

Kuna olen selles maailmas uus, otsustasin kasutada palju raamatukogusid. Nagu sissejuhatuses öeldud, on peamised omadused järgmised:

  • OTA värskendus: te ei pea esp8266 iga kord koodi üles laadimiseks arvutiga ühendama (peate seda tegema ainult esimest korda);
  • Traadita ühenduse haldur, kui traadita võrk muutub, ei pea te visandit uuesti laadima. Saate lihtsalt esp8266 pääsupunktiga ühenduvad võrguparameetrid uuesti konfigureerida;
  • Thingspeaki andmete edastamine;
  • Toetavad nii LM35 kui ka DS18B20;
  • Lihtne kasutajaliides (RGB LED näitab kasulikku teavet);

Palun vabandage, sest minu tarkvara ei ole parim ja see pole tõesti hästi tellitud. Enne seadmesse üleslaadimist peate muutma mõnda parameetrit, et see sobiks teie seadistusega. Siit saate tarkvara alla laadida. Tavaline LM35 ja DS18B20 konfiguratsioon Rida 15 kuni 23.

#define red YOURPINHERE #define roheline YOURPINHERE

#define blue YOURPINHERE const char* host = "vali hosti aadress"; // pole tegelikult vajalik, võite jätta esp8266-webupdate const char* update_path = "/firmware"; // uuendamise aadressi muutmiseks ex: 192.168.1.5/firmware const char* update_username = "YOURUSERHERE"; const char * update_password = "YOURPASSWORDHERE; allkirjastamata pikk myChannelNumber = CHANNELNUMBERHERE; const char * myWriteAPIKey =" WRITEAPIHERE ";

6. samm: ESP8266 Kood: LM35 kasutaja

Peate ühendama atiny plaadi esp8266 -ga, ADC -seadme toiteks kasutage VU -nööpi ja G -tihvti. Peate valima, millist tihvti soovite jadakommunikatsiooniks kasutada (riistvara seeriavaba hoidmiseks silumiseks). Tx -pin tuleb valida, kuid seda tegelikult ei kasutata. (Rida 27). TarkvaraSerial mySerial (RXPIN, TXPIN); Peal peate lisama: #define LM35USER

Samm 7: ESP8266 Kood: DS18B20 kasutaja

Esimese toiminguna peate tuvastama seadme aadressi iga anduri jaoks. Kompileerige ja programmeerige see kood esp -le ja otsige tulemusi järjestikku. Koodi leiate siit (otsige seda pealkirja lehelt: «Loe üksikuid DS18B20 sisemisi aadresse»). Aadressi saamiseks ühendage ainult üks andur, tulemused peaksid olema umbes sellised (siin on juhuslik arv! Just näiteks): 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12Siis peate jaotises minu koodi muutma " DS18B20 "(rida 31 kuni 36) konfiguratsioon:

#define ONE_WIRE_BUS ONEWIREPINHERE #define TEMPERATURE_PRECISION TEMPBITPRECISION // (9 kuni 12) #define delayDallas READINTERVAL // (millisekundites on minimaalne 15s või 15000mS) DeviceAddress blueSensor = {0xx, 0x12}; // MUUDA OMA AADRESSIGA DeviceAddress redSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // MUUDA OMA AADRESSIGA DeviceAddress greenSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // MUUDATA OMA AADRESSIGA Peal tuleb lisada: #define DSUSER

8. samm: ESP8266 Väike trikk

ESP8266 Väike trikk
ESP8266 Väike trikk

Pärast väikest katsetamist leidsin, et kui ühendate esp8266 ilma programmeerimiseta, ei käivita see koodi enne, kui vajutate ühe korra lähtestamist. Selle probleemi lahendamiseks avastasin pärast mõningast uurimistööd, et peate lisama tõmbetakisti 3,3 V-lt D3-le. See käsib protsessoril koodi välkmälust laadida. Selle meetodi abil saab D3 -d kasutada otse DS18B20 andurite sisestamiseks.

9. samm: esmakordne kasutamine

Esmakordne operatsioon
Esmakordne operatsioon
Esmakordne operatsioon
Esmakordne operatsioon

Kui olete koodi õigesti üles laadinud, kuid ei kasuta kunagi Wifi halduri kogu, on aeg oma WiFi -ühendus konfigureerida. Oodake, kuni näete, et RGB -LED hakkab vilkuma kiiremini kui varem, seejärel otsige oma mobiiltelefoni või arvutiga wifi -võrku nimega "AutoConnectAp" ja looge ühendus. Pärast ühenduse loomist avage veebibrauser ja sisestage 192.168.4.1, leiate wifihalduri GUI liidese (vt fotosid) ja vajutage "Wifi seadistamine". Oodake, kuni esp8266 otsib WiFi -võrke, ja valige soovitud võrk. Sisestage parool ja vajutage "salvesta". Esp8266 taaskäivitub (seekord ei hooli RGB juhtimisest, sest see väljastab juhuslikku teavet) ja loob võrguga ühenduse.

10. samm: järeldus

Järeldus
Järeldus
Järeldus
Järeldus
Järeldus
Järeldus
Järeldus
Järeldus

Lõppkokkuvõttes on siin graafik, mis on võetud andmesalvestajast minu sügavkülmiku temperatuuri registreerimisel. Oranž on DS18B20 ja sinine LM35 ja selle vooluring. Näete suurimat täpsuse erinevust digitaalsest analooganduriga (minu kehva "ADC vooluahelaga"), mis annavad mõned mittefüüsilised andmed. Kokkuvõtteks, kui soovite selle loggeri ehitada, soovitan kasutada digitaalset temperatuuriandurit DS18B20, kuna see on lihtsam lugeda ja peaaegu "plug and play", see on stabiilsem ja täpsem, töötab 3,3 V pingel ja nõuab paljude andurite jaoks ainult ühte tihvti. Täname tähelepanu eest, loodan, et see projekt on teile hea ja olete leidis kasulikku teavet. Ja kes tahab seda mõista, soovin, et annaksin kogu vajaliku teabe. Kui teil pole võimalust kõike küsida, vastan hea meelega kõigile küsimustele. Kuna ma pole inglise keele oskaja, andke mulle teada, kui midagi on valesti või arusaamatu. Kui teile see projekt meeldis, palun hääletage see võistluste poolt ja/või jätke kommentaar ☺. See julgustab mind jätkama uue sisu uuendamist ja avaldamist. Aitäh.

Soovitan: