martes, 7 de abril de 2026

Sensor de temperatura Protocolo TFA - Arduino

  Página principal

Sensor de temperatura
Protocolo  TFA

Arduino

 


Mi primera intención era hacer un sensor para una serie de estaciones meteorológicas que tenía sin sensor. Eran de la marca oregon cientific. Esta marca fue una referencia por su buena calidad, pero esta marca fue comprada por otra compañía, y es muy difícil de encontrar sensores, además si se encontraban eran de precio alto, por lo cual no merecía la pena.

Existe muchos modelos, más de 20, y unos no son compatibles con otros.

Hay 3 protocolos de transmisión, pero la documentación es escasa en cuanto a los diferentes sensores.

Existe una documentación que la sacó alguien con ingeniería inversa. Leyendo está documentación encontré que los sensores emiten un byte una variable aleatoria. Después de algunas pruebas, creo que esta variable aleatoria no es tan aleatoria como debería ser. Algunas estaciones base, leen durante algunas horas los sensores perfectamente al resetear los sensores y la estación base, para dejar de leer después, a pesar de que los sensores siguen mandando datos.
Mi sospecha es que la variable aleatoria es una secuencia de bytes que pertenece a un modelo concreto de base, después de ciertas lecturas si no corresponde a la base en concreta, deja de proporcionar dados de ese sensor. Es una forma de asegurarse de que ningún sensor de otra marca ajena funcione en su estación base. Por este motivo no existen sensores chinos compatibles. Desaparecida la marca, ya puedes tirar la estación base.
Como era muy difícil de realizar este tipo de sensores, empecé con otro.
Tengo 3 bases meteorológicas que funcionan con el protocolo TFA, es sencillo y solo transmite temperatura. Solo tengo 1 sensor que leen las 3 estaciones bases, por lo que en este montaje crearé un segundo sensor que funcione en el canal 2.


Existe un programa que lee muchos protocolos de diferentes sensores, desde coches hasta sensores de temperatura. Este programa se llama RTL_433 y utiliza un decodificador USB de televisión digital para la recepción de señales.

Mirando en su código fuente, se puede ver la estructura del protocolo  TFA.
Gracias Alexandre Coffignal (rtl_433) por su magnífico programa.
Data layout:
    CCCCIIII IIIITTTT TTTTTTTT DDBF
- C: checksum, sum of nibbles - 1
- I: device id (changing only after reset)
- T: temperature
- D: channel number
- B: battery status
- F: first transmission


Como me gusta investigar por mí mismo, voy grabar la señal mediante el programa Gqrx .
Lo analizo con el programa de audio Audacius para la medir los tiempos.
Descubro que los datos se repiten 7 veces y los tiempos son los que se ven en la imagen.

Se puede observar  que entre bits el pulso de separación es de 475 micro Segundos. Si se quiere mandar un cero la separación entre pulsos es de 2500 mS, y si es 1 la separación es  5000 mS. La separación entre las 7 repeticiones es de 10mS. Al inicio de la transmisión debe existir un pulso y una separación de 10mS.
Ahora comienza la programación en Arduino para generar este patrón de datos. Mediante un analizador digital barato (7€) compruebo la señal generada. Es un patrón de 7 grupos de 4bits, el primero es el la suma de los otros 6 grupos – 1 .



A final los diferentes tiempos de la señal son los siguientes.
#define SENAL_ALTA 500
#define SENAL_0 2400
#define SENAL_1 5000
#define SEPARACION 10000


El circuito utiliza el AHT20 como sensor, que utiliza la comunicación I2C. La parte de humedad de este sensor no se utiliza, por lo que me planteo para una revisión posterior el utilizar 18B20 como sensor de temperatura.

Por el pin 13 del arduino se manda la señal a un transmisor de radiofrecuencia en 433MHz  cada 36 segundos.
En los pines 3 y 4 se selecciona el canal y el pin 2 se puede utilizar para transmitir la señal cuando se quiera.

El programa está diseñado para la depuración por el puerto serie, aunque el que quiera puede eliminar todo lo relativo a la comunicación serie.
Todo está montado y probado en una protoboard utilizando el arduino nano.

Como lo importante en un sensor es la medición correcta de la temperatura y la autonomía de la batería, utilizo la librería LowPower para dormir el microprocesador mientras no hace nada.
Se puede ver en la imagen los diferentes consumos dependiendo de la alimentación, de cuando está despierto y dormido. Aún así el consumo es alto para un este tipo de sensores.
En este otro montaje solo monto el ATMEGA328 y los componente mínimos.

Esto es otra cosa, el consumo baja hasta los 0.10 mA cuando está dormido, y 7 mA cuando está despierto y transmitiendo.
Haciendo unos cálculo rápidos si demasiada precisión.
Con una batería de 1000mA/H y el micro siempre  dormido la autonomía sería de 10000 horas o lo que es lo mismo 416 días.
Como hay que ser más realista y pensando que cada 60 segundos está despierto 4 segundos podría durar la batería 90 días más o menos.
Ahora nos toca el diseño del Circuito integrado y su creación.
Utilizo el programa KIDcad para el diseño de la PCB. Y utilizo el método láser para la creación del circuito impreso.

Colocados los componentes, el prototipo queda bastante compacto, aunque si se soldarían  los componentes al circuito impreso directamente quedaría aún más pequeño.

Me lo he pasado bastante bien experimentando con señales, vosotros podéis probar otro tipo de sensores.

Programa

Saludos.
Juan Galaz



Bibliografía:

http://seta43.duckdns.org/ard433.html
http://seta43.duckdns.org/termot.html
http://seta43.duckdns.org/temt3.html

martes, 17 de marzo de 2026

Manipulador Morse - Paleta simple - Arduino

  Página principal

Manipulador Morse
Paleta simple
Arduino

Continuando con el artículo http://seta43.duckdns.org/morse/morsema.html, vi que se podía mejorar.
El mayor problema de tener los contactos al aire, es que se pueden ensuciar produciendo falsos contactos.
Y ya de paso era utilizar una simple paleta para manejar tanto los puntos como las rayas.

Utilizando micro pulsadores herméticos, se consigue que no se ensucien los contactos.



En el vídeo se puede ver el manejo.
Perdonar que mi velocidad de manipulación sea lenta, tengo la velocidad de caracol. ;)

Si se detecta "..--" se borra la pantalla.
Si se detecta "......"  se hace una
media de la velocidad del operador.

VIDEO
Ficheros STL


Saludos.
Juan Galaz



Bibliografía:

http://seta43.duckdns.org/morse/morsema.html
https://morsecode.world/international/decoder/audio-decoder-adaptive.html
https://es.wikipedia.org/wiki/C%C3%B3digo_morse
http://seta43.duckdns.org/armorse.html
http://seta43.duckdns.org/amorb.html

lunes, 9 de marzo de 2026

FreeCAD Caja con bisagra

 

FreeCAD
Caja con bisagra

Ya que estoy con FreeCAD practicando, se me ocurrió hacer una pequeña caja con bisagra.


Como se puede ver, el agujero en la caja está desplazado 0,5 mm a la derecha para que encaje mejor.




En la cama caliente de la impresora 3D recién terminada la impresión.


Con una aguja gorda hacer la primera prueba para abrir el agujero.


Con el alambre de un clip se hace el pasador.



FUENTES

Saludos.
Juan Galaz


Bibliografía:

lunes, 2 de marzo de 2026

FreeCAD - Copia de figuras de ajedrez

 

FreeCAD
Copia de figuras de ajedrez

 

Con FreeCAD existen varias formas de copiar figuras 3D del tipo ajedrez.
En ciertos modelos es necesario colocar soportes para imprimir figuras que tienen mucho vuelo en la impresión.
Existe otro método que es dividir la figura en dos partes, para luego unirlas mediante pegamento.
Muestro la figura de reina del ajedrez como ejemplo.

Figura real y figura copiada .


Pieza impresa de los dos modos, entera y partida en dos.


Detalle de las dos piezas.

Cada uno debe pensar el mejor método para su caso.
Si hay muchos balcones, tienes dos opciones, utilizar soporte al imprimir, o hacer la pieza en dos mitades.









lunes, 16 de febrero de 2026

SERVIDOR WEB X96q (H313) ARMBIAN

  Página principal

SERVIDOR WEB
X96q (H313)
ARMBIAN  



Después de haber creado un servidor para el X96 mini (S905W) , ahora continuo con la X96q (H313).



Existe numerosas imágenes para esta placa, en este caso he utilizado.
    Armbian-unofficial_24.11.0-trunk_X96q_bookworm_current_6.6.44_mate_desktop.img.xz   857MB.
Existen varios lugares donde se pueden baja, aunque posiblemente se hayan movido ya.
    https://github.com/NickAlilovic/build/releases/tag/20250306
    https://github.com/sicXnull/armbian-build/releases/
    https://github.com/NickAlilovic/build/releases

Con esta imagen he conseguido que funcione el WIFI, aunque para un servidor es mucho mejor la red cableada.
Un problema que tengo yo es el ROUTER LIVEBOX . Resulta que no negocia bien la RED con la TVBOX, no se sincroniza bien, por lo que tengo que bajar la velocidad de la RED a 10Mbs para poder tener RED por cable. He probado a conectar mi caja a través de otro router  y la velocidad llega a 80MBs. Si encuentro la solución la publicaré.

Existen dos tipos de cajas, la que funciona con memoria  DDR3 o la que funciona con lpddr3.

Al iniciar por primera vez Armbian, te pide la nueva contraseña para root, y crear un nuevo usuario, le voy a llamar usuario, con su contraseña.
Si estas conectado a internet intentara detectar la localización para configurar los locales, yo de momento no quiero.
En mi caso creo otro usuario para manejar la página web, su nombre será seta.
La configuración que viene por defecto es que el nuevo usuario tendrá permisos de administrado, de esta forma no usaremos root en el entorno gráfico. El problema es que para usarlo en modo consola deberemos usar root. Es un contrasentido, pero es como viene por defecto.
También para configurar todo, deberíamos entrar en modo consola con CTRL+Alt+F2, entrar como root y luego teclear armbian-config, pero no siempre funciona todo, y deberemos reconfigurar todo con dpkg-reconfigure locales .

Existen dos formas de acceder al X96Q de forma remota, mediante vnc o mediante ssh.
Con vnc se visualiza el estado de la pantalla, que se manda en forma de imágenes, y con control del teclado y el ratón.
Con ssh los programas se ejecutan en el X96Q, aunque la representación gráfica se hace en el ordenador, esto es mucho más rápido,  es la magia del servidor X.
Ejemplos:
    ssh -X -p 22 seta@192.168.1.60 xfe
    ssh -X -p 22 seta@192.168.1.60 mate-terminal


Ejecutando programas en PC remoto con el protocolo  SSH

Los ficheros para el servidor WEB los subo mediante el protocolo ftp.

Antes de nada he de decir que no he probado la seguridad del sistema, en mi router solo he abierto el puerto 80 para servir las páginas web. Tampoco he instalado ninguna extensión en el servidor, solo sirve páginas web estáticas. Es una forma de blindar un poco el servidor, pero no infalible.


VÍDEO


apt-get update

sudo apt-get install dillo ssh x11vnc vsftpd nginx xfe mc


/usr/sbin/adduser seta

/usr/sbin/usermod -a -G www-data seta

chown -R seta:seta   /var/www/html
chmod  ugo+rx    /var/www/html

-----------------SERVIDOR FTP-----------------------------
geany /etc/vsftpd.conf

listen=NO
listen_ipv6=YES

anonymous_enable=NO
local_enable=YES
write_enable=YES

dirmessage_enable=YES

use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES

local_umask=022

secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO


----------SERVIDOR VNC---------------------
--ESTO SE HACE COMO USUARIO NORMAL--
CONTRASEÑA
     x11vnc -storepasswd

En Xfce añadir un arraque automático:
  
Exec=x11vnc -forever -usepw -display :0 -ultrafilexfer


------------Paquetes extras ---------
apt-get install chromium vlc audacious clementine abiword gnumeric mousepad geany
apt-get install  dump1090-mutability rtl-433  gqrx-sdr



Saludos.
Juan Galaz



Bibliografía:

http://seta43.duckdns.org/serora.html
http://seta43.duckdns.org/x96mini.html
http://seta43.duckdns.org/2026/x96/munx96.html

https://www.youtube.com/watch?v=Rgl_gaMPYp8


sábado, 7 de febrero de 2026

El mundo del X96 mini

 

El mundo del X96 mini

Al intentar instalar el servidor Linux en un segundo X96,  me encontré que no arrancaba.
Las dos cajas X96 parecían iguales, pero una arrancaba y la otra no.
El sistema Android instalado era diferente, y en un test me salió que una tenía 2G y la otra 4G de memoria RAM, y eso que en la etiqueta marcaba 2G RAM y 16G de almacenamiento.
Todo era raro. Además en el mismo test una marcaba p281, y en la otra p282.
La mejor manera era abrir las cajas y ver lo que había dentro.

La una es la versión de placa V2.2 y la otra V2.3
Tiene los mismos componentes, y casi la misma disposición.
La única diferencia es el fabricante de algún CHIP.
Personalmente en la versión V2.2 utiliza mejores componentes y el CI tiene mejor calidad.
En procesador en ambas es el S905W , y el chip de Wifi el SV6051P.

En la caja que no arrancaba la tarjeta SD con Linux, instalé un nuevo firmware.
Como estas caja tienen unos 6 años me constó encontrar los firmware  para el x96 mini.
Aunque existen muchos enlaces, al intentar bajar los ficheros, los enlaces estaban rotos.
Al final encontré estos:
X96mini_Plus1_20220530-1713.img
X96mini_RP_20201016-1431.img
X96mini_RP_20230626-1034.img
X96mini_RP_20240520-1634.img
X96W_P_20230401-1513.img
Mediante un cable de doble USB, y junto la aplicación Amlogic Burning Tool, solo funciona en Windows, instalé diferentes Android.
Aunque existen muchos vídeos, los pasos son los siguientes:
  • Instalar Amlogic Burning Tool, y ejecutarlo (en mi caso win7).
  • Importar firmware.
  • Botón START.
  • Con el X96 sin alimentación (no 5V).
  • Pulsar el botón que está dentro del AV, y sin soltar conectar el cable USB al puerto blanco del x96.
  • Soltar el botón pulsado cuando haya reconocido la conexión.
  • Esperar la instalación del firmware (2-4 minutos).
Al reinstalar android, se habilitó la posibilidad de que pudiese arrancar desde la SD.

El proyecto ARMBIAN es que lleva todo el trabajo.
Imágenes Linux hay muchas, el problema es encontrar los enlaces, que se mueven o desaparecen muchos, en mi caso las imágenes preferidas son:
ARMBIAN_X96_MINI/armbianIMG/Armbian_20.05.3_Arm-64_buster_current_5.7.0-rc2_desktop_20200425.img.xz  (preferida)
ARMBIAN_X96_MINI/armbianIMG/Armbian_20.10_Arm-32_focal_current_5.9.0_desktop.img.xz
ARMBIAN_X96_MINI/armbianIMG/Armbian_20.10_Arm-64_bullseye_current_5.9.0_desktop.img.xz
ARMBIAN_X96_MINI/armbianIMG/Armbian_20.10_Arm-64_buster_current_5.9.0.img.xz
ARMBIAN_X96_MINI/armbianIMG/Armbian_20.10_Arm-64_focal_current_5.9.0_desktop.img.xz
Un enlace donde existen muchas es https://armbian.lv.auroradev.org/archive/aml-s9xx-box/archive/ , aunque igual ya no existen.

Grabar la imagen en una SD (que sea rápida tipo 10) de como mínimo 8G con balenaEtcher, o con cualquier otra aplicación.
Retire la microSD de forma segura y vuelva a insertarla

Configurar la tarjeta MicroSD para Armbian

    Abra la partición legible de la tarjeta microSD en Explorer
    Cambie el nombre del archivo apropiado de abajo a u-boot.ext en la raíz de la tarjeta SD

    u-boot-s905 (para s905)
    u-boot-s905x-s912 (para s905x y s912)
    u-boot-s905x2-s922 (para s905x2 y s922)

    En mi caso hago una copia de u-boot-s905x-s912 (para s905x y s912) y lo renombro a u-boot.ext.
   
    Edite /extlinux/extlinux.conf en un editor de texto
        Comente las líneas rk-3399 agregando #
        Descomente las líneas aml s9xx FDT y APPEND eliminando #
        Actualice la línea FDT para que apunte a un archivo .dtb que funcione para su dispositivo
    Para el X96mini:

LABEL Armbian
LINUX /zImage
INITRD /uInitrd

FDT /dtb/amlogic/meson-gxl-s905x-p212.dtb
APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0

   
Salvar y expulsar de forma segura

Inserte la tarjeta microSD en la caja de Android TV
   
Este paso algunas veces no hace falta.
Arrancando  Armbian por primera vez :
   Con un palillo o similar, se introduce en la conexión AV y se pulsa un botón interior.
    A la vez se conecta el adaptador de corriente a la caja de Android TV.
    Esto solo hay que hacerlo la primera vez que arranca Armbian.

En mi caso si tengo insertado el adaptador wifi, o algún otro tipo de picho USB, no me arranca.
Cada imagen distinta de Armbian tiene sus características y formas de arrancar.
La contraseña por defecto es 1234 , luego es mejor cambiarla.
Una vez en consola (mejor en consola de texto CTRL+Alt+F2) configurar el entorno con armbian-config .
No me funciona el WIFI con el adaptador( SV6051P) que viene en el x96, pero si pinchas uno al USB te funciona.

Ahora el trabajo y la imaginación es vuestra.
Recordar los enlaces aparecen y desaparecen, y seguro que todas la imágenes no sean seguras.
Las imágenes que muestro las tengo guardas, si alguno las quiere que me mande algún mensaje.

Espero que este artículo os haya parecido interesante.

Saludos.
Juan Galaz


Bibliografía:
http://www.seta43.duckdns.org/x96mini.html
https://www.youtube.com/watch?v=A_V50MuJ7DE
https://www.sigmdel.ca/michel/ha/aml912/linux_on_aml912_en.html
https://docs.armbian.com/Hardware_Allwinner/
https://i12bretro.github.io/tutorials/0316.html

Instalar en la raspberry Pi servidores. RaspServer
Servidor WEB con Orange PI (raspberry pi) y NGINX - SERVIDOR_Orangepi
Servidor DELL R200. SERVIDOR