Étape 5: Un plus élaboré LUA exemple : GPIO0 feu clignotant avec signal de réinitialisation sur GPIO2
Nous allons écrire un code qui met en place GPIO0 et GPIO2, crée un serveur TCP et GPIO0 s’allume et éteint « n » nombre de fois selon la valeur envoyée par TCP, à la fin de la séquence, il tourne GPIO2 marche alors il peut être utilisé comme un signal de reset. Ici, il va :
--Ouvrez le fichier pour l’écriture
file.Open("init.lua","w")
--Ouvrez le fichier pour l’écriture
file.WriteLine ([[Imprimer ("feu clignotant GPIO0 et réinitialisation GPIO2")]])
--Ouvrez GPIO0 et 2 pour la sortie
file.WriteLine ([[gpio.mode (8, gpio. SORTIE)]])
file.WriteLine ([[gpio.mode (9, gpio. SORTIE)]])
--Attendre un peu pour assurer l’achèvement
file.WriteLine([[TMR.Delay(10)]])
--GPIO2 cycle donc il peut être utilisé comme signal de réinitialisation
Ile.WriteLine ([[gpio.write (8, gpio. HAUTE)]])
file.WriteLine([[TMR.Delay(10)]])
file.WriteLine ([[gpio.write (8, gpio. LOW)]])
--Créer serveur TCP
file.WriteLine ([[sv=net.createServer (net. TCP, 30)]])
--Ecoute sur le port 9999 et la fonction de rappel « c »
file.WriteLine([[SV:Listen(9999,Function(c)]])
--Attendre charge utile « pl » est reçue
file.WriteLine ([[c: sur ("recevoir", function (c, pl)]])
--Vérification de numéro valide reçu (doit être entre 1 et 16 pour cet exemple)
file.WriteLine ([[if tonumber(pl) ~ = nil then]])
file.WriteLine ([[if tonumber(pl) > = 1 et tonumber(pl) < = 16 puis]])
file.WriteLine([[print(ToNumber(pl))]])
file.WriteLine([[TMR.Delay(10)]])
--Envoyer un autre événement de réinitialisation sur GPIO2
file.WriteLine ([[gpio.write (8, gpio. HAUTE)]])
file.WriteLine ([[gpio.write (8, gpio. LOW)]])
--Boucle selon le numéro reçu
file.WriteLine ([[pour comte =1,tonumber(pl) do]])
file.WriteLine ([[print(count)]])
file.WriteLine([[TMR.Delay(10)]])
--Blink GPIO0 file.writeline ([[gpio.write (9, gpio. LOW)]])
file.WriteLine([[TMR.Delay(10)]])
file.WriteLine ([[gpio.write (9, gpio. HAUTE)]])
file.WriteLine ([[c:send("Sequence finished")]])
file.WriteLine([[end]])
Ile.WriteLine([[end]])
file.WriteLine([[end]])
file.WriteLine ([[c:send("Action completed")]])
file.WriteLine([[end)]])
file.WriteLine([[end)]])
file.Close()
Permet d’envoyer le fichier du module. Vous devriez voir la sortie affichée dans l’image.