4.3.1 Ventilador inteligente de control de temperatura

4.3.1.1 Visión general

Img

Cuando la temperatura interior excede el valor estándar predefinido, el ventilador inteligente se encenderá para enfriar la habitación hasta una temperatura cómoda. Además, la pantalla OLED mostrará la temperatura interior actual y el estado de funcionamiento del ventilador en tiempo real, proporcionando a los usuarios una retroalimentación de control de temperatura intuitiva.

Img

4.3.1.2 Conocimientos de los componentes

Img

Sensor de temperatura de micro:bit

Img

La placa principal micro:bit en realidad no está equipada con un sensor de temperatura dedicado, sino que utiliza el chip nRF52833 para la detección de temperatura. Por lo tanto, el valor detectado está mucho más cercano a la temperatura del procesador, por lo que puede haber cierta desviación respecto al valor ambiental.

Su rango de detección es -40 ~ 105℃.

Pantalla OLED

Img

La tecnología OLED tiene ventajas significativas como una rica reproducción de color, alto contraste y amplio ángulo de visión, proporcionando imágenes claras y vívidas, destacando especialmente en negro.

Cada píxel de la pantalla OLED emite luz por sí mismo sin necesidad de retroiluminación, por lo que consume relativamente poca energía. Con su tamaño pequeño (0,96 pulgadas), alta resolución (128×64 píxeles) y bajo consumo, es muy adecuada para dispositivos wearables.

⚠️ Nota: En este proyecto, el módulo de pantalla OLED conecta la interfaz SDA al pin P20 y SCL al pin P19.

Parámetros:

  • Voltaje de funcionamiento: DC 3.3V-5V

  • Corriente de trabajo: 30mA

  • Interfaz: conectores de pines con separación 2.54mm

  • Modo de comunicación: comunicación I2C

  • Chip de control interno: SSD1306

  • Resolución: 128×64

  • Ángulo de visión: mayor que 150°

Motor 130

Img

En el módulo del Motor 130 hay un motor de corriente continua que funciona basándose en la inducción electromagnética y la fuerza de Lorentz. Se compone principalmente de un estator, un rotor y un conmutador. El estator genera un campo magnético fijo, mientras que el rotor (inducido), compuesto por bobinas, genera un campo magnético al estar energizado. Cuando la corriente pasa a través de las escobillas y el conmutador y luego entra en la bobina del rotor, el campo magnético del rotor interactúa con el campo magnético del estator, generando una fuerza de Lorentz que impulsa la rotación del rotor. Durante esta rotación, el conmutador cambia la dirección de la corriente, asegurando que el rotor esté continuamente sometido a una fuerza en la misma dirección, manteniendo así la rotación. Mediante inducción electromagnética y fuerza de Lorentz, el motor de corriente continua convierte energía eléctrica en energía mecánica.

Debido a su excelente capacidad de regulación de velocidad y gran par de arranque, los motores de corriente continua se utilizan ampliamente en herramientas eléctricas, vehículos y electrodomésticos.

j124

El Motor 130 puede regular su velocidad mediante PWM. Al usarlo, se necesitan conectar dos pines para el control. Es adecuado para escenarios de aplicación donde se requiere ajustar la velocidad del ventilador, como la refrigeración de ordenadores y la producción industrial. Es pequeño, ligero y fácil de instalar, lo que lo hace muy práctico.

Diagrama esquemático:

Img

El chip HR1124S ayuda a conducir el motor. Sin embargo, el motor requiere una corriente elevada y no puede ser conducido por un transistor simple, y mucho menos directamente por un puerto IO. Siempre que se aplique tensión a ambos extremos del motor, este puede girar. La dirección de rotación del motor varía con la dirección de la tensión. Dentro del rango de voltaje nominal, cuanto mayor sea la tensión, más rápido girará el motor. Por el contrario, cuanto menor sea la tensión, más lento girará el motor, o en algunos casos, puede no girar en absoluto.

Hay dos modos de control: por nivel alto y bajo (controlando rotación y parada), y por PWM (controlando la velocidad de rotación).

Parámetros:

  • Voltaje de trabajo: DC 5V

  • Corriente de funcionamiento: (Max)400mA@5V

  • Potencia máxima: 2W

  • Velocidad de rotación: (16000+10%) rev/min@5V

Img

4.3.1.3 Componentes requeridos

Img

Img

Img

micro:bit V2 main board ×1

micro:bit shield ×1

OLED display ×1

Img

Img

Img

130 motor ×1

micro USB cable ×1

4 pin wire ×2

Img

Img

Img

fan ×1

battery holder ×1

AA battery(self-prepared) ×6

4.3.1.4 Diagrama de conexiones

⚠️ Al cablear, por favor preste atención al color de los cables.

130 motor

color del cable

pin del micro:bit shield

pin de la placa micro:bit

G

negro

G

G

V

rojo

V2

V

IN+

azul

2

P2

IN-

verde

16

P16

OLED display

color del cable

pin del micro:bit shield

pin de la placa micro:bit

GND

negro

G

G

VCC

rojo

V2

V

SDA

azul

20

P20

SCL

verde

19

P19

Img

4.3.1.5 Flujo del programa

Img

4.3.1.6 Código de prueba

⚠️ Consejo 1: Antes de descargar el código a la placa micro:bit, por favor importe el archivo de biblioteca “oled_ssd1306.py” consultando Importar biblioteca en MU” .

Img

⚠️ Consejo 2: El umbral 28 en la condición if() puede modificarse según la situación real.

Código completo:

"""
Theme: smart temperature control fan
Function: OLED displays the temperature value and the microbit temperature sensor controls the on and off of the fan
Compiling IDE: MU 1.2.0
Author: https://docs.keyestudio.com
"""
# importar bibliotecas relacionadas
from microbit import *
from oled_ssd1306 import *

display.show(Image.HAPPY)  # la matriz LED muestra un patrón feliz

# inicializar y limpiar oled
initialize()
clear_oled()

while True:
    clear_oled()  # limpiar OLED
    Temperature = temperature()  # Leer sensor de temperatura de micro:bit
    add_text(0, 0, "Temperature:")  # Mostrar la cadena de caracteres en la posición correspondiente del OLED
    add_text(13, 0, str(Temperature) + " C")  # Mostrar la temperatura en la posición correspondiente del OLED
    if Temperature >= 28:  # cuando Temperature >= 28℃, el ventilador gira
       add_text(0, 2, "Fan on")  # Mostrar la cadena de caracteres en la posición correspondiente del OLED
       pin2.write_analog(500)  # establecer P2 a analógico 500
       pin16.write_analog(0)  # establecer P16 a analógico 0
    else:  # o el ventilador no funciona
       add_text(0, 2, "Fan off")  # Mostrar la cadena de caracteres en la posición correspondiente del OLED
       pin2.write_analog(0)  # establecer P2 a analógico 0
       pin16.write_analog(0)  # establecer P16 a analógico 0
    sleep(1000)

⚠️ Consejo 3: El código usa C en lugar de ℃, porque ℃ se mostrará con caracteres ilegibles en la OLED.

Img

Explicación breve:

① Importar las bibliotecas microbit y oled_ssd1306.

from microbit import *
from oled_ssd1306 import *

② La matriz de LED 5×5 de la Microbit muestra Img.

display.show(Image.HAPPY)  # la matriz LED muestra un patrón feliz 

③ Inicializar los píxeles del OLED y limpiar el OLED.

initialize()  # inicializar oled
clear_oled()  # limpiar oled

④ Leer el valor de temperatura y mostrarlo en el OLED.

Temperature = temperature()  # Leer sensor de temperatura de micro:bit 
add_text(0, 0, "Temperature:")  # Mostrar la cadena de caracteres en la posición correspondiente del OLED
add_text(13, 0, str(Temperature) + " C")  # Mostrar la temperatura en la posición correspondiente del OLED

⑤ Sentencia de decisión: if()…else…

Cuando la temperatura detectada por el sensor es mayor o igual a 28℃, el OLED muestra “Fan on”, y el ventilador gira. En caso contrario, el OLED muestra “Fan off” y el ventilador no funciona.

if Temperature >= 28:  # cuando Temperature >= 28℃, el ventilador gira
   add_text(0, 2, "Fan on")  # Mostrar la cadena de caracteres en la posición correspondiente del OLED
   pin2.write_analog(500)  # establecer P2 a analógico 500
   pin16.write_analog(0)  # establecer P16 a analógico 0
else:  # o el ventilador no funciona
   add_text(0, 2, "Fan off")  # Mostrar la cadena de caracteres en la posición correspondiente del OLED
   pin2.write_analog(0)  # establecer P2 a analógico 0
   pin16.write_analog(0)  # establecer P16 a analógico 0

⑥ Retardo de 1000 ms (1 s).

sleep(1000)

4.3.1.7 Resultado de la prueba

Img

Después de cablear y alimentar mediante el cable micro USB, conecte la alimentación externa (6 pilas AA) para asegurar un suministro suficiente, y haga clic en “Flash” para descargar el código a la placa micro:bit.

Img

Después de cargar el código de prueba, presione el botón de reinicio en la parte posterior de la micro:bit.

Img

La matriz de LED a bordo 5×5 muestra Img, y la pantalla OLED revela la temperatura y el estado del ventilador en tiempo real. Cuando la temperatura está por encima de 28℃, el ventilador gira. En caso contrario, el ventilador no funcionará.

Img

⚠️ Nota: El código usa C en lugar de ℃, porque ℃ se mostrará con caracteres ilegibles en la OLED.

⚠️ Nota: Los bloques de construcción en el experimento no están incluidos en este kit.

(Consejo: Si no se observa resultado, por favor presione el botón de reinicio de la placa micro:bit.)

Img