Opublikowany w Elektryka, SmartHouse

Użycie czyjników z Arduino

Podłączenie ethernet Shield HR911105A

Komunikuje się ono przez interfejs SPI, który w Arduino Mega używa pinów cyfrowych: 50, 51, 52.

Shield używa SPI przez te piny na środku oznaczone jako ICSP.

Czytnik kart microSD używa dodatkowo pinów: A0 i A1 oraz 4 i 10 (tutaj chyba do wyboru 4 albo 10 – do sprawdzenia)

Przy używaniu dodatkowych urządzeń działających na SPI trzeba używać linii SS lub CS (Slave Select, Chip Select), tutaj jest opis jak sobie poradzić jeśli urządzenie nie obsługuje tej linii:

http://blog.gczernatowicz.pl/2015/11/26/wiele-urzadzen-spi-rfid-sd-zapisywanie-zdarzen/

Podłączenie czujników

Czujniki do grupowania po 3 (albo w innej kombinacji jeszcze z czujnikiem dymu/gazu):

  1. Czujnik ruchu PIR HC-SR501 – używa jednego pinu cyfrowego i zasilania, najprostszy przykład: http://www.homeguard24.pl/jak-zbudowac-czujnik-ruchu-z-arduino/ a tutaj podłączenie czujnika wraz z użyciem przerwań: http://uczymy.edu.pl/wp/blog/2016/07/06/czujnik-ruchu-pir-hc-sr501/511
  2. Czujnik wilgotności i temperatury DHT22 – używa jednego pinu cyfrowego (i interfejsu 1-Wire https://pl.wikipedia.org/wiki/1-Wire) i zasilania – http://akademia.nettigo.pl/dht22/, 1-Wire może być wykonywane na odległościach większych niż 100 mdht22
  3. Czujnik natężenia światła  GY-302 (układ BH1750)  używa magistrali I2C – http://feriar-lab.pl/kurs-arduino-20-i2c/ (ewentualnie rezystor światłoczuły). Musi być podłączony przez I2C Bus extender: P82B715 (opis poniżej).
    Dodatkowo przy większej ilości niż 2 będę musiał użyć multipleksera TCA9548A, opis:
    https://botland.com.pl/multipleksery/4915-modul-z-multiplekserem-i2c-tca9548a-adafruit.html
    https://learn.adafruit.com/adafruit-tca9548a-1-to-8-i2c-multiplexer-breakout/overview
    tutaj ciekawa strona o podłączeniu I2C na większe odległości:
    http://ostalecki.eu/dom-inteligentny/9c858cc0086c758fb341abc419ce0fc6
  4. Czujnik dymu i łatwopalnych gazów MQ-2

Czujniki zamknięte w oprawie oświetleniowej (7zł/szt): http://allegro.pl/oprawa-punktowa-argus-ct-2115-w-biala-kanlux-i6664372827.html

Do której będą montowane czujniki przymocowane do koła wyciętego z mlecznej plexi.

Koniec wyjścia 3 czujników będzie zakończony złączem RJ45 (TODO: sprawdzić dokładnie ile przewodów potrzebuję, może będzie można odejść od RJ45), co oznacza że w puszcze do której będzie montowana całość powinno być wyjście złącza RJ45).

Czujnik temperatury zewnętrzny DS18B20

Czujnik korzysta z interfejsu 1-Wire, czyli zużywa jeden pin cyfowy Arduino (można podłączyć wiele urządzeń).

GND – masa zasilania
DQ – sygnał do komunikacji z kontrolerem (wyjście typu otwarty dren)
VDD – zasilanie od 3 do 5,5 V

Dokładny opis jak całość podłączyć:

http://akademia.nettigo.pl/ds18b20/

Dobieranie rezystora podciagającego

Przy 1-Wire trzeba pamiętać o rezystorze podciągającym:

Magistrala 1-Wire pozwala podłączyć czujniki do przewodu o długości nawet 100m. Jednak już przy kilku metrach mogą zacząć się kłopoty z transmisją. Jeśli masz kłopoty z odebraniem prawidłowej temperatury lub nawet połączeniem się z czujnikiem – musisz dobrać wartość rezystora podciągającego.

Domyślnie ma on wartość 4,7 kΩ. Wynika ona z 2 rzeczy. Gdy czujnik wymusza stan niski w przewodzie, prąd nie powinien przekraczać 4 mA. Gdy czujnik potrzebuje zasilania, obwód powinien dostarczyć mu około 1 mA. Zatem między zaciskami DQ i GND powinien być prąd o wartości od 1 do 4 mA.

Prąd można obliczyć ze wzoru

prąd = napięcie / rezystancja = 5 V / 4700 Ω = 0,00106 A = 1,06 mA

Podłączenie czujnika DHT22 równocześnie z DS18B20:

I2C na większe odległości (i2c Bus extender) i multiplexer

http://piotr.elektroda.eu/dom-inteligentny/

Do zwiększenia zasięgu I2C trzeba użyć układu (bus extender)  P82B715:

http://piotr.elektroda.eu/2015/05/p82b715-czyli-i2c-na-dlugim-przewodzie/

p82b715-pinout

p82b715

I do tego multiplexer: TCA9548A

Ewentualnie można spróbować użyć Moduł z multiplekserem analogowo-cyfrowym 74HC40 – SparkFun

Sterowanie oświetleniem schodowym

Sterowanie oświetleniem schodowym trzeba zrealizować z użyciem dodatkowego adaptera, który rozszerza liczbę wyjść PWM o 16, używa SPI: TLC5940, czyli tyle ile jest schodów.

http://akademia.nettigo.pl/tlc5940/#podlaczenie_ukladu_tlc5940_do_arduino

https://nettigo.pl/products/tlc5940-16-kanalowy-generator-pwm

Rozszerzenie ilości wyjść cyfrowych

Liczbę wyjść cyfrowych zwiększę z użyciem układu: PCF8574.

Układ używa do komunikacji interfejsu I2C.

Opis użycia:

http://starter-kit.nettigo.pl/2011/11/pcf8574-czyli-jak-latwo-zwiekszyc-liczbe-pinow-w-arduino/

pcf8574

  • Vcc – Pin zasilania, podłączany w Arduino do pinu 5V.

  • GND – Pin masy zasilania podłączany w Arduino do GND.

  • P0..P7 – Cyfrowe piny do własnego wykorzystania.

  • SDA – Sygnał danych magistrali I2C podłączany w Arduino do Analog In 4.

  • SCL – Sygnał zegara magistrali I2C podłączany w Arduino do Analog In 5.

  • A0, A1, A2 – Wybór adresu układu, jeśli używasz jednego układu, wszystkie można podłączyć do GND.

  • /INT – Zanegowany sygnał przerwania. Można go używać do wykrywania zmiany stanu na jednym z cyfrowych wejść.

Sterowanie LCD

LCD podłączam przez moduł LM1602 opartym o układ PCF8574.

PCF8574 używa do komunikacji interfejsu I2C (2 złącza SDA i SCL), do tego 2 przewody: Zasilanie +5V i GND.

Program:

#include #include

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // ustawienie adresu expandera do którego podłączony jest wyświetlacz oraz podanie ilości wierszy i kolumn w wyświetlaczu

void displaysSetup()
{
Serial.println(„LCD begin”);
lcd.begin(16,2);                      //Inicjalizacja wyświetlacza

lcd.backlight();

//Napisanie tekstu na ekranie
lcd.setCursor(0,0);
lcd.print(„LCD na I2C!!    „);
delay(5000);
lcd.noBacklight();
lcd.setCursor(0,1);
lcd.print(„Drugi wiersz    „);
}

Podłączenie RFID-RC522

RC522 używa do komunikacji interfejsu SPI (złącze ISCP).

Bibliioteka ze strony:https://github.com/miguelbalboa/rfid

Oznaczania, kolejne złącza i podlaczenie do Mega lub UNO:

Oznaczenie na RFID Pin Mega Pin UNO
SDA(na plytce) to PIN SS 53 10
SCK 52 13
MOSI 51 11
MISO 50 12
IRQ wybór używanego urządzenia
GND masa
RST 5 9
3,3V dziala rowniez 5V

Podłączenie:

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s