Está en la página 1de 7

eluniversosolar

proyectos arduino

Prototipo de placa de prueba para una


pequeña estación meteorológica: sensor
Si7021, mini placa microcontroladora
ESP8266 Wemos D1, Nokia 5510 84*48 LCD
Introducción :
el tamaño reducido de la placa del microcontrolador Wemos D1 mini ESP8266 y su WiFi
integrado hacen que esta pequeña pieza electrónica sea atractiva para fabricar unidades
pequeñas que se comunican a través de Internet con servidores locales o basados ​en la nube.
Una pantalla elegante no es necesaria cuando el énfasis de una unidad está en los aspectos
IOT porque sirve en la configuración principalmente como un componente secundario. Una
pantalla aquí es útil solo para verificar de vez en cuando si la unidad funciona como se
supone que debe funcionar y, antes de eso, para fines de prueba en la etapa de construcción.

fgura 1. Diagrama de cableado de la pequeña estación meteorológica: sensor Si7021, mini placa Wemos D1 y
Nokia 5510 LCD.

Aquí discutimos el diseño de una pequeña unidad de informe de parámetros ambientales,


digamos 'estación meteorológica diminuta' que mide la temperatura y la humedad relativa.
La unidad es capaz de enviar datos a un destino en Internet. La unidad consta de una placa
de conexión Si7021, un mini microcontrolador ESP8266 Wemos D1 y una pantalla LCD Nokia
5510 para la visualización de datos. Una pantalla LCD de 16 × 2 caracteres haría la
representación de datos igual de bien que un Nokia, pero son las características gráficas de
Nokia las que lo hacen más atractivo que una pantalla LCD solo numérica. También se puede
usar un OLED, pero estas pantallas tienden a quemarse durante el funcionamiento continuo
prolongado. Hay muy buenas bibliotecas disponibles para Nokia (Adafruit_PCD8544.h y
Adafruit_GFX.h) que admiten la funcionalidad gráfica y alfanumérica.

anuncios

For high reliability and high quality applications OPE


requiring quick connect/disconnect
DENUNCIAR ESTE ANUNCIOPRIVACIDAD

Componentes

Tablero de conexiones Si7021 El tablero


de conexiones Si7021 (figura 1) cuenta con un sensor de bajo costo que mide la temperatura
ambiente y la humedad relativa con una precisión razonable. En una publicación anterior
conecté este dispositivo a un Arduino Nano.* Es compatible con 3.3V y 5V y se comunica con
el Arduino a través del protocolo I2C. Esto significa que, además de la alimentación y GND,
hay dos pines para la comunicación: Reloj (SCL) y Datos (SDA). Los pines I2C designados en
una placa de microcontrolador ESP8266 son los pines D1 (SCL) y D2 (SDA). Es necesaria una
resistencia pull-up con un valor de 4,7 kΩ entre SCL y potencia y entre SDA y potencia. La
energía proviene del pin 3V3.

Wemos D1 mini
La D1 mini (figura 1) es una placa microcontroladora ESP8266 de 3,3 V y 16 pines con unas
dimensiones de 34×34 mm que pertenece a la gran familia de placas que cuentan con un
núcleo de microprocesador L106 de 32 bits que funciona a 80 MHz. La memoria es flash de 4
MB y SDRAM de 64 kB. La arquitectura es moderna y hay comunicación serial estándar, I2C,
SPI, una pila TCP/IP y WiFi. Una característica particular que hace que las placas de
microcontroladores ESP8266 sean más atractivas es que se pueden programar en
instrucciones familiares de estilo C++ Arduino a través del IDE de Arduino.

Nokia 5510 LCD


La pantalla del Nokia 5510 (figura 1) presenta una pantalla monocromática de cristal líquido
de 84 x 48 píxeles con píxeles programables individualmente. Es un dispositivo dedicado de
3,3 V que se ha implementado en numerosos proyectos de Arduino. La iluminación LED de
fondo (conmutable, manejable por ancho de pulso) se controla a través de un pin separado.
La interfaz de comunicación es SPI. Debido a que los pines SPI del hardware en Wemos (D1,
D2) ya están reservados para la placa del sensor, usamos el software SPI en este proyecto.

Componentes electrónicos necesarios


1 mini placa de conexión Si7021 (también etiquetada como SHT21-HTU21), 1 placa de mini
microcontrolador Wemos D1, 1 LCD Nokia 5510, 1 placa de conexión de interruptor
capacitivo mini, 2 resistencias de 4,7 kΩ, 1 resistencia de 220 Ω, LED, 2 placas de prototipado,
saltar cables.

Cableado
La figura 1 muestra el cableado pin a pin de un Wemos D1 mini con sus periféricos. El Si7021
es un dispositivo I2C dedicado que requiere los pines D1 (SCL) y D2 (SDA) del Wemos D1
mini. Una resistencia de 4,7 k Ω es obligatoria entre el pin SCL y 3,3 V y entre el pin SDA y
3,3 V para mantener estos pines ALTOS. Además de los dos cables de señal, hay una fuente
de alimentación pin to wire con 3.3V y GND.
La pantalla de Nokia utiliza el protocolo serial SPI que necesita cinco cables para funcionar:
CLK, DIN (igual a MOSI), DC, CE y RST. Como se explicó anteriormente, el cableado está
inspirado en SPI suave; seleccionados aquí son los pines 'estándar' D4 (CLK), D3 (DIN), D6
(DC), D7 (CE) y D0 (RST). El pin D8 está conectado a un led. Tenga en cuenta que se incluye
una resistencia de 220 Ω en el cableado del LED. Esto se hace para reducir la intensidad de la
luz del LED; no es necesaria la reducción de voltaje. El pin de la fuente de alimentación de la
luz trasera del Nokia (BL) está conectado a través de un interruptor de botón táctil capacitivo
al pin de 3,3 V del Wemos D1. No olvide conectar correctamente a tierra todos los
componentes electrónicos.

anuncios

DENUNCIAR ESTE ANUNCIOPRIVACIDAD

Resumen del cableado del Nokia 5510: (ver figura 1)

TIERRA a TIERRA
BL (fuente de alimentación de luz de fondo): alimenta cuatro leds montados en la carcasa
de la pantalla. A través del pin de datos del interruptor táctil capacitivo a 3,3 V (el
interruptor táctil aquí reemplaza un interruptor de botón común)
VCC (potencia) a 3V3
CLK (reloj) a D4
DIN (datos; a veces llamado MOSI) a D3
DC (comando/datos) a D6
CE (habilitación de chip) a D7
RST (pin de reinicio) a D0

Programación
El IDE estándar de Arduino debe ampliarse para admitir placas ESP8266. Esto se puede
lograr en el IDE de Arduino abriendo el menú Archivo, Preferencias y agregando en la
pantalla de diálogo Preferencias en la ventana de diálogo URL del administrador de placas
adicionales el siguiente texto:
https://arduino.esp8266.com/stable/package_esp8266com_index.json

Además de la compatibilidad con la placa ESP8266, se necesitan las siguientes bibliotecas


para compilar las instrucciones de estilo Arduino para el sensor Si7021 y la pantalla LCD
Nokia 5510:

#incluye “SPI.h” #incluye “


Adafruit_GFX.h”
#incluye “Adafruit_PCD8544.h”
Debido a que estamos usando soft-SPI para controlar la pantalla de Nokia, necesitamos
definir pines SPI

#define CLK D4
#define DIN D3
#define DC D6
#define CE D7
#define RST D0

e introducir los pines seleccionados en el constructor:

Pantalla Adafruit_PCD8544 = Adafruit_PCD8544 (CLK, DIN, DC, CE, RST);

Ahora podemos crear un boceto con la siguiente estructura:

1. Inicialice el Si7021 y el Nokia 5510


2. Lea la señal del Si7021
3. Calcular a partir de estos datos la temperatura ambiente y la humedad relativa
4. Muestra la temperatura y la humedad relativa en pantalla, tanto gráfica como
numéricamente
5. (adicional, opcional): Convierta los valores de temperatura y humedad relativa en
cadenas y envíelos a un destino de Internet

anuncios

CrowdStrike
OPE
Your Reputation Is Worth It
DENUNCIAR ESTE ANUNCIOPRIVACIDAD

La visualización gráfica de los datos se logra a través de dos indicadores 'análogos' de 42


píxeles de ancho y 42 píxeles de alto visibles en el diagrama de cableado de la figura 1. Estos
indicadores se construyen en la parte Setup() del boceto a través de una llamada a una
función denominada dibujar_marcadores_dividir_ventana () . En la parte Loop () del boceto,
solo se vuelven a dibujar las posiciones de las agujas, también llamando a una función
llamada 'aguja ()'. La adquisición de datos en sí se realiza en la sección Loop().

En la pantalla LCD, en cada indicador, el extremo del pivote fijo de la aguja está determinado
por las coordenadas 'pivot_x' y 'pivot_y'. El extremo libre está determinado por las
coordenadas 'aguja_x' y 'aguja_y'. El cálculo de estas últimas coordenadas implica un ángulo
de oscilación de la aguja con la horizontal. Los extremos fijo y libre de una aguja se conectan
a través de una instrucción display.drawLine que incluye al final un parámetro de 'color'.
Este color es 1 (píxel encendido = negro) o 0 (píxel apagado = fondo).

El control de la posición de la aguja es como sigue. Las dos coordenadas involucradas en el


movimiento de cualquier aguja son aguja_x' y 'aguja_y' (porque el pivote tiene coordenadas
fijas. Estas coordenadas de aguja se calculan a través de una fórmula que para la coordenada
x incluye un coseno y para la coordenada y un seno :

aguja_x = (pivote_x + (longitud_aguja) cos(aguja_ángulo)); aguja_y = (pivote_y +


(aguja_longitud) sin(ángulo_aguja));

donde angle_needle se calcula a través de:


ángulo_aguja = ((360 0.01745331)-(temp_01 0.01745331));

como 1 grado = 0,01745331 radianes, y donde temp_01 es la temperatura registrada


La parte (360* 0,01745331) se introduce aquí porque en el diseño actual el movimiento de la
aguja es en sentido antihorario. El ángulo debe expresarse en radianes porque el compilador
Arduino solo acepta radianes.

Una vez que se calcula una nueva posición de aguja, necesitamos borrar la posición de aguja
calculada en la iteración anterior de Loop (). Este 'borrado' se realiza en cada iteración a
través de la siguiente serie de instrucciones:

1. Copie los valores de las coordenadas de la punta de la aguja ('needle_x', 'needle_y') en las
variables 'needle_x_old' y 'needle_y_old',
2. Luego calcule los valores de las coordenadas 'needle_x' y 'needle_y para la posición
actualizada de la punta de la aguja,
3. Dibuje la aguja 'vieja' usando los valores guardados en 'needle_x_old' y 'needle_y_old'
pero use aquí el parámetro de color '0',
4. Dibuja la aguja actualizada usando 'needle_x' y 'needle_y' y, por supuesto, el color 1,
5. Vuelva a dibujar el círculo de pivote para evitar que se abolle cuando la aguja se 'mueva'.

anuncios

CrowdStrike®
OPE
From The Industry Leader
DENUNCIAR ESTE ANUNCIOPRIVACIDAD

Por supuesto, hay dos agujas que duplican el número de variables (ver croquis).

El cuerpo del boceto es simple y sigue la estructura descrita anteriormente.


Figura 2. Prototipo de trabajo de la 'estación meteorológica diminuta'. El LED y el interruptor táctil se encienden
intencionalmente para brindar una buena imagen.

Resultados
La figura 2 muestra un prototipo funcional de la diminuta estación meteorológica. El sensor
Si7021 proporciona señal de temperatura y humedad a los pines D1 (SCL) y D2 (SCK) del
Wemos D1 mini, mientras que el pin D8 del Wemos controla un led. Los otros pines son
necesarios para la comunicación con la pantalla del Nokia 5510. El led externo rojo funciona
como indicador de actividad y puede considerarse como una especie de lujo.
La retroiluminación de la pantalla de Nokia se proporciona aquí mediante un interruptor
táctil capacitivo separado (visible en la figura 2) que no está conectado al microcontrolador.
Este interruptor táctil es una placa mini de tres pines: pines marcados como Vcc, GND y I/O.
El estado del pin de E/S cambia de BAJO a ALTO cuando se toca el interruptor. La señal
ALTA se transmite directamente al pin BL de la pantalla. Cuando se toca el interruptor, su
pin de E/S proporciona una cantidad modesta de corriente porque los LED de
retroiluminación se queman con menos intensidad que cuando el cable BL se alimenta
directamente desde el riel de 3,3 V o recibe energía a través de un botón. El interruptor táctil
capacitivo aquí es un "lujo elegante", agradable para las soluciones IOT.

Sketch
Nota: las bibliotecas "SPI.h", "Wire.h", Adafruit_PCD8544.h" y "Adafruit_GFX.h" son
necesarias para compilar este boceto. Estas bibliotecas se pueden instalar a través del
administrador de bibliotecas en el IDE de Arduino.

El archivo zip descargable contiene un boceto:

anuncios
DENUNCIAR ESTE ANUNCIOPRIVACIDAD

Wemos_D1_Nokia_5510_Si7021_two_gauges.ino

También podría gustarte