niedziela, 18 października 2015

Modyfikacja stacji pogody

W mojej stacji pogody, której budowę opisałem w tym wpisie -> Link zasilanie było realizowane przez 4 baterie AA poprzez stabilizator 5V do Arduino Mini Pro.

Po tygodniu działania baterie zaczęły się szybko wyładowywać i postanowiłem zrealizować zasilanie z panelu solarnego.

Panel solarny zakupiłem w sklepie Botland za 25,90 zł -> Link

Ogniwo słoneczne będzie zasilać 4 akumulatorki AA poprzez moduł mini USB TP4056, a następnie podnoszone napięcie poprzez moduł step u do 5V.

Moduł ładowania i step up zakupiłem w sklepie Propix:

Moduł mini ładowarka akumulatorów Li-ion 1A TP4056 USB mini 4,90 zł -> Link

MINI przetwornica USB DC/DC STEP-UP 5V 500mA 9,80 zł -> Link

Do przeróbki użyłem 4 akumulatorki AA, kondensator 0,1 uF, rezystor 1M ohm i 680 K ohm.

W modyfikacji będzie pokazywany stan naładowania akumulatorków wykorzystujący pin A0 wg, opisu na stronie MySensors -> Link

Moje zasilanie z akumulatorków , to 2 razy po 2 akumulatorki, co daje napięcie maksymalne w zakresie 2,6 do 2,7 V, więc dokonałem obliczeń rezystora R2 - Vmax = 1.1 * (1e6+680e3)/680e3 = 2.72 V. Dokonałem modyfikacji w kodzie programu 2.72/1023 = Volts per bit = 0.0026588465298142717497.

Schemat modyfikacji wygląda tak


Koszyczek zmodyfikowałem tak, aby dawał zasilanie 2 razy 2 AA, od + akumulatorków biegnie przewód przez rezystor 1 Mohm do A0 Arduino, z masy przez rezystor 680 kohm do A0, a między masą, a pinem A0 jest kondensator 0,1 uF (100 nF).

Stacja po modyfikacji wygląda tak


Nie mam jeszcze panelu solarnego i jak tylko dotrze, będzie podłączony.

Kod programu zmodyfikowałem, tak aby w Domoticz było wyświetlane napięcie na akumulatorkach, możemy więc monitorować stan ich naładowania. Kod programu stacji po modyfikacji jest do pobrania tu -> Link

Teraz w Domoticz widać stan naładowania akumulatorków oraz oczywiście dane ze stacji pogody.



Pomysł zasięgnąłem z tej strony -> Link

sobota, 17 października 2015

Domoticz i wirtualne stacje pogody

W Domoticz istnieje możliwość dodania odczytów parametrów pogody z najbliższych stacji pogodowych.

W tym celu najpierw należy założyć konto na stronie Weather Undergound, wchodzimy więc na stronę -> Link i klikamy Sign Up for FREE


W Create Your Free Account! wpisujemy kolejno: emial, 2 x hasło i nick, zaznaczamy I agree i klikamy SIGN UP


Teraz odbieramy email i klikamy w link potwierdzający rejestrację oraz logujemy się na stronie.

Wchodzimy na stronę

Wybieramy ANVIL PLAN , Developer i klikamy Purchase Key

Teraz wpisujemy:

Contact name: imię
Project contact e-mail: adres emial
Project name: Domoticz
Project website: http://www.domoticz.com
Where will the API be used: Website
Will the API be used for commercial use: No
Will the API be used for manufacturing mobile chip processing: No
A brief description: I use the API for the greatest domotica project!

Zaznaczamy 2 ptaszki i klikamy Purchase key

Teraz zobaczymy nasz KEY ID, nie zamykamy strony, bo za chwilę będzie nam potrzebny ten klucz.

Otwieramy w nowym oknie stronę -> Link

Szukamy najbliższej stacji pogodowej i klikamy w nią, pokaże nam się Station ID


Teraz otwieramy panel Domnoticz klikamy Ustawienia -> Sprzęt i dodajemy nowy sprzęt, jako typ wybieramy Weather Underground
Wpisujemy nazwę np. Stacja Opole 2, kopiujemy na Key ID do klucz API oraz Station ID do Lokalizacja i klikamy Dodaj


Mi akurat , ta stacja nie chciała działać, więc dodałem inną najbliższą o ID 12530.
Jeżeli nie chce znaleźć urządzeń i dana stacja nie działa np. o nazwie IOPOLSKI7, to wpisujemy pws: i nazwę stacji, czyli: pws:IOPOLSKI7.

Po chwili w Ustawienia -> Urządzenia pokażą się nowe urządzenia, klikamy w zielone strzałki wpisujemy nazwy i już mamy aktualne parametry pogodowe.

poniedziałek, 12 października 2015

Obudowa do stacji pogody

Dzisiaj wykonałem obudowę do stacji pogody opisanej w tym wpisie na blogu -> Link

Obudowę wykonałem z obudowy Z-72J dostępnej w sklepie Cyfronika -> Link i z obudowy Z43n -> Link

W obudowie Z-72J na środku wykonałem otwór, na który przykleiłem klejem kropelką obudowę Z43n z wyciętym jednym bokiem, tak, aby do środka dostawało się powietrze, a jednocześnie do wnętrza nie dostawała się woda, dzięki temu czujnik wilgotności, będzie robił rzeczywiste pomiary wilgotności na zewnątrz.

Pokrywkę z obudowy Z43n wykorzystałem do zrobienia uchwytu do zawieszenia.

Koszt obudowy, to około 10 zł.

Obudowa wygląda tak


Elektronikę i koszyczek na baterie przykleiłem klejem na gorąco.

Wnętrze stacji pogody


Teraz panel na tablecie wygląda tak

sobota, 10 października 2015

Domoticz - czujnik wilgotności gleby do bramki Mysenors

Dzisiaj zrobiłem czujnik wilgotności gleby na Arduino Mini Pro 16Mhz zasilany 4 bateriami AA.



Do budowy wykorzystałem:

1. Aruino Mini Pro - 11 zł
2. Moduł NRF24L01 - 4 zł
3. Płytka uniwersalna PCB 30x70mm dwustronna - 3,20 zł
4. Czujnik wilgotności gleby - 8,50 zł
5. Koszyczek na 4 baterie AA - 3,50 zł
6. Stabilizator stały LM1117 SOT223 1A 3,3V - 1,8 zł
7. Stabilizator stały TO92 100mA 78L05 5V - 1 zł
8. Kondensator 10uF miałem w domu

Co razem dało koszty około 34 zł

Wykorzystałem pomysł i projekt ze strony -> Link

Schemat wygląda tak


Pin wyjścia analogowego czujnika podłączony jest do pinu A0 w Arduino, a zasilanie z czujnika Vcc do pinu 8 oraz oczywiście masa czujnika do masy Arduino.

Całość zasilana jest 4 bateriami AA.

W powyższym schemacie autor popełnił błąd, bo zasilania NRF24L01 wymagane jest zasilanie 3,3V oraz należy dać kondensator 4,7uF na Vcc i GND, ja akurat miałem w domu 10 uF, to też może być taki.

Moduł Wifi NRF24L01 podłączamy zgodnie ze schematem


Do zasilania Arduino zastosowałem stablizator 5V, bo 4 baterie AA dają napięcie 6V, ale nie jest konieczny.

Jak podłączyć stabilizatory pokazałem we wcześniejszym wpisie na schemacie -> Link

Kod programu do wgrania do Arduino jest dostępny tu -> Link oraz do ściągnięcia z Dropbox -> Link

Program sprawdza stan naładowania baterii i wilgotność co 600000 milisekund, czyli 10 minut, oczywiście czas możemy sobie zmienić w kodzie programu, ale ja go zostawiłem taki.

W Domoticz czujnik wykrywany jest jako Voltage i Humidity, po dodaniu urządzeń mamy

Stan naładowania baterii


Czujnik wilgotności


Całość w Domoticz wygląda tak


Możemy sobie w Domoticz skonfigurować opcję wysyłania wiadmości na email, gdy wilgotność spadnie poniżej określonego poziomu.
Najpierw należy jednak skonfigurować email w ustawieniach


Z tego co pamiętam, trzeba posiadać konto na Gmail i skonfigurować jak wyżej, można wysłać wiadomość testową, aby sprawdzić czy działa.

Później na czujniku kwiatki wybieramy powiadomienia i wpisujemy oraz zaznaczamy sobie


Po kliknięciu Dodaj dostaniemy powiadomienie na email gdy wilgotność spadnie poniżej 40%

Dla bardziej zaawansowanych ogrodników polecam projekt -> Link

piątek, 9 października 2015

Domoticz - nadajnik MySenors Arduino Mini z DHT11

Dzisiaj zmontowałem układ z Arduino Mini i czujnikiem DHT11.
Wygląda tak


Program jaki jest wgrany, to Humidity z MySenors -> Link

Teraz ImperiHome wzbogaciło się o dodatkowe czujniki i mój panel wygląda teraz tak


Pokazuje temperaturę z DS18B20 z pokoju i na zewnątrz podłączone bezpośrednio do Raspberry Pi z stacji pogody umieszczonej na zewnątrz, gdzie pokazuje temperaturę, wilgotność i ciśnienie atmosferyczne oraz pokoju wilgotność i temperaturę.

W Domoticz wygląda tak


W Domoticz mamy informację, czy będzie padać, czy będzie słonecznie lub czy jest pochmurnie.

Domoticz - stacja pogody do bramki MySensors

Wczoraj zbudowałem stację pogody do bramki MySensors zbudowaną na Arduino Mini Pro, czujniku tempretaury i wilgotności DHT22 i czujniku ciśnienia BMP180. Wszystko zasilane jest 4 bateriami AA 1,5V.

Do budowy wykorzystałem:

1. Arduino Mini Pro 16 Mhz - koszt 11 zł
2. Czujnik AM2302 (DHT22) - 20 zł
3. Czujnik BMP180 = 12 zł
4. Moduł Wifi nRF24L01 - 4 zł
5. Stabilizator LM1117 3,3V - 1,80 zł
6. Stabilizator 78L05 5V - 1 zł
7. Koszyczek na bateria 4 x AA - 3,50 zł
8. Płytka uniwersalna PCB 20x80mm - 3,50 zł
7. Kondensator 10uF 63V - miałem w domu
8. Rezystor 4,7K też miałem w domu
9. 4 baterie AA - 6 zł

Całkowity koszt wyniósł około 60 zł.

Czujnik BMP180 jest podłączony do pinów A4 i A5 w Arduino, a czujnik DHT22 do pinu D3.

Schemat wygląda tak


Po zmontowaniu moja stacja pogody wygląda tak


Kod programu do Arduino jest do pobrania stąd -> BM180_DHT22.rar

W kodzie w linijce:
int altitude = 184; // wysokość na poziomem morza w metrach

wpisujemy wysokość położenia na poziomem morza w metrach.

Możemy to sprawdzić na stronie -> Link

Po dodaniu urządzeń do Domoticz wygląda to tak

niedziela, 4 października 2015

Domoticz - MySensors - Arduino - program na 4 przekaźniki i więcej

Jeżeli na jednym odbiorniku Arduino chcemy mieć obsługę więcej niż jeden przekaźnik, to należy zmodyfikować kod programu dostępnego z MySenors. Kod na obsługę 4 przekaźników wygląda tak:

#include 
#include
#include
#include
#include
#include

#define RELAY_1 3 // Pin D3
#define RELAY_2 4 // Pin D4
#define RELAY_3 5 // Pin D5
#define RELAY_4 6 // Pin D6
#define NUMBER_OF_RELAYS 4 // Liczba przekaznikow
#define RELAY_ON 1 // Stan wysoki przekaznik wlaczony
#define RELAY_OFF 0 // Stan niski przekaznik wylaczony

// NRFRF24L01 radio driver (set low transmit power by default)
MyTransportNRF24 radio(RF24_CE_PIN, RF24_CS_PIN, RF24_PA_LEVEL_GW);
//MyTransportRFM69 radio;
// Message signing driver (none default)
//MySigningNone signer;
// Select AtMega328 hardware profile
MyHwATMega328 hw;
// Construct MySensors library
MySensor gw(radio, hw);

void setup() {
// Initialize library and add callback for incoming messages
gw.begin(incomingMessage, AUTO, true);
// Send the sketch version information to the gateway and Controller
gw.sendSketchInfo("Relay", "1.0");

// Fetch relay status

for (int sensor=1, pin=RELAY_1; sensor<=NUMBER_OF_RELAYS;sensor++, pin++){
// Register all sensors to gw (they will be created as child devices)
gw.present(sensor, S_LIGHT);
// Then set relay pins in output mode
pinMode(pin, OUTPUT);
// Set relay to last known state (using eeprom storage)
digitalWrite(pin, gw.loadState(sensor)?RELAY_ON:RELAY_OFF);
}
}


void loop()
{
// Alway process incoming messages whenever possible
gw.process();
}

void incomingMessage(const MyMessage &message) {
// We only expect one type of message from controller. But we better check anyway.
if (message.type==V_LIGHT) {
// Change relay state
digitalWrite(message.sensor-1+RELAY_1, message.getBool()?RELAY_ON:RELAY_OFF);
// Store state in eeprom
gw.saveState(message.sensor, message.getBool());
// Write some debug info
Serial.print("Incoming change for sensor:");
Serial.print(message.sensor);
Serial.print(", New status: ");
Serial.println(message.getBool());
}
}
Program wykorzystuje piny Arduino D3 do D6 i definiujemy, to w tej linijce:
#define RELAY_1  3  // Pin D3
#define RELAY_2 4 // Pin D4
#define RELAY_3 5 // Pin D5
#define RELAY_4 6 // Pin D6
#define NUMBER_OF_RELAYS 4 // Liczba przekaznikow
Po wgraniu do Arduino w Domoticz pojawią się 4 nowe urządzenia, dodajemy je klikając w zieloną strzałkę i wpisujemy nazwę i mamy 4 przełączniki
Kod do pobrania -> Przekaznikix4