Automatización de caldera eléctrica con Arduino+ESP+extras
Go to file
devfzn 3f749d0246 ed: links to letz.dev 2024-01-16 13:31:45 -03:00
caldera_esp ed: dialogos esp, readme 2022-04-22 04:57:15 -04:00
caldera_rata ed: README 2022-10-26 03:28:26 -03:00
scripts fix: bash script -> curl 2022-09-24 20:12:42 -03:00
.gitignore edit readme y arreglos menores 2022-04-20 22:23:18 -04:00
LICENSE +: licencia 2022-04-27 01:56:18 -04:00
README.md ed: links to letz.dev 2024-01-16 13:31:45 -03:00

README.md

Automatizacion de Caldera

Control de encendido para caldera electrica.

Enciende o apaga el termo según configuración. Admite hasta dos horarios de
funcionamiento al día, ajustables en modo 3.

El funcionamiento autonomo es la opción por defecto (modo 1).

Funcionamiento manual espera instrucción para realizar acción de encendido
o apagado (modo 5).

Hora y fecha ajustables en el modo 2.

Posiciones del servo al encender o apagar el termo (modo 4). Son dos posiciones,
ya que el servo realiza movimiento repetitivo para asegurar el accionamiento
mecánico del interruptor del termo.

El modo 6 permite mover libremente el servo (desde 16 hasta 144). Útil para probar ajustes.

Hardware utilizado:

Arduino funciona de forma autonoma, no requiere del módulo wifi.
ESP-01 funciona como interface web basica entre el usuario y el puerto serie de arduino.

Herramientas de control (scripts)


Arduino

Control de horario de encendido caldera electrica.
Trabaja de forma autonoma y/o comandado por puerto serie (115200 baudio).

  • 3 Modos de Operación
    • Automatizado (1, por defecto)
    • Manual (5)
    • Libre (6)
  • 3 Modos de Configuración
    • Configuración fecha y hora (2)
    • Configuración horas de encendido y apagado (3)
    • Configuración de posiciones de encendido y apagado (4)

Arduino envia cada segundo los valores actuales de las variables de control al puerto serie.
ej: 1,0,5,7,16,18,120,90,45,62,1,42,24,14,7,2021

1____________________________________________ modo
| 0__________________________________________ estado termo (O=apagado, 1=Encendido)
| | 5________________________________________ hora de encendido
| | | 7______________________________________ hora de apagado
| | | | 16___________________________________ 2da hora de encendido (opcional)
| | | |  | 18________________________________ 2da hora de apagado (opcional)
| | | |  |  | 120____________________________ 1ra posicion encendido
| | | |  |  |  |  90_________________________ 2da posicion encendido
| | | |  |  |  |  |  45______________________ 1ra posicion apagado
| | | |  |  |  |  |  |  62___________________ 2da posicion apagado
| | | |  |  |  |  |  |  |  1_________________ hora en RTC
| | | |  |  |  |  |  |  |  | 42______________ minutos en RTC
| | | |  |  |  |  |  |  |  |  | 24___________ segundos en RTC
| | | |  |  |  |  |  |  |  |  |  | 14________ dia en RTC
| | | |  |  |  |  |  |  |  |  |  |  | 7______ mes en RTC
| | | |  |  |  |  |  |  |  |  |  |  | | 2021_ año en RTC
1,0,5,7,16,18,120,90,45,62,1,42,24,14,7,2021

Configuración

Envío de datos a modificar por puerto serie de Arduino (115200 baudio).
ejemplos:

  • Config. hora 19:35:15 y fecha 19/04/2022.
    • 2,19,4,2022,19,35,15
  • Config. horas de funcionamiento de 6 a 8 y 17 a 18 hrs.
    • 3,6,8,17,18
  • Config. posiciones de funcionamiento, encendido 120 y 105, apagado 45 y 62.
    • 4,120,105,45,62
  • Cambiar a modo manual y apagar termo.
    • 5,0
  • Cambiar a modo libre y mover el servo a posición 100.
    • 6,100
  • Cambiar a modo autónomo (modo 1).
    • 1

ESP01

Establece comunicación serial con arduino (115200 baudio).
Interface web básica para consulta y configuraciones.

Archivo de configuracion confidencial.h

const char* ssid = "SSID";
const char* password = "password";

Urls

Consulta valores en arduino

  • / : muestra valores actuales de variables.
    • ej. http://192.168.65.10/

Configuración

  • /accion : accionamiento manual, espera argumentos on u off.
    • ej. http://192.168.65.10/accion?mod=5&acc=on
  • /sethora : configurar de fecha y hora.
    • ej. http://192.168.65.10/sethora?mod=2&dia=14&mes=7&año=2021&hrs=1&mins=33&segs=24
  • /horasAcc : configurar horas de funcionamiento.
    • ej. http://192.168.65.10/horasAcc?mod=3&hrOn1=5&hrOff1=7&hrOn2=16&hrOff2=18
  • /setservo : configurar posiciones de encendido y apagado.
    • ej. http://192.168.65.10/setservo?mod=4&posOn1=110&posOn2=85&posOff1=45&posOff2=62
  • /setlibre : Mover servo libremente (15 < posicion > 165).
    • ej. http://192.168.65.10/setlibre?mod=6&pos=125
  • /auto : Modo autonomo.
    • ej. http://192.168.65.10/auto

Utilidades

Scripts para enviar peticiones web al ESP.

Bash

caldera.sh

==============================
         Estado Termo         
         - ENCENDIDO -        
------------------------------
        Modo Automático       
------------------------------
     Hora  :   05:12:47
     Fecha :   16/07/2021
------------------------------
    Horario Temporizador   
    1)  ON:  5    OFF:  7 
    2)  ON: 16    OFF: 18 
==============================

  1) Funcionamiento Autonomo
  2) Ajustar hora y fecha
  3) Ajustar termporizador
  4) Calibrar Servo
  5) Modo Manual
  6) Modo Libre
  0) Salir

  Ingresa Opcion :

Python

Python >= 3.10
caldera.py

python_script


Secuencia general

sequenceDiagram
    participant Telegram Bot
    participant Script o web
    participant ESP01
    participant Arduino
    participant Caldera
    Script o web->>ESP01: Consulta/Modifica estado
    Note right of Script o web: control total
    ESP01-->>Script o web: Retorno estado de control
    Telegram Bot->>ESP01: Solicita Encender/Apagar o cambiar a Modo autonomo
    Note right of Telegram Bot: control parcial
    ESP01-->>Telegram Bot: Respuesta
    ESP01->>Arduino: Consulta/Modifica estado
    Arduino-->>ESP01: Retorno estado de control
    Arduino->>Caldera: Enciende o Apaga

Quick demo v0.2

demo

Como crear un bot de telegram?