Taula de continguts:

Registrador de temperatura WiFi (amb ESP8266): 11 passos (amb imatges)
Registrador de temperatura WiFi (amb ESP8266): 11 passos (amb imatges)

Vídeo: Registrador de temperatura WiFi (amb ESP8266): 11 passos (amb imatges)

Vídeo: Registrador de temperatura WiFi (amb ESP8266): 11 passos (amb imatges)
Vídeo: ✅ All the steps and tricks to create PCBs with the CNC 2024, Desembre
Anonim
Image
Image
Materials
Materials

Hola, content de veure't aquí. Espero que en aquest instructiu trobareu informació útil. No dubteu a enviar-me suggeriments, preguntes, … Aquí teniu algunes dades bàsiques i una ràpida visió general del projecte. Per a usuaris de mòbils: vídeo. Gràcies, deixeu-me saber què en penseu del projecte. Recentment he comprat una placa NodeMcu (basada en esp8266) només per provar-ho, de manera que aquest no és un projecte realment avançat. Però funciona i és el que necessito, així que està bé. La funció principal d’aquest registre de dades és recollir temperatura i guardar-la en un servidor. Això permet als usuaris consultar dades i gràfics en línia fins i tot quan no es troben a la mateixa ubicació del registrador (per exemple, per a una estació meteorològica). Una altra característica útil és l'actualització OTA inclosa al codi que permet a l'usuari actualitzar i personalitzar el programari fàcilment. Analitzaré dos sensors i el seu mètode d'adquisició relacionat per fer un balanç de tots els pros i els contres.

Spoiler: després d'una mica de proves, vaig trobar que un sensor digital com el DS18B20 és la millor solució perquè ofereix estabilitat i precisió més alta. Ja és impermeable i amb el cable.

Pas 1: materials

Materials
Materials
Materials
Materials
Materials
Materials

Aquest és un projecte mínim amb només pocs components externs, per la qual cosa la llista de BOM serà realment curta. Tanmateix, vegem quin material es demana:

  • NodeMcu V3 (o qualsevol processador ESP8266 μ compatible);
  • LED RGB (ànode comú);
  • Resistències per a led (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
  • DS18B20 (termòmetre Maxim Integrated);
  • LM35 (termòmetre Texas Instruments);
  • Bateria externa (opcional);
  • Cable;
  • Connector (per fer-lo més "avançat");
  • Box (opcional, de nou per fer-lo més "avançat");
  • Suport de led (opcional);

Nota: Com he dit, heu de triar un dels dos mètodes. Si trieu el termòmetre LM35, necessitareu uns quants components més:

  • Attiny45 / 85;
  • Programador AVR (o Arduino com a ISP);
  • Resistència (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
  • Connector de tira de 2,54 mm (opcional)
  • Diode (2x1N914)
  • Perfboard o PCB;

Pas 2: triar el sensor

Trieu el sensor
Trieu el sensor

Triar el sensor pot ser un pas difícil: avui hi ha un munt de transductors (TI ofereix 144 elements diferents) tant analògics com digitals amb diferents rangs de temperatura, precisió i caixa. Sensors analògics (46 parts disponibles a TI): Pros:

  • El registre de dades es pot canviar fàcilment de temperatura a una altra quantitat (tensió, corrent, …);
  • Pot ser una mica més barat;
  • Fàcil d'utilitzar, ja que no requereix cap biblioteca especial;

Contres:

  • Requereixen ADC (que pot influir en la precisió de la mesura) i altres components externs. Com que esp8266 només té un ADC (i no és realment precís), suggeriria utilitzar-ne un de extern.
  • Necessita un cable dedicat amb rebuig de soroll, ja que qualsevol tensió induïda pot canviar el resultat.

Després de pensar una mica, vaig decidir utilitzar LM35, un sensor lineal amb un factor d’escala de + 10mV / ° C amb una precisió de 0,5 ° C i un corrent molt baix (aproximadament 60uA) amb una tensió de funcionament de 4V a 30V. Per a més detalls us recomano veure la fitxa tècnica: LM35.

Sensors digitals (molt recomanable)

Es necessiten gairebé tots els components externs;

ADC integrat

Contres:

Sol·liciteu descodificar el senyal digital de biblioteca o programari (I2C, SPI, sèrie, One Wire, …);

Més car;

He escollit DS18B20 perquè he trobat un conjunt de 5 sensors impermeables a Amazon i perquè està àmpliament documentat a Internet. La característica principal és la mesura de 9-12 bits, bus d’un cable, tensió d’alimentació de 3,0 a 5,5, precisió de 0,5 ° C. De nou, per obtenir més informació, aquí teniu la fitxa tècnica: DS18B20.

Pas 3: LM35

LM35
LM35
LM35
LM35
LM35
LM35

Analitzem com he implementat l'ADC extern i altres funcions del termòmetre LM35. Vaig trobar un cable amb tres cables, un amb blindatge i dos sense. Vaig decidir afegir un condensador de desacoblament per estabilitzar la tensió d’alimentació a prop del sensor. Per convertir la temperatura analògica en digital, he utilitzat el microprocessador Attiny85 en un paquet dip8 (de nou per obtenir més informació, consulteu la fitxa tècnica: attiny85). El més important per a nosaltres és l'ADC de 10 bits (no és realment el millor però prou precís per a mi). Per comunicar-me amb Esp8266, vaig decidir utilitzar la comunicació serial tenint en compte que esp8266 funciona amb 3,3 V i attiny85 a 5 V (ja que necessita alimentar el sensor). Per aconseguir-ho, he utilitzat un simple divisor de tensió (vegeu l’esquema). Per llegir la temperatura negativa, hem d’afegir alguns components externs (resistència 2x1N914 i 1x18k), ja que no vull utilitzar una font d’alimentació negativa. Aquí teniu el codi: dipòsit TinyADC. Nota: per compilar aquest codi haureu d’instal·lar attiny to ide (inseriu-ho a l’opció: https://drazzy.com/package_drazzy.com_index.json), si no sabeu com fer-ho, només cal que cerqueu a Google. O pengeu directament el fitxer.hex.

Pas 4: DS18B20

DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20

Vaig comprar aquests sensors a Amazon (5 costa uns 10 €). Va arribar amb una tapa d’acer inoxidable i un cable de 1 m de longitud. Aquest sensor pot retornar dades de temperatura de 9 a 12 bits. Es poden connectar molts sensors al mateix pin, ja que tots tenen un identificador únic. Per connectar el DS18B20 a l’esp8266, només cal seguir l’esquema (segona foto). Com que he decidit que el meu registrador hauria tingut tres sondes, he hagut de distingir quina és quina. Així que vaig pensar en donar-los un color associat a través del programari a la seva adreça. He utilitzat algun tub termo-retractilable (tercera foto).

Pas 5: codi ESP8266

Codi ESP8266
Codi ESP8266
Codi ESP8266
Codi ESP8266

Com que sóc nou en aquest món, vaig decidir utilitzar moltes biblioteques. Com es va dir a la introducció, les principals característiques són:

  • Actualització OTA: no cal que connecteu esp8266 al vostre ordinador cada vegada que necessiteu pujar el codi (només heu de fer-ho la primera vegada);
  • Gestor sense fils, si canvia la xarxa sense fils, no cal que torneu a carregar l'esbós. Simplement podeu configurar de nou els paràmetres de xarxa que es connecten al punt d'accés esp8266;
  • Transmissió de dades Thingspeak;
  • Tant LM35 com DS18B20 són compatibles;
  • Interfície d'usuari senzilla (el led RGB indica informació útil);

Disculpeu-me perquè el meu programari no és el millor i no està realment ben ordenat. Abans de carregar al dispositiu, heu de canviar alguns paràmetres per ajustar el codi a la vostra configuració. Aquí podeu descarregar el programari. Configuració comuna LM35 i DS18B20 Cal canviar la definició de pin, el testimoni, el número de canal, l’usuari i la contrasenya per a l’actualització d’OTA. Línia del 15 al 23.

#define vermell YOURPINHERE #define verd YOURPINHERE

#define blue YOURPINHERE const char * host = "seleccioneu l'adreça de l'amfitrió"; // no és realment necessari, podeu deixar esp8266-webupdate const char * update_path = "/ firmware"; // per canviar l'adreça d'actualització ex: 192.168.1.5/firmware const char * update_username = "YOURUSERHERE"; const char * update_password = "YOURPASSWORDHERE; unsigned long myChannelNumber = CHANNELNUMBERHERE; const char * myWriteAPIKey =" WRITEAPIHERE ";

Pas 6: Codi ESP8266: usuari LM35

Cal connectar el tauler d’atenció a esp8266, per alimentar la unitat ADC, utilitzeu el pin VU i el pin G. Heu de triar el pin que voleu utilitzar per a la comunicació en sèrie (per mantenir el maquinari en sèrie lliure per a finalitats de depuració). S'ha de seleccionar el pin Tx però no s'utilitza realment. (Línia 27). SoftwareSerial mySerial (RXPIN, TXPIN); A la part superior cal afegir: #define LM35USER

Pas 7: Codi ESP8266: Usuari DS18B20

Com a primera operació, heu d’identificar l’adreça del dispositiu per a cada sensor. Compileu i programa aquest codi a l'esp i cerqueu els resultats en sèrie. El codi es pot trobar aquí (cerqueu aquest títol a la pàgina: «Llegiu adreces internes DS18B20 individuals»). Connecteu només un sensor per obtenir l'adreça; els resultats haurien de ser similars a aquest (número aleatori aquí! Com a exemple): 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12 Aleshores heu de canviar el meu codi a la secció " Configuració per a DS18B20 "(línia 31 a 36)":

. 0x12}; // CANVIA AMB LA VOSTRA ADREÇA DeviceAddress redSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // CANVIA AMB LA VOSTRA ADREÇA DeviceAddress greenSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // CANVIEU AMB LA VOSTRA ADREÇA A la part superior cal afegir: #define DSUSER

Pas 8: ESP8266 Petit truc

ESP8266 Petit truc
ESP8266 Petit truc

Després de fer una mica de proves, vaig trobar que si connecteu esp8266 sense programar, no executarà el codi fins que no premeu Restablir una vegada. Per resoldre aquest problema, després d’investigar una mica, vaig descobrir que cal afegir una resistència de tracció de 3,3 V a D3. Això indicarà al processador que carregui el codi de la memòria flash. Amb aquest mètode, D3 es pot utilitzar directament per a l'entrada de dades dels sensors DS18B20.

Pas 9: primera operació

Primera operació
Primera operació
Primera operació
Primera operació

Si heu penjat el codi correctament però no utilitzeu mai la biblioteca del gestor de Wifi, és hora de configurar la vostra connexió wifi. Espereu fins que vegeu el led RGB parpellejant més ràpid que abans, i després cerqueu amb el vostre mòbil o PC la xarxa wifi anomenada "AutoConnectAp" i connecteu-vos. Després de la connexió, obriu un navegador web i introduïu 192.168.4.1, trobareu la interfície GUI del gestor de wifi (veure fotos) i premeu "Configura Wifi". Espereu que esp8266 cerqui xarxes wifi i seleccioneu la que vulgueu. Introduïu la contrasenya i premeu "desa". Esp8266 es reiniciarà (no importa el LED RGB aquesta vegada perquè emetrà informació aleatòria) i es connectarà a la xarxa.

Pas 10: Conclusió

Conclusió
Conclusió
Conclusió
Conclusió
Conclusió
Conclusió
Conclusió
Conclusió

Al final, aquí teniu un gràfic extret del registre de dades en acció mentre registrava la temperatura del meu congelador. En taronja hi ha el DS18B20 i en blau el LM35 i el seu circuit. Podeu veure la diferència més gran en la precisió del sensor analògic al digital (amb el meu pobre "circuit ADC") que proporciona algunes dades no físiques. Resumint, si voleu construir aquest registre, us suggereixo utilitzar el sensor de temperatura digital DS18B20, ja que és més fàcil de llegir i gairebé "connectar i reproduir", és més estable i precís, funciona a 3,3 V i només requereix un pin per a molts sensors. Gràcies per l'atenció, espero que aquest projecte sigui bo per a vosaltres he trobat informació útil. I per a qui vulgui adonar-se’n, m’agradaria que donés tota la informació necessària. Si no és lliure de preguntar-ho tot, estaré encantat de respondre a totes les preguntes. Com que no sóc angloparlant, si alguna cosa no funciona o no s’entén, si us plau, aviseu-me. Si us ha agradat aquest projecte, voteu-lo pels concursos i / o deixeu un comentari ☺. M’animarà a continuar actualitzant i publicant nous continguts. Gràcies.

Recomanat: