diff --git a/klingel_sender_nano_serial/doorbell.py b/klingel_sender_nano_serial/doorbell.py new file mode 100644 index 0000000..3c8533a --- /dev/null +++ b/klingel_sender_nano_serial/doorbell.py @@ -0,0 +1,18 @@ +# https://www.instructables.com/id/Arduino-Python-Communication-via-USB/ +import serial +import urllib.request +import logging + +logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s - %(message)s') +logging.info('Initializing') + + +arduino = serial.Serial('/dev/ttyUSB0', 9600, timeout=.1) + +while True: + data = arduino.readline()[:-2] #the last bit gets rid of the new-line chars + if data: + data = data.decode('utf8') + if (data == 'RING'): + logging.info(data) + urllib.request.urlopen('http://192.168.178.51/bell/on') diff --git a/klingel_sender_nano_serial/klingel_sender_nano_serial.ino b/klingel_sender_nano_serial/klingel_sender_nano_serial.ino new file mode 100644 index 0000000..28801e1 --- /dev/null +++ b/klingel_sender_nano_serial/klingel_sender_nano_serial.ino @@ -0,0 +1,35 @@ +int ledPin = LED_BUILTIN; +int buttonPin = 2; // Button connected to D2 and GND +bool active = false; + +void setup() { + pinMode(ledPin, OUTPUT); + pinMode(buttonPin, INPUT_PULLUP); + Serial.begin(9600); + Serial.println("Starting doorbell sensor"); +} + +void loop() { + int val = digitalRead(buttonPin); + + if (val == LOW) { + delay(2); // catch flares + if (val == LOW && active == false) { + Serial.println("RING"); + digitalWrite(ledPin, HIGH); + active = true; + delay(250); + } + else { + // Serial.println("flare"); + } + } + else { + delay(2); // catch flares + if (val == HIGH) { + active = false; + digitalWrite(ledPin, LOW); + } + } + +}