niedziela, 11 października 2015

Arduino Inteligentny Dom

Arduino Inteligentne domy w budownictwie.


1. Panel ośmiu przekaźników SSR. Ostatecznie może być 4 kanałowy
2. Klon Arduino LEONARDO R3 Atmel














Projekt "inteligentny dom" został zakończony. 
Zamiast domów, są małe domki "Makiety" z uwagi na własne nakłady finansowe nauczyciela. Brak wkładu szkoły. 
W sali nr 27 można oglądać makiety podpięte do sterownika włączającego oświetlenie domków. Oświetlenie jest uruchamiane po zbliżeniu się osoby na odległość 50 cm. Opcjonalnie oświetlenie jest włączane z użyciem pilota do projektora :)



Z pewnymi obawami ale i nadzieją, zaczynam dział poświęcony Arduino.
Płytka posłuży nam do skonstruowania prostych sterowników zasilania.

a). Pobieramy program od Arduino https://www.arduino.cc/en/Main/Software
b) Zapoznajemy się z językiem programowania http://www.plociennik.info/index.php/podstawy-jezyka
c). Tworzymy pierwszy projekt.

1. Projekt sterownia przekaźnikiem http://www.jarzebski.pl/arduino/komponenty/przekazniki-elektromagnetyczne.html

2. Sterowanie pilotem
http://majsterkowo.pl/jak-sterowac-dowolnym-urzadzeniem-za-pomoca-pilota-i-arduino/

== WYKONANIE STEROWNIKA CZASU RZECZYWISTEGO===

Wykonanie sterownika 4TB Energia odnawialna

Co jest potrzebne

  • Zegarek RTC DS1307 (tylko z akumulatorem nie z baterią! )
Zegarek RTC

  • Panel ośmiu przekaźników SSR. Ostatecznie może być 4 kanałowy (jest tańszy)
ssr-male
Przekaźniki mechaniczne nie nadają się! Przy obciążeniu indukcyjnym resetują arduino. Próbowałem je obstawić kondensatorami, diodami, dławikami i zawsze w końcu trafiał się restart. Przy akwarium za kilka tysiaków raczej niedopuszczalne jest żeby zacięła się pompa dozująca.
  • Microswitche, trzy do manualnej obsługi timerów i jeden do obsługi funkcji karmienia
  • Dioda LED z rezystorem stosownym do koloru i oczekiwanej mocy świecenia.
  • Buzer 5V z generatorem
  • Zasilacz do Arduino
  • Przewody (męsko  żeńskie i żeńsko żeńskie)
  • Biblioteki http://magu.pl/aqma_files/time.ziphttp://magu.pl/aqma_files/DS1307RTC.zip
  • Jakaś obudowa
  • Moduł do płytek stykowych ze złączem ARK4
  • Płytka prototypowa stykowa 400pól arduino bascom
  • Wyświetlacz LCD 1602 2x16 HD44780 blue dla ARDUINO 
  • Chęci!!!

Gdzie tego szukać?
http://allegro.pl/klon-arduino-mega2560-r3-atmel-atmega2560-avr-usb-i5747071215.html
http://allegro.pl/modul-4-kanalowy-przekaznik-5v-10a-avr-arm-arduino-i5152899977.html
http://allegro.pl/modul-czasu-rtc-ds1307-24c32-arduino-avr-pic-i4876947652.html
http://allegro.pl/plytka-prototypowa-stykowa-400pol-arduino-bascom-i5242806245.html
----
Inna oferta na stronie plus doradztwo.


http://botland.com.pl/wyswietlacze-alfanumeryczne/224-wyswietlacz-lcd-2x16-znakow-niebieski.html

3. Sterowanie czasem
A teraz baaaardzo prosty kod w C:

#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 RTC;

int whitePotValue = 0; //analogowa wartość na potencjometrze kanału białego
int bluePotValue = 0; //analogowa wartość na potencjometrze kanału niebiekiego
int bluePWMValue = 0; //cyfrowa wartość PWM podawana na driver niebieskich
int whitePWMValue = 0; //cyfrowa wartość PWM podawana na driver białych

bool dzien = true; //wartość logiczna określająca czy jest dzień czy noc

void setup() {
// te 4 linijki ponizej dotycza podlaczenia RTC do arduino
pinMode(16, OUTPUT);
pinMode(17, OUTPUT);
digitalWrite(16, LOW);
digitalWrite(17, HIGH);

Wire.begin();
RTC.begin();
}

// the loop routine runs over and over again forever:
void loop() {
DateTime now = RTC.now();
//tutaj ustawiam godzine/minute/sekunde wschodu
if(now.hour()==10 && now.minute()==0 && now.second()==0 && dzien!=true)
{
dzien = true;
}
//tutaj ustawiam godzine/minute/sekunde zachodu
if(now.hour()==20 && now.minute()==0 && now.second()==0 && dzien==true)
{
dzien = false;
}

//odczytuje wartośc z potencjometrów
int bluePotValue = analogRead(A0);
int whitePotValue = analogRead(A1);

//mapuje wartość analogowe z potencjometrów do wartości PWM
bluePWMValue = map(bluePotValue, 0, 1023, 0, 255);
whitePWMValue = map(whitePotValue, 0, 1023, 0, 255);

//jeśli jest dzień to wysyłam sygnały PWM do driverów
if(dzien)
{
analogWrite(9, bluePWMValue);
analogWrite(10, whitePWMValue);
}
//jeśli jest noc na kanal biały wysylam wartość 0 - nie swieci
// i na kanał niebieski wysylam wartość 10 czyli słabe swiatło symulujące księżycc
else
{
analogWrite(9, 10);
analogWrite(10, 0);
}
delay(100);

--------------------------------------------- 





3 komentarze:

Agata Borowska pisze...

Bardzo inspirujący artykuł. Pozdrawiam !

Mateusz Domański pisze...

Świetnie napisane. Pozdrawiam serdecznie.

MajsterHajster pisze...

Inteligentny dom Rzeszów to koncepcja, która coraz śmielej wkracza w codzienność mieszkańców miasta. Systemy inteligentnego domu oferują automatyzację wielu procesów domowych, takich jak kontrola oświetlenia, regulacja temperatury czy zarządzanie energią. W Rzeszowie inteligentne domy wykorzystują najnowsze technologie do poprawy jakości życia, oferując mieszkańcom możliwość sterowania domem za pomocą aplikacji mobilnych czy głosowych asystentów. To nie tylko wygoda i oszczędność czasu, ale także znaczące obniżenie kosztów utrzymania domu, dzięki efektywniejszemu zarządzaniu zasobami energetycznymi.






dyplome

 https://workdrive.zohoexternal.com/file/v2k7i83a0c6a6662740b0a99036a08ac6bead