Satura rādītājs:

WiFi temperatūras reģistrētājs (ar ESP8266): 11 soļi (ar attēliem)
WiFi temperatūras reģistrētājs (ar ESP8266): 11 soļi (ar attēliem)

Video: WiFi temperatūras reģistrētājs (ar ESP8266): 11 soļi (ar attēliem)

Video: WiFi temperatūras reģistrētājs (ar ESP8266): 11 soļi (ar attēliem)
Video: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, Jūlijs
Anonim
Image
Image
Materiāli
Materiāli

Labdien, prieks jūs šeit redzēt. Es ceru, ka šajā pamācībā jūs atradīsit noderīgu informāciju. Jūtieties brīvi sūtīt man ieteikumus, jautājumus,… Šeit ir daži pamata dati un ātrs projekta pārskats. Mobilo ierīču lietotājiem: Video. Ļaujiet man zināt, ko jūs domājat par projektu komentāru sadaļā, paldies. Es nesen nopirku NodeMcu (uz esp8266 balstītu) plati, lai to izmēģinātu, tāpēc tas nav īsti progresīvs projekts. Bet tas darbojas, un tas ir tas, kas man vajadzīgs, tāpēc tas ir labi. Šī datu reģistrētāja galvenā funkcija ir savākt temperatūru un saglabāt to serverī. Tas ļauj lietotājiem tiešsaistē pārbaudīt datus un grafikus pat tad, ja viņi neatrodas tajā pašā reģistrētāja vietā (piemēram, meteoroloģiskajā stacijā). Vēl viena noderīga funkcija ir kodā iekļautais OTA atjauninājums, kas ļauj lietotājam viegli atjaunināt un pielāgot programmatūru. Es analizēšu divus sensorus un ar tiem saistīto iegūšanas metodi, lai līdzsvarotu visus plusus un mīnusus.

Spoileris: pēc nelielas pārbaudes es atklāju, ka digitālais sensors, piemēram, DS18B20, ir labākais risinājums, jo tas nodrošina stabilitāti un lielāku precizitāti. Tas jau ir ūdensizturīgs un ar kabeli.

1. solis: materiāli

Materiāli
Materiāli
Materiāli
Materiāli
Materiāli
Materiāli

Šis ir minimāls projekts, kurā ir tikai daži ārējie komponenti, tāpēc BOM saraksts būs patiešām īss. Tomēr apskatīsim, kāds materiāls tiek pieprasīts:

  • NodeMcu V3 (vai jebkurš saderīgs ESP8266 mikroprocesors);
  • RGB vadīts (kopējais anods);
  • Rezistori LED (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
  • DS18B20 (maksimālais integrētais termometrs);
  • LM35 (Texas Instrument termometrs);
  • Ārējais akumulators (pēc izvēles);
  • Kabelis;
  • Savienotājs (lai padarītu to "progresīvāku");
  • Kastīte (pēc izvēles, lai padarītu to "progresīvāku");
  • LED turētājs (pēc izvēles);

Piezīme: Kā jau teicu, jums jāizvēlas viena no divām metodēm. Ja izvēlaties termometru LM35, jums būs nepieciešama vēl viena sastāvdaļa:

  • Attiny45/85;
  • AVR programmētājs (vai Arduino kā ISP);
  • Rezistors (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
  • 2,54 mm sloksnes savienotājs (pēc izvēles)
  • Diode (2x1N914)
  • Perfboard vai PCB;

2. solis: Sensora izvēle

Sensora izvēle
Sensora izvēle

Sensora izvēle var būt grūts solis: šodien ir daudz pārveidotāju (TI piedāvā 144 dažādus elementus) gan analogos, gan digitālos ar atšķirīgu temperatūras diapazonu, precizitāti un korpusu. Analogie sensori (46 daļas pieejamas no TI):

  • Datu reģistrētāju var viegli mainīt no temperatūras uz citu daudzumu (spriegums, strāva,…);
  • Var būt nedaudz lētāk;
  • Viegli lietojams, jo tam nav nepieciešama īpaša bibliotēka;

Mīnusi:

  • Pieprasīt ADC (kas var ietekmēt mērījuma precizitāti) un citus ārējos komponentus. Tā kā esp8266 ir tikai viens ADC (un nav īsti precīzs), es ieteiktu izmantot ārēju.
  • Nepieciešams īpašs kabelis ar trokšņa noraidīšanu, jo jebkurš indukts spriegums var mainīt rezultātu.

Nedaudz padomājot, es nolēmu izmantot LM35 - lineāru sensoru ar +10 mV/° C skalas koeficientu ar 0,5 ° C precizitāti un ļoti zemu strāvu (aptuveni 60uA) ar darba spriegumu no 4 V līdz 30 V. Lai iegūtu sīkāku informāciju, iesaku skatīt datu lapu: LM35.

Digitālie sensori (ļoti ieteicams):

Gandrīz visas nepieciešamās ārējās sastāvdaļas;

Integrēts ADC

Mīnusi:

Pieprasīt bibliotēku vai programmatūru, lai atšifrētu digitālo signālu (I2C, SPI, sērijas, viens vads,…);

Dārgāks;

Es izvēlējos DS18B20, jo Amazon atradu 5 ūdensnecaurlaidīgu sensoru komplektu un tāpēc, ka tas ir plaši dokumentēts internetā. Galvenā iezīme ir 9-12 bitu mērījumi, 1 vadu kopne, 3,0 līdz 5,5 barošanas spriegums, 0,5 ° C precizitāte. Atkal, lai iegūtu sīkāku informāciju, šeit ir datu lapa: DS18B20.

3. darbība: LM35

LM35
LM35
LM35
LM35
LM35
LM35

Analizēsim, kā esmu ieviesis ārējo ADC un citu LM35 termometra funkciju. Es atradu kabeli ar trim vadiem, vienu ar ekranējumu un divus bez. Es nolēmu pievienot atvienošanas kondensatoru, lai stabilizētu barošanas spriegumu sensora tuvumā. Lai analogo temperatūru pārvērstu digitālā, esmu izmantojis Attiny85 mikroprocesoru dip8 iepakojumā (vēlreiz, lai iegūtu vairāk informācijas, skatiet datu lapu: attiny85). Vissvarīgākais mums ir 10 bitu ADC (nav īsti labākais, bet man pietiekami precīzs). Lai sazinātos ar Esp8266, es nolēmu izmantot seriālo komunikāciju, paturot prātā, ka esp8266 darbojas ar 3,3 V un attiny85 pie 5 V (kā nepieciešams sensora barošanai). Lai to panāktu, es izmantoju vienkāršu sprieguma dalītāju (skatiet shematiski). Lai lasītu negatīvo temperatūru, mums jāpievieno daži ārēji komponenti (2x1N914 un 1x18k rezistors), jo es nevēlos izmantot negatīvu barošanas avotu. Šeit ir kods: TinyADC repozitorijs. Piezīme: lai apkopotu šo kodu, jums jāinstalē attiny to ide (ievietojiet šo opcijā: https://drazzy.com/package_drazzy.com_index.json), ja nezināt, kā to izdarīt, vienkārši meklējiet Google. Vai arī tieši augšupielādējiet.hex failu.

4. darbība: DS18B20

DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20

Es nopirku šos sensorus no Amazon (5 maksā apmēram 10 €). Tas tika piegādāts ar nerūsējošā tērauda pārsegu un 1 m garu kabeli. Šis sensors var atgriezt 9 līdz 12 bitu temperatūras datus. Tajā pašā tapā var pievienot daudz sensoru, jo tiem visiem ir unikāls ID. Lai pieslēgtu DS18B20 esp8266, varat vienkārši sekot shēmai (otrā fotogrāfija). Tā kā esmu nolēmis, ka manam mežizstrādātājam būtu bijušas trīs zondes, man bija jānošķir, kurš ir kurš. Tāpēc es domāju viņiem piešķirt krāsu, izmantojot programmatūru, uz viņu adresi. Esmu izmantojis kādu termosarūkošu cauruli (trešā fotogrāfija).

5. darbība: kods ESP8266

Kods ESP8266
Kods ESP8266
Kods ESP8266
Kods ESP8266

Tā kā šajā pasaulē esmu jauns, es nolēmu izmantot daudzas bibliotēkas. Kā minēts ievadā, galvenās iezīmes ir šādas:

  • OTA atjauninājums: jums nav jāpieslēdz datoram esp8266 katru reizi, kad nepieciešams augšupielādēt kodu (tas jādara tikai pirmo reizi);
  • Bezvadu pārvaldnieks, ja mainās bezvadu tīkls, jums nav atkārtoti jāielādē skice. Jūs varat vienkārši vēlreiz konfigurēt tīkla parametrus, kas savienojas ar piekļuves punktu esp8266;
  • Thingspeak datu pārsūtīšana;
  • Tiek atbalstīti gan LM35, gan DS18B20;
  • Vienkārša lietotāja saskarne (RGB gaismas diode norāda noderīgu informāciju);

Lūdzu, atvainojiet mani, jo mana programmatūra nav labākā un tā nav īsti sakārtota. Pirms augšupielādes ierīcē ir jāmaina daži parametri, lai kods atbilstu jūsu iestatījumiem. Šeit jūs varat lejupielādēt programmatūru. Kopējā LM35 un DS18B20 konfigurācija OTA atjauninājumam ir jāmaina tapas definīcija, marķieris, kanāla numurs, lietotājs un parole. Līnija no 15 līdz 23.

#define red YOURPINHERE #define green YOURPINHERE

#define blue YOURPINHERE const char* host = "izvēlieties resursdatora adresi"; // nav īsti vajadzīgs, jūs varat atstāt esp8266-webupdate const char* update_path = "/firmware"; // lai mainītu atjaunināšanas adresi, piemēram: 192.168.1.5/firmware const char* update_username = "YOURUSERHERE"; const char * update_password = "YOURPASSWORDHERE; neparakstīts garš myChannelNumber = CHANNELNUMBERHERE; const char * myWriteAPIKey =" WRITEAPIHERE ";

6. darbība: ESP8266 Kods: LM35 lietotājs

Jums ir jāpievieno attiny plate pie esp8266, lai barotu ADC ierīci, izmantojot VU tapu un G tapu. Jums jāizvēlas, kuru tapu vēlaties izmantot seriālai saziņai (lai aparatūras sērijas nebūtu pieejamas atkļūdošanas nolūkos). Tx tapa ir jāizvēlas, bet tā netiek izmantota. (27. rinda). ProgrammatūraSerial mySerial (RXPIN, TXPIN); Augšpusē jāpievieno: #define LM35USER

7. darbība: ESP8266 Kods: DS18B20 lietotājs

Kā pirmā darbība jums jāidentificē ierīces adrese katram sensoram. Apkopojiet un ieprogrammējiet šo kodu esp un pēc kārtas meklējiet rezultātus. Kods atrodams šeit (meklējiet šo nosaukumu lapā: «Lasīt atsevišķas DS18B20 iekšējās adreses»). Pievienojiet tikai vienu sensoru, lai iegūtu adresi, rezultātiem vajadzētu būt aptuveni šādiem (nejaušs skaitlis šeit! Tieši kā piemērs): 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12Tad jums ir jāmaina mans kods sadaļā " DS18B20 "konfigurācija (no 31. līdz 36. rindai)":

#define ONE_WIRE_BUS ONEWIREPINHERE #define TEMPERATURE_PRECISION TEMPBITPRECISION // (no 9 līdz 12) #define delayDallas READINTERVAL // (Milisekundēs vismaz 15s vai 15000mS) DeviceAddress blueSensor = {0xx, 0x12}; // MAINĪT AR SAVU ADRESI DeviceAddress redSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // MAINĪT AR SAVU ADRESI DeviceAddress greenSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // MAINĪT AR SAVU ADRESI Augšdaļā jāpievieno: #define DSUSER

8. solis: ESP8266 Mazais triks

ESP8266 Mazais triks
ESP8266 Mazais triks

Pēc nelielas pārbaudes es atklāju, ka, pievienojot esp8266 bez programmēšanas, kods nedarbosies, kamēr vienreiz nenospiedīsit atiestatīšanu. Lai atrisinātu šo problēmu, pēc nelielas izpētes es atklāju, ka jums ir jāpievieno pievilkšanas rezistors no 3.3V līdz D3. Tas liks procesoram ielādēt kodu no zibatmiņas. Izmantojot šo metodi, D3 var tieši izmantot datu ievadīšanai DS18B20 sensoriem.

9. darbība. Pirmā darbība

Pirmā operācija
Pirmā operācija
Pirmā operācija
Pirmā operācija

Ja esat pareizi augšupielādējis kodu, bet nekad neizmantojat Wifi pārvaldnieka bibliotēku, ir pienācis laiks konfigurēt wifi savienojumu. Pagaidiet, līdz redzat, ka RGB gaismas diode sāk mirgot ātrāk nekā iepriekš, pēc tam ar savu mobilo tālruni vai datoru meklējiet wifi tīklu ar nosaukumu "AutoConnectAp" un izveidojiet savienojumu. Pēc savienošanas atveriet tīmekļa pārlūkprogrammu un ievadiet 192.168.4.1, jūs atradīsit wifi pārvaldnieka GUI saskarni (skatiet fotoattēlus) un nospiediet "Konfigurēt Wifi". Pagaidiet, līdz esp8266 meklē Wi -Fi tīklus, un izvēlieties vajadzīgo. Ievietojiet paroli un nospiediet "saglabāt". Esp8266 tiks restartēts (šoreiz nerūpējieties par RGB vadību, jo tas izvadīs nejaušu informāciju) un izveidos savienojumu ar tīklu.

10. solis: Secinājums

Secinājums
Secinājums
Secinājums
Secinājums
Secinājums
Secinājums
Secinājums
Secinājums

Visbeidzot, šeit ir diagramma, kas ņemta no datu reģistrētāja darbībā, reģistrējot manu saldētavas temperatūru. Oranžā krāsā ir DS18B20 un zilā krāsā LM35 un tā shēma. Jūs varat redzēt lielāko atšķirību precizitātē no digitālā uz analogo sensoru (ar manu slikto "ADC ķēdi"), kas sniedz dažus nefiziskus datus. Apkopojot, ja vēlaties izveidot šo reģistrētāju, es iesaku izmantot DS18B20 digitālo temperatūras sensoru, jo tas ir vieglāk lasāms un gandrīz "plug and play", tas ir stabilāks un precīzāks, darbojas ar 3,3 V spriegumu un prasa tikai vienu tapu daudziem sensoriem. Paldies par uzmanību, es ceru, ka šis projekts jums būs labs un jūs atradu noderīgu informāciju. Un kas vēlas to realizēt, es novēlu, ka es sniedzu visu nepieciešamo informāciju. Ja negribētu visu uzdot, es labprāt atbildēšu uz visiem jautājumiem. Tā kā es nerunāju angliski, lūdzu, paziņojiet man, ja kaut kas nav kārtībā vai nav saprotams. Ja jums patika šis projekts, lūdzu, balsojiet par to konkursiem un/vai atstājiet komentāru ☺. Tas mudinās mani turpināt atjaunināt un publicēt jaunu saturu. Paldies.

Ieteicams: