Exemple de script que vous pouvez écrire directement dans l'éditeur de l'interface web. Il s'exécute une fois par seconde et, lorsque la température du bouilleur atteint 70 degrés, commence à allumer et éteindre l'appareil raccordé au premier port de l'extenseur PCF8575, tout en l'écrivant dans l'UART et dans la console du navigateur
if TankTemp > 70 then
if exp_digitalRead(1) == 0 then
exp_digitalWrite(1,1)
print("Включено")
else
exp_digitalWrite(1,0)
print("Выключено")
end
end
Exemple de script qui lit la valeur d'un capteur de niveau analogique sur l'entrée LUA_PIN (34 pour la carte DEVKIT) et commande la pompe à eau (par exemple pour pomper le moût fermenté dans le bouilleur). Si le signal est compris entre 1000 et 2000, il allume la pompe ; avec un signal nul, il l'éteint. Le script s'écrit directement dans le navigateur et peut être exécuté dès son enregistrement. La broche 4 est WATER_PUMP_PIN de la carte DEVKIT ; pour les autres cartes, indiquez votre propre numéro.
start_pump = getObject("start_pump", "NUMERIC") + 0 --lire la valeur numérique d'un objet enregistré auparavant et la convertir en nombre
sensor = analogRead() --lire la valeur analogique de LUA_PIN (réservée à Lua)
--sensor = 1500
if sensor >= 1000 and sensor <= 2000 and start_pump == 0 then
setObject("start_pump", 1) --enregistrer la valeur dans un objet de la mémoire de Samovar pour l'utiliser au cycle d'exécution suivant du script
digitalWrite(4,1) --mettre la broche 4 au niveau haut
print("Start pump") --[=[écrire sur le port COM. Vous pouvez aussi utiliser la commande sendMsg("Msg", Level). Si Level = -1, le message est envoyé sur le port COM et dans la console du navigateur, ce qui est pratique pour le débogage. Si Level vaut 0, 1 ou 2, le message est envoyé comme message système]=]
--sendMsg("Start pump",-1)
elseif sensor == 0 then
setObject("start_pump", 0) --enregistrer la valeur dans un objet de la mémoire de Samovar pour l'utiliser au cycle d'exécution suivant du script
if (start_pump == 1) then
digitalWrite(4,0) --mettre la broche 4 au niveau bas
print("Finish pump")
end
end
Scripts prêts à l'emploi chargés dans Samovar avec l'interface web :
rectificat.lua – remplissage du bouilleur par une pompe selon un capteur de niveau ou un capteur de débit d'eau (le volume et les seuils des capteurs sont définis au début du fichier).
dist.lua – distillation répartie dans trois récipients : il mémorise la température du bouilleur au début de l'ébullition et, lorsqu'elle augmente d'une consigne donnée (ou lorsque le titre alcoométrique baisse), bascule le servomoteur vers le récipient suivant, en abaissant la puissance si souhaité.
cheese.lua – modèle de script pour la ligne L d'un programme de fabrication du fromage.
btn_<mode>_button1.lua « Démarrer » («Начать») et btn_<mode>_button2.lua « Arrêter » («Остановить») – activation et désactivation du cycle d'une seconde pour chaque mode.
D'autres exemples se trouvent dans le dossier Lua_script du
dépôt Samovar sur GitHub : régulation de la température de fermentation (beer_mash.lua), réglage de la vitesse de la pompe à eau par boutons, distillation avec concentration (dist_degidrate.lua), envoi des relevés à un service web externe par HTTP (http_request_telegram.lua), maintien du pré-engorgement par un capteur de pression et scripts pour la NBK.