Étape 4: Arduino Code
Le code est complex - c’était un gros effort, et plusieurs astuces pour servir à caser tout ce le code (émulateur de clavier, serveur Web HTML, pages HTML, client de messagerie, cryptage Websocket Webserver et DES bibliothèques Base64) tous dans le minuscule Arduino UNO 32K flash et ram espace.
Tout le code est hébergé ici :
https://github.com/OzmoOzmo/CastleHKCArduinoRKP
Je mettrai à jour le projet de code de chaque certain temps - donc soyez sûr de la fourche du projet afin que vous obteniez des notifications lorsqu’il y a une mise à jour.
Il suffit de télécharger tous les fichiers (important : utilisez le bouton de téléchargement zip plutôt que d’un seul fichier à la fois).
Pour compiler :
Placez-les dans le même dossier - et ouvrez le fichier .ino dans IDE Arduino.
Il y a un fichier de configuration dans le projet config.h - c’est où vous définissez votre adresse IP, votre adresse e-mail et autres options. Il est bien commenté avec toutes les options à choisir.
Compiler et télécharger sur Arduino. Vous avez besoin coupera l’Arduino complètement dans le panneau d’alarme pour programmer-comme si quoi que ce soit relié à l’Arduino RX et TX (broche 0 & 1) il peut interférer avec le cours de programmation.
Aussi son meilleur ne peut avoir l’alimentation 5V reliée à l’Arduino et le port USB connecté à un PC en même temps.
Développeurs - personnalisation du logiciel
Il existe un logiciel serial dehors pour le débogage - vous pouvez vous connecter cela via un TTL pour USB pour voir les logs de l’arduino. L’indicateur pour activer le mode debug est désactivé dans le code fourni par défaut. J’ai trouvé le visuel Micro à un environnement de développement beaucoup mieux que l’IDE Arduino.
Un oscilloscope et un analyseur de signaux numériques étaient vitales pour décoder les protocoles utilisés.
Pour le curieux - comment j’ai inverse machiné le protocole
-J’ai connecté deux claviers
-J’ai mesuré la vitesse de transmission à l’aide d’un oscilloscope. J’ai pu voir que c’était un surprenant 9 bit et inhabituelle en bauds qui était difficile à faire fonctionner sur l’Arduino (comme les bibliothèques Arduino ne soutiennent pas seulement 8 bits). L’extra peu était utilisé pour indiquer le début d’un nouveau message.
- et l’utilisation électrique appropriée, résistances de nivellement avait un Arduino d’écouter sur le trafic sur le bus de données d’un seul fil et envoyer à l’ordinateur.
-Chaque pavé j’ai placé une résistance différente sur la ligne de données, donc je pourrais identifier lorsque l’alarme, la keypad1 ou la keypad2 utilisait la ligne en surveillant le niveau de tension ainsi que de lire le message.
-Par l’utilisation de chaque fonction, j’ai pu voir les paquets de messages pertinents les claviers et alarme envoyée ; Je pouvais voir un octet de commande pour les différentes fonctions ; afficher du texte, lumière led, sonore buzzer etc. et le texte d’affichage envoyées en texte brut, chacune avec un octet de total de contrôle.
- et j’ai reproduit cette fonctionnalité dans le code.
Le code pour enregistrer un nouveau clavier a été le plus difficile.