Paso 4: Código de Arduino
El código es complejo - fue un gran esfuerzo, y varios trucos que debían emplearse para exprimir todo este código (emulador de teclado, servidor web HTML, páginas HTML, cliente de correo electrónico, Websocket Webserver y DES encriptación y Base64 bibliotecas) en el pequeño Arduino UNO 32K flash y ram espacio.
Todo el código está alojado aquí:
https://github.com/OzmoOzmo/CastleHKCArduinoRKP
Voy a actualizar el proyecto de código de cada tiempo - así que el proyecto de la bifurcación para obtener notificaciones cuando hay una actualización.
Descargar todos los archivos (importante: use el botón de descarga zip en lugar de un archivo a la vez).
Para compilar:
Colocar en la misma carpeta - y abra el archivo .ino en el IDE de Arduino.
Hay un archivo de configuración en el fichero config.h del proyecto - esto es donde se establece su dirección IP, su dirección de correo electrónico y otras opciones. Está bien comentado con todas las opciones para elegir.
Compilar y cargar en a Arduino. Se necesita desconectar el Arduino completamente desde el panel de alarma a programar-como si nada conectado al Arduino RX y TX (pin 0 y 1) pueden interferir con el progreso de programación.
También su mejor no tener la fuente de alimentación de 5V conectada al Arduino y el USB conectado a un PC al mismo tiempo.
Desarrolladores - personalización del software
Hay un software de serie hacia fuera para la depuración - usted puede conectar esta vía un TTL a USB para ver los registros de la arduino. La bandera para activar el modo debug está apagado en el código por defecto. Encontré Micro Visual a un entorno de desarrollo mucho mejor que el IDE de Arduino.
Un osciloscopio y analizador de señal digital fueron vitales para descifrar los protocolos utilizados.
Para el curioso - cómo invertir diseñado el protocolo de
Conectar dos teclados
Mide la velocidad en baudios con un osciloscopio. Pude ver que era un poco 9 sorprendente y velocidad inusual que era difícil conseguir trabajar en Arduino (como las bibliotecas de Arduino no admiten sólo 8 bits). El extra poco fue utilizado para señalar el comienzo de un nuevo mensaje.
- y con tensión adecuada nivelación resistencias tenía un Arduino escuchar el tráfico en el bus de datos de un cable y enviar a la pc.
-Cada teclado puse una resistencia diferente a la línea de datos, así que pude identificar cuando la alarma, keypad1 o keypad2 estaba usando la línea controlando el nivel de voltaje así como leer el mensaje.
-Por cada función de la operación, pude ver los paquetes de mensaje relevante los teclados y alarma enviado; Pude ver un byte de comando para las distintas funciones; Mostrar texto, luz led, sonido zumbador etc. y el texto enviado como texto sin formato, cada uno con un byte de suma de comprobación.
- y duplicar esta funcionalidad en el código.
El código para registrar un nuevo teclado fue el más difícil.