Serwisy partnerskie:
Close icon
Serwisy partnerskie

Inteligentny system oszczędzania energii

Article Image
Kompletny poradnik, krok po kroku poruszający temat Inteligentnego Systemu Oszczędzania Energii.
1. Praktyczny Kurs Arduino - przewodnik po artykułach składających się na kurs 2. Czym jest Arduino? 3. Porównanie Arduino z Raspberry Pi 4. Instalacja sterownika Arduino w systemie Windows 5. Generowanie pliku hex w Arduino 6. Jak wgrać bootloader w Atmega328? 7. Rozpoczęcie pracy z oprogramowaniem Arduino 8. Rozpoczęcie programowania w Arduino 9. Programowe resetowanie Arduino 10. Wprowadzenie do Arduino UNO 11. Wprowadzenie do Arduino NANO 12. Wprowadzenie do Arduino Pro Mini 13. Wprowadzenie do Arduino Mega 2560 14. Wprowadzenie do Arduino Due 15. Wprowadzenie do Arduino Lilypad 16. Wprowadzenie do ATmega328 17. Biblioteka Arduino dla Proteusa 18. Projekt płytki drukowanej Arduino UNO dla Proteus ARES 19. Biblioteka Arduino Lilypad dla Proteusa 20. Odczyt z portu szeregowego Arduino 21. Projektowanie układów LCD z Arduino 22. Łączenie klawiatury z Arduino 23. Wartość ADC na LCD przy użyciu Arduino 24. Symulacja czujnika ultradźwiękowego w Proteusie 25. Połączenie czujnika ultradźwiękowego z Arduino 26. Wiele czujników ultradźwiękowych z Arduino 27. Czujnik temperatury 18B20 z Arduino 28. Jak używać 18B20 w Proteus ISIS? 29. Łączenie LM35 z Arduino w Proteusie 30. Współpraca siedmiosegmentowego wyświetlacza z Arduino w Proteusie 31. Łączenie czujnika PIR z Arduino 32. Współpraca czujnika płomienia z Arduino 33. Interfejs NRF24L01 z Arduino 34. NRF24L01+ i Arduino - Response Timed Out 35. Połączenie RFID RC522 z Arduino 36. Komunikacja Bluetooth z Arduino przy użyciu HC05 37. Sterowanie serwomotorem za pomocą Arduino w Proteusie 38. Projekt sterowania sygnalizacją świetlną przy użyciu Arduino 39. Przewijanie tekstu na matrycy LED 8×8 z użyciem Arduino 40. Inteligentny system oszczędzania energii 41. Komunikacja USB pomiędzy Androidem i Arduino 42. Automatyka domowa z użyciem XBee i Arduino 43. Domowy system bezpieczeństwa oparty na GSM 44. Wysyłanie SMS-ów za pomocą Arduino UNO i SIM900 45. Odbieranie SMS-ów za pomocą komend AT przy użyciu Arduino 46. Projekt rozpoznawania głosu przy użyciu EasyVR Shield 47. Rozpoczęcie pracy z programem EasyVR Commander 48. Połączenie EasyVR z Arduino UNO 49. Błąd szkolenia - niepowodzenie rozpoznawania w EasyVR 50. Połączenie XBee z komputerem 51. Wprowadzenie do modułu XBee 52. Interfejs XBee z Arduino 53. Rozpoczęcie pracy z kamerą Pixy 54. Jak zainstalować oprogramowanie kamery Pixy - PixyMon 55. Aktualizacja firmware kamery Pixy do najnowszej wersji 56. Jak wytrenować kamerę Pixy za pomocą komputera 57. Sterowanie kierunkiem obrotu silnika prądu stałego za pomocą Arduino 58. Sterowanie prędkością obrotów silnika prądu stałego za pomocą Arduino 59. Sterowanie kierunkiem obrotu silnika krokowego za pomocą Arduino 60. Sterowanie prędkością obrotów silnika krokowego za pomocą Arduino 61. Pobieranie danych z serwera internetowego za pomocą Arduino Wi-Fi 62. Wprowadzenie do Arduino YUN 63. Dostęp do serwera Linux Arduino YUN za pomocą Putty
Rozwiń cały spis treści Zwiń spis treści

Dziś podzielę się z wami kompletnym projektem.

Jest to Inteligentny System Oszczędzania Energii, który zaprojektowałem mniej więcej dwa lata temu. Dlatego dziś pomyślałem, żeby się tym podzielić, aby inni również mogli z niego skorzystać. W tym projekcie, do celów programistycznych, wykorzystałem płytkę Arduino UNO. Nie jest to zbyt skomplikowany projekt, ale stanowi podstawę dla wielu bardziej od niego złożonych. 

Energia, to skromne słowo, ale jest problemem całego świata. Zwłaszcza gdy mówimy o energii elektrycznej. Jeśli zużywasz więcej energii elektrycznej, dostaniesz dość wysoki rachunek na koniec miesiąca.  Z tego powodu, zawsze pracuje się nad zmniejszeniem zużycia energii elektrycznej, a także nad porównywaniem kosztów energii od różnych dostawców. Jako człowiek, załóżmy, że włączasz wentylator w swoim pokoju, a potem zwykle zapominasz go wyłączyć i w ten sposób twój rachunek ciągle rośnie. Stąd, aby tego uniknąć, jedynym narzędziem, które przychodzi nam z pomocą jest automatyzacja. Dla przykładu, musi istnieć system, który automatycznie wykrywa, czy ktoś jest jeszcze w pokoju, czy nie i jeżeli nikogo nie ma, to światła wyłączane są automatycznie. W ten sposób można dość łatwo obniżyć koszty energii elektrycznej. Taka sama koncepcja jest przedstawiona w tym projekcie. Przyjrzyjmy się jej w całości.  

Przegląd inteligentnego systemu oszczędzania energii 

W tym projekcie zaprojektowaliśmy kompletne pomieszczenie i wykorzystaliśmy dwa obciążenia indukcyjne tj. żarówki i jeden wentylator. 

Celem tego projektu było oszczędzanie energii, więc użyliśmy dwóch czujników IR do liczenia. 

Jeśli w pomieszczeniu nie ma nikogo, to obciążenia automatycznie się wyłączają, a jeśli ktoś wejdzie do pomieszczenia, obciążenia automatycznie się włączają. 

Ponadto, dodaliśmy w nim funkcjonalność licznika, tzn. projekt będzie również zliczał ilość osób obecnych w pomieszczeniu. 

Wszystkie te parametry będą również wyświetlane na wyświetlaczu ciekłokrystalicznym dołączonym do Arduino. 

Użyte komponenty 

Wymieniam tutaj komponenty użyte przy tworzeniu tego projektu. Nie podaję dokładnych wartości, ponieważ można je znaleźć na schematach. Oto lista: 

  • Arduino Uno 
  • Czujniki podczerwieni 
  • LCD 16×2 
  • Żarówki 100 W 
  • Wentylator 12 V 
  • Moduł przekaźnika dwukanałowego 
  • 7805 (układ scalony regulatora) 
  • LED (Oznajmujący) 
  • Opór 
  • Kondensatory 

Schematy obwodów inteligentnego systemu oszczędzania energii 

Załóżmy, że projektujesz ten projekt. Pierwszą rzeczą, której będziesz potrzebował są schematy obwodów dla projektu, więc pokażę tutaj wszystkie schematy krok po kroku. Zaczynajmy więc: 

1. Połączenie Arduino z LCD 

Pierwszą rzeczą, która będzie nam potrzebna jest interfejs Arduino z LCD. LCD użyty w tym projekcie to 16×2. 

Najpierw zaprojektowałem symulację w Proteusie, ponieważ zawsze lepiej jest zaprojektować symulację przed przejściem do prawdziwego sprzętu. 

Teraz wgraj do niego poniższy kod, tylko po to, aby przetestować, czy działa dobrze, czy nie: 

    #include <LiquidCrystal.h> 

    LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 




    void setup() 

    { 




    lcd.begin(16, 2); 

    lcd.print("www.TheEngineer"); 

    lcd.setCursor(0,1); 

    lcd.print("ingProjects.com"); 

    } 

    void loop() {} 

Teraz uruchom go i jeśli wszystko poszło dobrze, wtedy otrzymasz coś podobnego do tego, co pokazano na poniższym rysunku: 

Uwaga: Jeśli nie miałeś dużo styczności z LCD, to możesz przeczytać więcej na ten temat w Projektowaniu obwodu LCD z Arduino w Proteus ISIS. Powinieneś również przeczytać Biblioteka Arduino dla Proteusa abyś mógł używać Arduino w Proteusie.

2. Schemat połączeń modułu przekaźnika dwukanałowego 

Następną rzeczą, której będziemy potrzebować jest płytka przekaźnika dwukanałowego. Za pomocą tych przekaźników będziemy włączać lub wyłączać nasze obciążenia. 

Oto schemat obwodu dla modułu przekaźnika dwukanałowego. 

Jak widać na powyższym rysunku, użyłem dwóch przekaźników, gdzie oba są kontrolowane przez proste operatory logiczne. 

Teraz, zamiast tych operatorów logicznych, musisz tutaj podać piny Arduino. 

Ustawiłem pierwszy przekaźnik na ON podczas gdy drugi jest ustawiony na OFF. 

Na powyższym rysunku wyjścia przekaźnikowe są otwarte, więc można tu umieścić cokolwiek, co będzie działać jak przełącznik. Tak więc w naszym przypadku obciążenia będą umieszczone za tym przekaźnikiem. 

3. Projekt obwodu brzęczyka 

Następnym projektem obwodu, który musimy zrozumieć jest projekt obwodu brzęczyka (Buzzer). 

Jest to dość proste i podobne do modułu przekaźnika dwukanałowego. Opublikowałem również szczegółowy post na temat tego jak Zaprojektować brzęczyk w Proteus ISIS, który będzie całkiem pomocny. 

Tutaj wyjaśnię to w skrócie, więc spójrzmy na schemat obwodu brzęczyka: 

Można dość łatwo zrozumieć powyższy rysunek, gdzie pokazałem zarówno stan włączenia jak i wyłączenia brzęczyka. 

4. Schemat obwodu czujnika podczerwieni

W tym projekcie użyłem dwóch czujników IR, oba są umieszczone na drzwiach, jeden po drugim. Możesz przeczytać więcej o projektowaniu czujnika podczerwieni w moim poście Schemat obwodu czujnika podczerwieni używającego Timera 555

Nazwałem je Entering IR Sensor i Leaving IR Sensor (Pl. Podczerwony czujnik wejścia i wyjścia). 

Logika działania tych dwóch czujników jest taka, że gdy ktoś wchodzi do pomieszczenia to najpierw minie czujnik wchodzący, a następnie trafi na czujnik wychodzący, a gdy ktoś wychodzi z pomieszczenia to najpierw minie czujnik wychodzący, a następnie przetnie czujnik wchodzący. 

W ten sposób liczę osoby. Jeśli ktoś wchodzi do pokoju, to po prostu inkrementuję, a jeśli ktoś wychodzi to dekrementuję. 

Teraz, jeśli liczba osób w pokoju wynosi zero, to wyłączam wszystkie światła i wentylator, a jeśli w pokoju jest choć jedna osoba, to włączam światła i wentylator. 

Oto schemat obwodu czujnika IR: 

Nadajnik IR i odbiornik nie są dostępne w Proteusie, dlatego użyłem przycisku. Zatem, naciśnięcie przycisku, odpowiada przecięciu przez kogoś wiązki czujnika IR. Otrzymujemy poniższy wynik: 

5. Kompletny schemat obwodu inteligentnego systemu oszczędzania energii 

Teraz, gdy mamy zaprojektowane poszczególne schematy obwodów, następną rzeczą, którą zrobimy jest złożenie kompletnego projektu. 

Poniżej znajduje się kompletny schemat tego projektu: 

Jak widać na powyższym rysunku, użyłem dwóch czujników IR. Pierwszy czujnik IR służy do wchodzenia do pomieszczenia, a drugi do wychodzenia z pomieszczenia. 

Następny jest układ brzęczyka, który jest również dość prosty i opisałem go szczegółowo powyżej. 

LCD wyświetli liczbę osób w pomieszczeniu, a także czy żarówka jest włączona, czy wyłączona oraz status wentylatora. 

Nie pokazałem obwodu przekaźnika na powyższym rysunku, ponieważ nie zmieści się on w tej przestrzeni, a myślę, że wy możecie go łatwo umieścić. 

Kod programistyczny dla inteligentnego systemu oszczędzania energii 

Kod przeznaczony do tego projektu został opracowany w oprogramowaniu Arduino. 

Kod jest następujący: 

#include <LiquidCrystal.h> 
#include <OneWire.h> 
#include <DallasTemperature.h> 
#define ONE_WIRE_BUS 8 

OneWire oneWire(ONE_WIRE_BUS); 
DallasTemperature sensors(&oneWire); 
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 
float celsius, fahrenheit; 

int Sensor1 = A0; 
int Sensor2 = A1; 
int Bulb = A5; 
int Fan = A4; 
int Buzzer = A3; 
int Counter = 0; 
int Sen1Check = 0; 
int Sen2Check = 0; 

void setup(void)  
{ 
    Serial.begin(9600); 
    digitalWrite(Bulb, HIGH); 
    digitalWrite(Fan, HIGH); 
    digitalWrite(Buzzer, HIGH); 
    pinMode(Sensor1, INPUT); 
    pinMode(Sensor2, INPUT); 
    pinMode(Bulb, OUTPUT); 
    pinMode(Fan, OUTPUT); 
    pinMode(Buzzer, OUTPUT); 

    lcd.begin(20, 4); 
    lcd.setCursor(0, 1); 
    lcd.print("Temp = "); 
    lcd.setCursor(0, 0); 
    lcd.print("Counter = "); 
    lcd.setCursor(12, 0); 
    lcd.print("Persons"); 
} 

void loop()  

{ 

  CheckEntry(); 
  CheckLeaving(); 
  lcd.setCursor(7, 1); 
  sensors.requestTemperatures(); 
  lcd.println(sensors.getTempCByIndex(0)); 
  lcd.setCursor(12, 1); 
  lcd.print(" degC"); 
  lcd.setCursor(10, 0); 

  if(Counter >= 0){lcd.print(Counter);} 
  if(Counter < 0){Counter = 0;} 
  if(Counter > 0) 
  { 

      digitalWrite(Bulb, LOW); 
      digitalWrite(Fan, LOW); 
      digitalWrite(Buzzer, HIGH); 
      lcd.setCursor(0, 2); 
      lcd.print("Fan : ON "); 
      lcd.setCursor(0, 3); 
      lcd.print("Bulb : ON "); 
  } 

  if(Counter < 1) 
  { 
      digitalWrite(Bulb, HIGH); 
      digitalWrite(Fan, HIGH); 
      digitalWrite(Buzzer, HIGH); 
      lcd.setCursor(0, 2); 
      lcd.print("Fan : OFF"); 
      lcd.setCursor(0, 3); 
      lcd.print("Bulb : OFF"); 

  } 

} 

void CheckEntry() 

{ 
    if(((digitalRead(Sensor1) == LOW) || (Sen1Check == 1)) && (Sen2Check == 0)) 
    { 
        while(digitalRead(Sensor1) == LOW); 
        Sen1Check = 1; 
        if(digitalRead(Sensor2) == LOW) 
        { 
            Counter++; 
            Sen1Check = 0; 
            while(digitalRead(Sensor2) == LOW); 
        } 
    }  
} 

void CheckLeaving() 

{ 
    if(((digitalRead(Sensor2) == LOW) || (Sen2Check == 1)) && (Sen1Check == 0)) 
    { 
        while(digitalRead(Sensor2) == LOW); 
        Sen2Check = 1; 
        if(digitalRead(Sensor1) == LOW) 
        { 
            Counter = Counter - 1; 
            Sen2Check = 0; 
            while(digitalRead(Sensor1) == LOW); 
        } 
    }  
} 

Kodowanie nie jest zbyt trudne dla tego projektu, ale jeśli masz jakieś problemy, zapytaj w komentarzach, a sprawdzę o co chodzi. 

Oto kompletny film o tym inteligentnym systemie oszczędzania energii, który wyjaśni wszystko na temat projektu. 

Wykaz elementów
Ilość
Symbol
Nazwa/opis/gdzie kupić
Wideo

Artykuł Intelligent Energy Saving System opracowano w wersji polskiej na podstawie współpracy z portalem www.theengineeringprojects.com.

1. Praktyczny Kurs Arduino - przewodnik po artykułach składających się na kurs 2. Czym jest Arduino? 3. Porównanie Arduino z Raspberry Pi 4. Instalacja sterownika Arduino w systemie Windows 5. Generowanie pliku hex w Arduino 6. Jak wgrać bootloader w Atmega328? 7. Rozpoczęcie pracy z oprogramowaniem Arduino 8. Rozpoczęcie programowania w Arduino 9. Programowe resetowanie Arduino 10. Wprowadzenie do Arduino UNO 11. Wprowadzenie do Arduino NANO 12. Wprowadzenie do Arduino Pro Mini 13. Wprowadzenie do Arduino Mega 2560 14. Wprowadzenie do Arduino Due 15. Wprowadzenie do Arduino Lilypad 16. Wprowadzenie do ATmega328 17. Biblioteka Arduino dla Proteusa 18. Projekt płytki drukowanej Arduino UNO dla Proteus ARES 19. Biblioteka Arduino Lilypad dla Proteusa 20. Odczyt z portu szeregowego Arduino 21. Projektowanie układów LCD z Arduino 22. Łączenie klawiatury z Arduino 23. Wartość ADC na LCD przy użyciu Arduino 24. Symulacja czujnika ultradźwiękowego w Proteusie 25. Połączenie czujnika ultradźwiękowego z Arduino 26. Wiele czujników ultradźwiękowych z Arduino 27. Czujnik temperatury 18B20 z Arduino 28. Jak używać 18B20 w Proteus ISIS? 29. Łączenie LM35 z Arduino w Proteusie 30. Współpraca siedmiosegmentowego wyświetlacza z Arduino w Proteusie 31. Łączenie czujnika PIR z Arduino 32. Współpraca czujnika płomienia z Arduino 33. Interfejs NRF24L01 z Arduino 34. NRF24L01+ i Arduino - Response Timed Out 35. Połączenie RFID RC522 z Arduino 36. Komunikacja Bluetooth z Arduino przy użyciu HC05 37. Sterowanie serwomotorem za pomocą Arduino w Proteusie 38. Projekt sterowania sygnalizacją świetlną przy użyciu Arduino 39. Przewijanie tekstu na matrycy LED 8×8 z użyciem Arduino 40. Inteligentny system oszczędzania energii 41. Komunikacja USB pomiędzy Androidem i Arduino 42. Automatyka domowa z użyciem XBee i Arduino 43. Domowy system bezpieczeństwa oparty na GSM 44. Wysyłanie SMS-ów za pomocą Arduino UNO i SIM900 45. Odbieranie SMS-ów za pomocą komend AT przy użyciu Arduino 46. Projekt rozpoznawania głosu przy użyciu EasyVR Shield 47. Rozpoczęcie pracy z programem EasyVR Commander 48. Połączenie EasyVR z Arduino UNO 49. Błąd szkolenia - niepowodzenie rozpoznawania w EasyVR 50. Połączenie XBee z komputerem 51. Wprowadzenie do modułu XBee 52. Interfejs XBee z Arduino 53. Rozpoczęcie pracy z kamerą Pixy 54. Jak zainstalować oprogramowanie kamery Pixy - PixyMon 55. Aktualizacja firmware kamery Pixy do najnowszej wersji 56. Jak wytrenować kamerę Pixy za pomocą komputera 57. Sterowanie kierunkiem obrotu silnika prądu stałego za pomocą Arduino 58. Sterowanie prędkością obrotów silnika prądu stałego za pomocą Arduino 59. Sterowanie kierunkiem obrotu silnika krokowego za pomocą Arduino 60. Sterowanie prędkością obrotów silnika krokowego za pomocą Arduino 61. Pobieranie danych z serwera internetowego za pomocą Arduino Wi-Fi 62. Wprowadzenie do Arduino YUN 63. Dostęp do serwera Linux Arduino YUN za pomocą Putty
Rozwiń cały spis treści Zwiń spis treści
Firma:
Tematyka materiału: Inteligentny dom, Automatyka, Projekty Arduino, Symulator Arduino, Proteus
AUTOR
Źródło
www.theengineeringprojects.com
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
Edukacja
1/10 Jak działa rezystor LDR?
Oceń najnowsze wydanie EdW
Wypełnij ankietę i odbierz prezent
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"