Además del hardware, también es importante contar con el software adecuado para su proyecto. Un firmware práctico y de aplicación universal para el microcontrolador de bosques y praderas ESP8266 es el firmware Tasmota. Esto le permite implementar varios proyectos sin tener que programar usted mismo. Además, no es necesario “reinventar la rueda” cada vez. 🙂
Antes de poder utilizarlo con su microcontrolador, por supuesto, primero debe transferirlo a él. En el siguiente artículo se describe cómo funciona esto y a qué debe prestar atención.
Instrucciones de seguridad
Sé que las siguientes notas siempre son un poco molestas y parecen innecesarias. Desafortunadamente, muchas personas que sabían "mejor" han perdido ojos, dedos u otras cosas debido a un descuido o se lesionaron. La pérdida de datos es casi insignificante en comparación, pero incluso estos pueden ser realmente molestos. Por lo tanto, tómese cinco minutos para leer las instrucciones de seguridad. Porque incluso el proyecto más genial no vale la pena lesionarse u otros problemas.
https://www.nerdiy.de/sicherheitshinweise/
Enlaces afiliados / enlaces publicitarios
Los enlaces a las tiendas en línea enumerados aquí son los llamados enlaces de afiliados. Si hace clic en dicho enlace de afiliado y realiza una compra a través de este enlace, Nerdiy.de recibirá una comisión de la tienda en línea o el proveedor correspondiente. El precio no cambia para usted. Si realiza sus compras a través de estos enlaces, ayuda a Nerdiy.de a poder ofrecer otros proyectos útiles en el futuro. 🙂
Requisitos
Artículos útiles:
Antes de comenzar este artículo, debe haber instalado y configurado el IDE de Arduino. Puedes encontrar información al respecto en el siguiente artículo.
Instalar programas: un ejemplo
ArduinoIDE - Consejos y trucos
Material requerido:
En la siguiente lista encontrará todas las piezas que necesita para implementar este artículo.
Herramienta requerida:
En la siguiente lista encontrarás todas las herramientas que necesitas para implementar este artículo.
Copie la versión actual de Tasmota de GitHub
Antes de poder comenzar a configurar y programar el firmware de Tasmota, primero debe descargarlo de GitHub.
Los archivos para el firmware se pueden encontrar en: https://github.com/arendst/Sonoff-Tasmota
Cómo puedes descargar archivos desde GitHub está en el artículo. GitHub: ¿Cómo copio archivos desde GitHub a mi computadora? descrito.
Después de descargar los archivos de firmware comprimidos, aún debes descomprimirlos. Puedes encontrar consejos sobre esto en el artículo. ¿WinRar? ¿WinZip? ¿WinWhat? - Cariño he reducido los archivos
Configurar el firmware de Tasmota
Muchas configuraciones del firmware de Tasmota también se pueden ajustar durante el funcionamiento. Sin embargo, me resulta más fácil importar estas configuraciones directamente usando el firmware configurado correctamente.
Además, esto es absolutamente necesario para algunos sensores utilizados, ya que no todos los componentes de software están compilados ("añadidos al firmware") para cada sensor o actuador de forma predeterminada.
Las diversas opciones de firmware de Tasmota
En el “user_config.h” ahora abierto hay todo tipo de opciones de configuración. La mayoría de las veces sólo necesitas una fracción. En aras de la exhaustividad, todas las opciones se enumeran y describen brevemente aquí.
Para que no tengas que revisar todas las opciones individualmente, he resaltado en verde las opciones que absolutamente debes editar. Detrás de esto se esconden, por ejemplo, contraseñas o URL que deberías configurar individualmente o al menos comprobar. Así que verifique estas opciones antes de transferir el firmware a su dispositivo Tasmota.
En la sección "MQTT" puede configurar los parámetros básicos para conectarse al servidor MQTT. – – “MQTT_USE” activa el cliente MQTT.
– “MQTT_HOST” establece la dirección de su servidor MQTT.
– En “MQTT_FINGERPRINTX” puede configurar la huella digital para cifrar su conexión MQTT. – – – “MQTT_PORT” establece el puerto de su servidor MQTT.
– En “MQTT_USER” y “MQTT_PASS” puede configurar el nombre de usuario y la contraseña para su servidor MQTT.
– Con “MQTT_BUTTON_RETAIN”, “MQTT_POWER_RETAIN” y “MQTT_SWITCH_RETAIN” puede activar el indicador de retención para los respectivos mensajes MQTT. Esto significa que los respectivos mensajes MQTT también se envían a clientes MQTT que aún no estaban en línea en el momento en que se envió el mensaje MQTT.
– Con “MQTT_STATUS_OFF” puedes configurar la cadena que se usa en los comandos para desactivar algo.
– Con “MQTT_STATUS_ON” puedes configurar la cadena que se usa en los comandos para activar algo.
– Con “MQTT_CMND_TOGGLE” puedes configurar la cadena que se usa en los comandos para cambiar algo.
– Con “MQTT_CMND_HOLD” puede configurar la cadena que se debe enviar cuando se presiona un botón durante más tiempo del especificado en KEY_HOLD_TIME.
En estas secciones se pueden especificar varios detalles sobre los temas MQTT utilizados.
Con “MQTT_FULLOPIC” especificas la estructura de los temas utilizados. Por defecto, esto siempre consta del “prefijo” y el “tema” respectivo.
Luego, los prefijos se especifican en “SUB_PREFIX”, “PUB_PREFIX” y “PUB_PREFIX2”.
Su dispositivo Tasmota utiliza el prefijo especificado en “SUB_PREFIX” como suscripción, es decir, para recibir valores y comandos.
El pefix especificado en "PUB_PREFIX" se utiliza para publicar valores.
Los datos de telemetría se envían a través del prefijo especificado en "PUB_PREFIX2".
Luego, los temas se definen en “MQTT_TOPIC”, “MQTT_GRTOPIC”, “MQTT_BUTTON_TOPIC”, “MQTT_SWITCH_TOPIC”.
"MQTT_TOPIC" representa el tema individual del dispositivo Tasmota. Siempre se adjunta parte de la dirección MAC de su dispositivo Tasmota.
“MQTT_GRTOPIC” significa un tema en el que puedes combinar varios dispositivos Tasmota en un grupo.
Con “MQTT_BUTTON_TOPIC” y “MQTT_SWITCH_TOPIC” puede configurar temas especiales para cualquier botón e interruptor conectado.
Con “MQTT_CLIENT_ID” puede especificar el nombre o ID del cliente MQTT.
Normalmente puedes dejar todos estos valores como están.
Con estas y las opciones del siguiente apartado podrás establecer los criterios para el cambio de horario verano/invierno. Los parámetros que comienzan con “TIME_DST…” determinan bajo qué condiciones se produce el cambio del horario estándar (horario de invierno) al horario de verano. Los parámetros que empiezan por “TIME_STD_…”, en cambio, son cruciales para el caso contrario, es decir, el cambio de horario de verano a invierno. Por lo demás, los parámetros son idénticos para ambas áreas: “…HEMISFERIO” determina en qué parte del mundo se encuentra. En realidad, esta opción no es necesaria para el cambio de hora, sino para calcular las horas correctas de salida y puesta del sol.
Ahora toca configurar los parámetros para el cambio de hora. Dado que el cambio de hora (al menos en Alemania) del horario de invierno al horario de verano siempre se produce el último domingo de marzo a las 2:00 a.m., debe configurar el parámetro “TIME_DST_WEEK” en “Último” y el parámetro “TIME_DST_DAY” en “ Sun” (=Domingo). , establezca el parámetro “TIME_DST_MONTH” en “Mar” (=Marzo) y el parámetro “TIME_DST_HOUR” en dos. Con el parámetro “TIME_DST_OFFSET” se determina qué diferencia horaria se produce en este caso. También hay que especificar la desviación debida a la zona horaria. En el caso de Alemania, donde el huso horario es UTC+1, es decir +60 minutos, el horario de verano es +120 minutos.
El cambio de hora de verano a invierno (de nuevo en Alemania) siempre tiene lugar el último domingo de octubre a las 03:00.
Por lo tanto, debe configurar el parámetro “TIME_STD_WEEK” en “Last”, el parámetro “TIME_STD_DAY” en “Sun” (=domingo), el parámetro “TIME_STD_MONTH” en “Oct” (=octubre) y el parámetro “TIME_STD_HOUR” en tres . Con el parámetro “TIME_STD_OFFSET” se determina qué diferencia horaria se produce en este caso. También hay que especificar la desviación debida a la zona horaria. En el caso de Alemania, donde la zona horaria es UTC+1, es decir, +60 minutos, aquí se aplica el horario estándar (= horario de invierno) a +60 minutos.
Puede utilizar las opciones “LATITUD” y “LONGITUD” para configurar la posición del dispositivo Tasmota. Esto es necesario para calcular las horas correctas de salida y puesta del sol. Si desea utilizar esta función, es importante proporcionar aquí los datos correctos. Cómo puedes saber la posición de cualquier lugar está en el artículo. Encuentra la latitud y longitud de cualquier ubicación con GoogleMaps descrito. Asegúrese de especificar la posición (como se muestra) en el sistema decimal. Cómo hacer esto también se describe en el artículo mencionado.
“APP_TIMEZONE” define la zona horaria.
“APP_LEDSTATE” define la función de los LED integrados (en muchos dispositivos Sonoff).
“APP_PULSETIME” define la duración del pulso en múltiplos de 0,1 segundos. Un valor de 5 corresponde a 0,5 segundos o 500 milisegundos. Un valor de 0 desactiva esta función.
“APP_POWERON_STATE” define el estado de los relés configurados después del encendido. Están disponibles las siguientes configuraciones: POWER_ALL_OFF, POWER_ALL_ON, POWER_ALL_SAVED_TOGGLE, POWER_ALL_SAVED, POWER_ALL_ALWAYS_ON, POWER_ALL_OFF_PULSETIME_ON
“APP_BLINKTIME” define la duración del pulso de un relé “parpadeante”
"APP_SLEEP" define un período de tiempo entre 1 y 250 milisegundos en el que el ESP8266 se pone en modo de suspensión. De esta forma podrás ahorrar algo de energía. Por supuesto, en el peor de los casos, el ESP8266 sólo reacciona 250 milisegundos más tarde.
“KEY_DEBOUNCE_TIME” define el tiempo de rebote de un botón conectado. Un valor de 50 indica que después de presionar una tecla detectada, el botón relevante se ignora durante 50 milisegundos.
“KEY_HOLD_TIME” define el tiempo que se debe presionar un botón hasta que se reconozca como un botón presionado permanentemente. El valor especificado se vuelve a multiplicar por 0,1 segundos. Un valor de 40 corresponde a un período de tiempo de 4 segundos. El evento "botón presionado" solo se activa después de 4 segundos.
“SWITCH_DEBOUNCE_TIME” define el tiempo antirrebote de un conmutador conectado. Un valor de 50 indica que después de que se detecta un cambio de posición del interruptor, el interruptor en cuestión se ignora durante 50 milisegundos.
“SWITCH_MODE” define el comportamiento del relé configurado en relación con un interruptor conectado. Son posibles las siguientes opciones:
PALANCA; SEGUIR, SEGUIR_INV, BOTÓN, PUSHBUTTON_INV, PUSHBUTTONHOLD, PUSHBUTTONHOLD_INV, PUSHBUTTON_TOGGLE
“WS2812_LEDS” define la cantidad de LED WS2812 conectados.
“TEMP_CONVERSION” activa (=1) o desactiva (=0) la conversión de la temperatura a la unidad Fahrenheit.
“TEMP_RESOLUTION” define la resolución con la que se muestra la temperatura. Puedes elegir entre ninguno y hasta tres decimales. ATENCIÓN: Por supuesto, la resolución respectiva también debe ser proporcionada por el sensor conectado. De lo contrario, este valor supuestamente más preciso es más una conjetura que una exactitud.
“HUMIDITY_RESOLUTION” define la resolución con la que se muestra la humedad. Puedes elegir entre ninguno y hasta tres decimales. ATENCIÓN: Por supuesto, la resolución respectiva también debe ser proporcionada por el sensor conectado. De lo contrario, este valor supuestamente más preciso es más una conjetura que una exactitud.
“PRESSURE_RESOLUTION” define la resolución con la que se muestra la presión del aire. Puedes elegir entre ninguno y hasta tres decimales. ATENCIÓN: Por supuesto, la resolución respectiva también debe ser proporcionada por el sensor conectado. De lo contrario, este valor supuestamente más preciso es más una conjetura que una exactitud.
“ENERGY_RESOLUTION” define la resolución con la que se muestra el consumo de energía. Puede elegir entre ninguno y hasta cinco decimales. ATENCIÓN: Por supuesto, la resolución respectiva también debe ser proporcionada por el sensor conectado. De lo contrario, este valor supuestamente más preciso es más una conjetura que una exactitud.
Estas opciones se pueden utilizar para determinar el comportamiento en caso de que aún no se almacenen datos de acceso WLAN válidos para el dispositivo Tasmota. Si "USE_WPS" está activado (es decir, se eliminan los dos // antes de la entrada correspondiente), tiene la opción de conectar su dispositivo Tasmota a su enrutador usando la función WPS. Si está activado “USE_SMARTCONFIG” podrá introducir los datos de acceso con el Aplicación de Android ESP8266 Configuración inteligente configurar.
La opción “USE_RF_FLASH”, si se activa en un puente RF SONOFF de 433 Mhz, permite programar el coprocesador conectado a través de la interfaz web del firmware Tasmota. Puedes encontrar más información sobre esto en el artículo. Tasmota: chip RF Flash Sonoff RF Bridge (EFM8BB1) con firmware portugués encontrar.
Iniciar el proceso de programación
Después de haber adaptado o configurado el firmware según sus deseos, ahora es el momento de transferirlo al ESP8266 de su dispositivo Tasmota. En este ejemplo, una placa adaptadora ESP8266 normal del WEMOS D1-Mini está programada con el firmware Tasmota.
Diviértete con el proyecto.
Espero que todo te haya funcionado como se describe. Si no es así, o si tiene alguna pregunta o sugerencia, hágamelo saber en los comentarios. Si es necesario, lo añadiré al artículo.
Las ideas para nuevos proyectos siempre son bienvenidas. 🙂
PS Muchos de estos proyectos, especialmente los proyectos de hardware, cuestan mucho tiempo y dinero. Por supuesto que hago esto porque lo disfruto, pero si crees que es genial que comparta la información contigo, me encantaría hacer una pequeña donación al fondo del café. 🙂
En la versión actual del firmware de tasmota de github, la carpeta sonoff descrita anteriormente ya no existe. La compilación no funciona. ¿Qué estoy haciendo mal?
Atentamente
Fabian
Hola Fabián,
tienes razón, la estructura de carpetas ha cambiado un poco.
Pruébelo con la carpeta "Tasmota" en: https://github.com/arendst/Tasmota/tree/development/tasmota
Si abre el archivo “Tasmota.ino”, debería poder compilar el firmware. 🙂
Atentamente
(también) Fabián 😀