Caldera-ino/README.md

198 lines
6.4 KiB
Markdown
Raw Permalink Normal View History

2021-07-14 21:56:30 -04:00
# Automatizacion de Caldera
***Control de encendido para caldera electrica.***
2021-07-14 21:56:30 -04:00
2022-04-21 13:56:05 -04:00
Enciende o apaga el termo según configuración. Admite hasta dos horarios de
funcionamiento al día, ajustables en **modo 3**.
2021-07-14 21:56:30 -04:00
2022-04-21 13:56:05 -04:00
El funcionamiento autonomo es la opción por defecto (**modo 1**).
2021-07-14 21:56:30 -04:00
Funcionamiento manual espera instrucción para realizar acción de encendido
2022-04-21 13:56:05 -04:00
o apagado (**modo 5**).
2021-07-14 21:56:30 -04:00
2022-04-21 13:56:05 -04:00
Hora y fecha ajustables en el **modo 2**.
2021-07-14 21:56:30 -04:00
2022-04-21 13:56:05 -04:00
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.
2021-07-14 21:56:30 -04:00
2022-04-21 13:56:05 -04:00
El **modo 6** permite mover libremente el servo (desde 16 hasta 144). Útil para probar ajustes.
2021-07-14 21:56:30 -04:00
### Hardware utilizado:
- [ATmega328p](https://en.wikipedia.org/wiki/Arduino_Nano) (ArduinoNano old bootloader)
- [Real time clock](https://en.wikipedia.org/wiki/Real-time_clock) (RTC-DS3231)
- [Servo](https://es.wikipedia.org/wiki/Servomotor)
- [esp8266](https://en.wikipedia.org/wiki/ESP8266) (ESP01)
- [buck converter](https://en.wikipedia.org/wiki/Buck_converter)
2021-07-14 21:56:30 -04:00
**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.
2021-07-14 21:56:30 -04:00
### Herramientas de control (scripts)
2022-10-26 03:28:26 -03:00
- [caldera.sh](./scripts/caldera.sh) (bash)
- [caldera.py](./scripts/caldera.py) (python)
2021-07-14 21:56:30 -04:00
-----
## Arduino
Control de horario de encendido caldera electrica.
2022-10-26 03:28:26 -03:00
Trabaja de forma autonoma y/o comandado por puerto serie (**115200 baudio**).
2021-07-14 21:56:30 -04:00
* 3 Modos de Operación
- Automatizado (1, por defecto)
2022-10-26 03:28:26 -03:00
- Manual (5)
2021-07-14 21:56:30 -04:00
- 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)
2021-07-14 21:56:30 -04:00
2022-04-20 22:23:18 -04:00
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`
2021-07-14 21:56:30 -04:00
```
2022-04-20 22:23:18 -04:00
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
2022-10-26 03:28:26 -03:00
| | | | | | | 90_________________________ 2da posicion encendido
2022-04-20 22:23:18 -04:00
| | | | | | | | 45______________________ 1ra posicion apagado
2022-10-26 03:28:26 -03:00
| | | | | | | | | 62___________________ 2da posicion apagado
2022-04-20 22:23:18 -04:00
| | | | | | | | | | 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
2021-07-14 21:56:30 -04:00
```
### Configuración
Envío de datos a modificar por puerto serie de Arduino (**115200 baudio**).
2022-10-26 03:28:26 -03:00
ejemplos:
2022-10-26 03:28:26 -03:00
- Config. hora **19:35:15** y fecha **19/04/2022**.
- `2,19,4,2022,19,35,15`
2022-10-26 03:28:26 -03:00
- Config. horas de funcionamiento de **6 a 8** y **17 a 18 hrs**.
- `3,6,8,17,18`
2022-10-26 03:28:26 -03:00
- 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`
2021-07-14 21:56:30 -04:00
-----
## ESP01
Establece comunicación serial con arduino (**115200 baudio**).
Interface web básica para consulta y configuraciones.
2021-07-14 21:56:30 -04:00
Archivo de configuracion ***confidencial.h***
```c
const char* ssid = "SSID";
const char* password = "password";
```
2021-07-14 21:56:30 -04:00
#### Urls
**Consulta valores en arduino**
2022-04-20 22:23:18 -04:00
* **/** : muestra valores actuales de variables.
- ej. `http://192.168.65.10/`
**Configuración**
2022-04-21 18:54:22 -04:00
* **/accion** : accionamiento manual, espera argumentos on u off.
2022-04-20 22:23:18 -04:00
- 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`
2021-07-14 21:56:30 -04:00
-----
2021-07-18 15:44:09 -04:00
## Utilidades
Scripts para enviar peticiones web al ESP.
### Bash
2022-10-26 03:28:26 -03:00
[caldera.sh](./scripts/caldera.sh)
2021-07-14 21:56:30 -04:00
```
==============================
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
==============================
2021-07-14 21:56:30 -04:00
1) Funcionamiento Autonomo
2) Ajustar hora y fecha
3) Ajustar termporizador
4) Calibrar Servo
5) Modo Manual
6) Modo Libre
2021-07-14 21:56:30 -04:00
0) Salir
Ingresa Opcion :
```
2021-07-18 04:39:56 -04:00
### Python
***Python >= 3.10***
2022-10-26 03:28:26 -03:00
[caldera.py](./scripts/caldera.py)
2021-07-18 04:39:56 -04:00
2021-07-18 04:42:07 -04:00
![python_script](./scripts/script_python.png)
----
### Secuencia general
```mermaid
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
```
2022-04-22 05:11:49 -04:00
2022-05-27 22:09:39 -04:00
----
### Quick demo v0.2
2022-12-07 01:38:33 -03:00
<a href="https://www.youtube.com/watch?v=WXJ52hnwTxs" title="quick demo">
<img src="https://img.youtube.com/vi/WXJ52hnwTxs/hqdefault.jpg" alt="demo" />
2022-05-27 22:09:39 -04:00
</a>
2022-04-22 05:11:49 -04:00
> *Como crear un [bot de telegram](https://gitea.kickto.net/jp.av.dev/BotsTelegram_Python/src/branch/master/01-blasterbot)?*