Étape 4: Écriture du Code
Tout d’abord, j’ai lu le Guide du MediaTek LinkIt un développeur, en particulier, la section sur la réception de SMS, ainsi que l' API. J’ai joint le guide ici au cas où ce lien ne fonctionne plus.
J’ai joint mon code complet ici, qui devrait fonctionner. Je l’ai cassé plus précisément dans les petites fonctions qui devraient être faciles à comprendre, je vais aller dans chacune d’elle ici. Veuillez lire les commentaires en ligne trop pour plus de détails.
Initialiser des Variables globales
fonction Setup()
La fonction d’installation est exécutée une fois après le démarrage de l’appareil. La goupille qui contrôle le bord conduit (D13) et la broche reliée à la base du transistor (D12) sont initialisés comme sorties et valeurs par défaut de 0 (« LOW »).
Le port série est initialisé à une vitesse de transmission 9600, afin que les informations de débogage peuvent être imprimées.
La fonction waitForSim() est appelée une fois (décrit plus loin)
fonction waitForSim()
La fonction waitForSim() est simplement assis dans une boucle, vérifiant chaque une demi-seconde, définie par delay(500), si la carte SIM est prête. La LED verte est activée/désactivée chaque chèque afin qu’il clignote et ensuite à gauche sur une fois la carte SIM est prêt.
fonction receiveSms()
Cette fonction vérifie si il y a un nouveau SMS. Lorsque celui-ci existe, il est lu, un caractère à la fois et stocké dans la mémoire tampon de smsContent. S’il n’y a aucun nouveau SMS alors la fonction retourne la valeur false. Cela nous permet de l’appeler aussi souvent que nous aimons dans la boucle principale.
Une fois que le SMS a été lue, il est enlevé avec la commande de la fonction flush().
fonction displaySMS()
Cette fonction affiche juste l’expéditeur et le contenu tampons au port série, qui est utile pour le débogage.
fonction validatePassword()
Cette fonction est utilisée pour comparer le contenu du SMS avec la chaîne de mot de passe. Si le contenu correspond à la chaîne, alors que la fonction renvoie la valeur 1 (HIGH), sinon elle retourne 0 (faible).
fonction triggerRemote()
Fonction, que cette fonction définit simplement l’axe D12 (base de transistor) élevée pour une durée spécifiée (1 seconde a fonctionné pour moi, télécommande vous pouvez préférer quelque chose de différent)
fonction Loop()
Cette fonction est au cœur d’un programme d’Arduino et passe juste maintes et maintes fois pour toute l’éternité. Puisque tout a déjà été divisée en fonctions, il est complètement explicite.