Étape 5: Code de microcontrôleur et algorithme utilisé!!
Lorsque le microcontrôleur est mis sous tension il lit l’eeprom pour la récupération de toutes les valeurs de sensomate programmée et États de dispositif qui si quel périphérique était ON/OFF le dernier temps le pouvoir a échoué. Puis après la récupération, il lu toutes les lectures du capteur et les traiter en conséquence en valeurs significative. Après cela le microcontrôleur vérifie les lectures du capteur par rapport aux valeurs sensomate programmée et tourne ON/OFF l’appareil en conséquence. Le contrôle du feu occurance et fuite de LPG se fait ici dans cette boucle principale seulement. S’il y a un signe d’incendie ou de fuite de LPG, le microcontrôleur automatiquement éteint tous les appareils et ouvrir la porte pour les gaz d’échappement et de réduire d’urgence cricality. Le mode veille est également traité ici dans cette boucle. Si le mode veille est activé et mouvement est détecté ou quelqu'un ouvrir la porte, l’alarme se déclenche et attirer l’attention de l’utilisateur.
Dans la deuxième boucle, le microcontrôleur fonctionne timer0 en mode interruption et environ toutes les 1,5 secondes il met à jour l’écran LCD pour les valeurs du capteur et les États de l’appareil. La présence de la liaison Bluetooth est également affichée ici. Le microcontrôleur envoie également l’état du système codé dans une chaîne en série au bluetooth UART si le lien est présent. Il se fait environ toutes les 0,8 secondes. Cette boucle est répétée en continu comme celui de la boucle principale.
La troisième section programmes la série recevoir interruption complète et donc chaque fois qu’une commande de série est reçue du client android, il traite ici et actionner la commande. Il s’agit encore une fois une procédure infinie et microcontrôleur maintient en sentant l’arrivée de la nouvelle commande.
La transmission et la réception des commandes vers et depuis le client android se fait saine en code ASCII.