Outils pour utilisateurs

Outils du site


si_garage

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

si_garage [2019/12/03 19:36] (Version actuelle)
grapsus créée
Ligne 1: Ligne 1:
 +Système d'​ouverture du garage
  
 +Le système d'​ouverture du garage écoute sur le port 4280 et attend une requête sur une URL secrète de la part de framateam. Suite à cette requête il ouvre le périphérique série et lui envoie une commande pour procéder à l'​actionnement du moteur.
 +
 +Pré-requis:​
 +<​code>​
 +apt install python3-flask python3-serial
 +adduser lov dialout
 +</​code>​
 +
 +Code du serveur dans /​home/​lov/​garage:​
 +<​code>​
 +from flask import Flask
 +app = Flask(__name__)
 +import serial
 +
 +ARDUINO = '/​dev/​serial/​by-id/​usb-Arduino__www.arduino.cc__Arduino_Uno_64938323131351213190-if00'​
 +
 +@app.route('/​XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',​ methods=['​POST'​])
 +def open():
 +    try:
 +        with serial.Serial(port=ARDUINO,​ baudrate=9600) as f:
 +            banner = f.readline().decode('​ascii'​)
 +            if '​LOV'​ not in banner:
 +                return "​didn'​t find the garage opener banner"​
 +            f.write(b'​O'​)
 +            f.flush()
 +            resp = f.readline().decode('​ascii'​)
 +            return "​\n"​.join((banner,​ resp))
 +    except serial.serialutil.SerialException as e:
 +        return str(e)
 +
 +if __name__ == '​__main__':​
 +    app.run(host='​0.0.0.0',​ port=4280)
 +</​code>​
 +
 +Pour lancer au boot du serveur dans rc.local:
 +<​code>​
 +sudo -u lov -g lov /​usr/​bin/​python3 server.py 2>&1 >/​var/​log/​garage.log &
 +</​code>​
si_garage.txt · Dernière modification: 2019/12/03 19:36 par grapsus