Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| asso:si:si_garage [2022/11/27 19:06] – supprimée - modification externe (Unknown date) 127.0.0.1 | asso:si:si_garage [2026/08/11 01:07] (Version actuelle) – grapsus | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ===== Système d' | ||
| + | Le système d' | ||
| + | |||
| + | Pré-requis: | ||
| + | < | ||
| + | apt install python3-flask python3-serial | ||
| + | adduser lov dialout | ||
| + | </ | ||
| + | |||
| + | Code du serveur dans / | ||
| + | < | ||
| + | from flask import Flask | ||
| + | app = Flask(__name__) | ||
| + | import serial | ||
| + | |||
| + | ARDUINO = '/ | ||
| + | |||
| + | @app.route('/ | ||
| + | def open(): | ||
| + | try: | ||
| + | with serial.Serial(port=ARDUINO, | ||
| + | banner = f.readline().decode(' | ||
| + | if ' | ||
| + | return " | ||
| + | f.write(b' | ||
| + | f.flush() | ||
| + | resp = f.readline().decode(' | ||
| + | return " | ||
| + | except serial.serialutil.SerialException as e: | ||
| + | return str(e) | ||
| + | |||
| + | if __name__ == ' | ||
| + | app.run(host=' | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | #include < | ||
| + | |||
| + | Servo servo; | ||
| + | |||
| + | void setup() { | ||
| + | pinMode(10, OUTPUT); | ||
| + | digitalWrite(10, | ||
| + | pinMode(11, OUTPUT); | ||
| + | digitalWrite(11, | ||
| + | |||
| + | |||
| + | Serial.begin(9600); | ||
| + | Serial.println(" | ||
| + | |||
| + | / | ||
| + | servo.write(0); | ||
| + | delay(400); | ||
| + | servo.detach(); | ||
| + | pinMode(9, INPUT); | ||
| + | digitalWrite(9, | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | int c = 0; | ||
| + | c = Serial.read(); | ||
| + | if (c == ' | ||
| + | //Code for activating the servo of that simulates a click on the real life remote of the garagedoor | ||
| + | Serial.println(" | ||
| + | / | ||
| + | servo.write(30); | ||
| + | delay(1000); | ||
| + | servo.write(0); | ||
| + | delay(400); | ||
| + | servo.detach(); | ||
| + | pinMode(9, OUTPUT); | ||
| + | digitalWrite(9, | ||
| + | delay(800); | ||
| + | pinMode(9, INPUT); | ||
| + | digitalWrite(9, | ||
| + | Serial.println(" | ||
| + | } else if (c == ' | ||
| + | //Serial data for shorting the remote controller of backdoor | ||
| + | Serial.println(" | ||
| + | digitalWrite(10, | ||
| + | delay(2500); | ||
| + | digitalWrite(10, | ||
| + | Serial.println(" | ||
| + | } else if (c == ' | ||
| + | //Serial data for shorting the remote controller of backdoor | ||
| + | Serial.println(" | ||
| + | digitalWrite(11, | ||
| + | delay(2500); | ||
| + | digitalWrite(11, | ||
| + | Serial.println(" | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Pour lancer au boot du serveur dans rc.local: | ||
| + | < | ||
| + | sudo -u lov -g lov / | ||
| + | </ | ||