Raspberry Pi kontaktron czujnik otwarcia okien i drzwi + układ MCP23017

kontaktron_1

Budując inteligenty dom, nie można pominąć kwestii bezpieczeństwa. Informację o otwartych oknach i drzwiach dostarczyć nam mogą różnego rodzaju kontaktrony. W tym przykładzie użyto najprostszego kosztującego niecałe 7 zł kontaktronu dedykowanego do drzwi .

Podłączenie bezpośrednie kontaktronu do Rpi

Połączenie to jest niezwykle proste.

  • krótszy przewód wpinamy do GND RPi – niebieska zworka na zdjęciu -> linia GND
  • dłuższy np. do PIN 16 (GPIO 23) – zielona zworka na zdjęciu

 

Dzięki możliwości tworzenia przez RPi wewnętrznych rezystorów pull-up nie musimy dodawać dodatkowego rezystora.  Oddalenie magnesów kontaktrona na więcej niż 2,5 cm powoduje powstanie stanu niskiego. Połączenie styków czyli np. zamknięcie drzwi powoduje znowu powstanie stanu wysokiego.

W poniższym skrypcie ustawiono pin 23 do którego podłączony jest drugi przewód kontaktronu w tryb Pull-Up (rezystor podciągający).

kontaktron_3

Podłączenie kontaktronu do układu MCP23017

  • układ MCP23017 ma wewnętrzne rezystory Pull-Up.Nie posiada rezystorów Pull-Down. W przypadku podłączenia do szyny I2C zaleca się jednak używania zewnętrznych rezystorów Pull-Up.
  • należy pamiętać, że mniejsze rezystory szybciej działają jako Pull-Up ale istnieje niebezpieczeństwo uszkodzenia pinu lub całego układu MCP23017 . Dla napięcia 5V odpowiedni będzie w tym przypadku rezystor 10k ohm dla 3,3V 4,7k Ohm (przy długości kabli +/- 20 cm). Rezystor podciągający używamy aby jednoznacznie określić stan na danym pinie: wysoki/niski.
  • krótszy kabel (-) do GND płytki
  • dłuższy kabel (+) poprzez rezystor 4,7k Ohm do pinu
  • dioda LED czerwona (+) poprzez rezystor (tutaj 75 Ohm) do GPA3 (pin 68) MCP23017
  • dioda LED czerwona (-) do GND płytki
  • kontaktron krótszy przewód do GND
  • kontaktron dłuższy przewód poprzez rezystor 4,7k Ohm do GPA1 (pin 66) MCP23017

kontaktron_4

W poniższym skrypcie stan niski czyli otwarcie drzwi powoduje zapalenie diody podłączonej również do układu MCP23017.

Warto zobaczyć

https://learn.adafruit.com/adafruits-raspberry-pi-lesson-12-sensing-movement/hardware
http://rocode.com/sensors/
https://learn.sparkfun.com/tutorials/pull-up-resistors/what-is-a-pull-up-resistor

Kontaktron do kupienia w:

http://botland.com.pl/czujniki-magnetyczne/3104-czujnik-otwarcia-drzwiokien-kontaktron.html

1 myśl na temat “Raspberry Pi kontaktron czujnik otwarcia okien i drzwi + układ MCP23017

  1. Witam. Temat stary, ale po zakupie raspa, ciekawy 🙂
    Według powyższego kodu, urządzenie będzie wyświetlać informacje co 3s o stanie „odbiornika” na GPIO.
    Jakie natomiast powinny być wydane komendy w kodzie, aby informacja dotyczyła tylko zmiany stany kontaktrona?
    Przepraszam za składnię i merytoryczność pytania, ale programowanie jest u mnie póki co na douczaniu.
    Docelowo próbuję wysyłać mail o otwarciu/zamknięciu drzwi lub okna. Po warunku if, wykonywana jest komenda z linku podanego w tutorialu, zamiast print.
    Natomiast sama składnia wykonywania polecenia się do tego nie nadaje (bez urazy 🙂 ), ze względu na możliwy SPAM na skrzynce.
    Sama informacja powinna być przekazywana po zmianie stanu, a nie po odczycie czasowym.

    Z wyrazami szacunku

Dodaj komentarz