Pierwsze kroki z Ra...
 
Powiadomienia
Wyczyść wszystko

Pierwsze kroki z Raspberry, Smarticz'em, czujką ruchu i Yeelight color LED Xiaomi w Domoticzu

7 Wpisów
3 Użytkownicy
0 Reactions
1,896 Wyświetleń
(@100mek)
Wpisów: 21
Praktykant
Autor tematu
 

Dopiero zaczynam zabawę w te klocki i myślę, że przy okazji pomogę początkującym takim jak ja, a nie ukrywam, że liczę na pomoc bardziej doświadczonych.

Po zakupie żarówki Yeelight Led do pokoju od syna doszedłem do wniosku, że sterowanie oświetleniem ze smartfona jest  fajne, ale przez pierwsze 2 dni, dlatego zaczynam od tego urządzenia. Założenie jest takie, że będą dwa włączniku bezprzewodowe 433mhz na baterie, które mają być wielofunkcyjne (klik, klik klik, przytrzymanie ....itp.). Zaczynam jednak od czujnika ruchu PIR HC-SR501.

Na początku napiszę jak to mam poustawiane, a na końcu będę miał parę pytań.

Najłatwiejszy do zrozumienia podstaw był dla mnie język python, który przypomniał mi programowanie w basic'u (Sinclair ZX81) i Pascalu, z którym miałem kontakt 30 lat temu. Dla młodszych. ZX81 to taki starszy zx spectrum, a dla jeszcze młodszych pozostaje google ;).

Posiłkowałem się trochę internetem i stan aktualny obsługi żarówki za pośrednictwem czujnika ruchu wygląda u mnie tak:

#!/usr/bin/python

import RPi.GPIO as GPIO
import time
import urllib

sensor = 8
czas = 10

GPIO.setmode(GPIO.BCM)
GPIO.setup(sensor, GPIO.IN, GPIO.PUD_DOWN)

previous_state = False
current_state = False

while True:
    previous_state = current_state
    current_state = GPIO.input(sensor)
    if current_state != previous_state:
        if current_state:
            new_state = "HIGH"
            httpresponse = urllib.urlopen ("http://192.168.0.228:8084/json.htm?type=command&param=switchlight&idx=9&switchcmd=On")
            start_time = time.time()
            c_time = 0
            while c_time < czas:
                if GPIO.input(sensor):
                    c_time = 0
            c_time = time.time()-start_time
        else:
            new_state = "LOW"
            httpresponse = urllib.urlopen ("http://192.168.0.228:8084/json.htm?type=command&param=switchlight&idx=9&switchcmd=Off")
        print("GPIO pin %s is %s" % (sensor, new_state))

 

gdzie zmienna "sensor" to pin GPIO,
a zmienna "czas" to czas po jakim czujka po wykryciu ostatniego ruchu ma przejść w stan "LOW" (brak 3,3v na pinie "sensor"). 
Gdy czas ustawiamy te parametry na czujniku ruchu to wtedy ta część programu jest niepotrzebna, ale mamy większą kontrolę i możemy ustawić czas w sekundach po jakim czujka ma przejść do stany LOW.

Oczywiście adres uruchamiający czujkę:
http://192.168.0.228:8084/json.htm?type=command&param=switchlight&idx=9&switchcmd=Off
dostosowujemy do swoich potrzeb (fragmenty kolorowe)

W przełączniku PIR (czujka ruchu) w edycji:

Włącz akcję:
http://192.168.0.228:8084/json.htm?type=command&param=switchlight&idx=8&switchcmd=Set%20Level&level=50
Wyłącz akcję:
http://192.168.0.228:8084/json.htm?type=command&param=switchlight&idx=8&switchcmd=Set%20Level&level=0
Uwaga j.w.

Pytania dla bardziej doświadczonych:
1. Co jakiś czas czujka bez przyczyny daje sygnał HIGH.
Czy przyczyną może być sama czujka?

2. W domoticzu stan wyświetlany jest z opóźnieniem. 
Znany tamat?

3. Krytyka mile widziana, choć proszę wziąć pod uwagę, że w moim wieku, na nauczenie się wszystkiego od podstaw nie starczy mi czasu ;). 

 

 
Dodane : 27/11/2019 11:55 pm
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@100mek AD 2 Temat znany , interfejs się aktualizuje co interwal 5-10 sek

AD1 Te czujniki są mocno ułomne a GPIO w RBPI jest bardzo czułe , może pomóc odwrócenie logiki samego GPIO czyli stan ON to GPIO-  LOW , mozna to zrobić dodając odpowiednie wpisy w  /etc/init.d/domoticz.sh.

wtedy między GPIO a 3,3 V w RBPI rezystor 10K i sterowanie podaniem masy z czujnika i tu trzeba dodać transoptor , tak jak na poniższym schemacie tylko zamiast sonoff to RBPI

Sonoff PIR
Rezystor 4,7K to 10K a kondensator nie potrzebny
 
Dodane : 28/11/2019 1:10 pm
(@wenar)
Wpisów: 286
Weteran
 

Dodam dla potomnych, żeby zawsze sprawdzę do jakiego gpio co się podłącza.

Jeśli dobrze pamiętam (jeśli nie to mnie poprawcie) gpio 12 był do tego najlepszy, ale gpio 8 którego użyłeś też jest dobre.

Ale najlepsze co mogę zrobić to odesłać do dokumentacji.

https://www.raspberrypi.org/documentation/usage/gpio/

 

Ad 3. Może nie krytyka ale nie prościej zakupić prosty esp i użyć oprogramowania AFE? Do którego podłączysz czujnik jak trzeba i zamiescisz go gdzie tylko zasilanie sięgnie. 

Niestety czułość gpio w RPi jest za duża.

 
Dodane : 28/11/2019 6:20 pm
(@100mek)
Wpisów: 21
Praktykant
Autor tematu
 

@isom

Czyli podstawa to kupić lepszy czujnik ruchu, żeby nie tracić czasu nad zastanawianiem się nad dziwnym działaniem projektu, a potem wdrożenie lepszej wersji podłączenia. Jest jakiś sprawdzony model czujki, który byłby dobry na początek?
Dlaczego w pulpicie domoticza jest opóźnienie już też wiem. Dzięki.

@wenar

Jaki prosty esp najlepiej zakupić, aby był dobry na początek nauki, a przy okazji nie generował dużych problemów z Raspberry?

Zanim u mnie domoticz zacznie działać w życiu codziennym to myślę, że jeszcze dużo czasu minie, ale od czegoś naukę trzeba zacząć i na dzień dzisiejszy mój projekt traktuję jako nauka, ale Wasze ukierunkowujące wskazówki są dla mnie cenne bo wiem w jakim kierunku starać się poszerzać wiedzę.

 
Dodane : 28/11/2019 9:30 pm
(@wenar)
Wpisów: 286
Weteran
 

@100mek

Co do czujników. Wg mojej żony ładne są te od Xiaomi. Z tym że trzeba centralki aby gadały z Domoticzem. Polecam używam.

Co do czujników DIY to które podepniesz do ESP. To nada się każdy.

ESP - na początek aby nie trzeba było zbytnio kombinować - Wemos D1 mini. Podpinany kablem do USB nie potrzeba specjalnych programatorów ani lutowania. Podpinasz po USB wygrywasz soft i działa.

 
Dodane : 28/11/2019 9:36 pm
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@100mek jak chcesz podpinać czujniki do maliny to kup sobie jeden taki  https://botland.com.pl/pl/czujniki-ruchu/10173-dfrobot-gravity-cyfrowy-czujnik-ruchu-pir.html

do esp - wemos mogą być te tańsze , ale z czułością i zasięgiem to nie poszalejesz . Polecam zobaczyć sobie film na kanale Szmala gdzie z dobrego czujnika BOSH robi multisensor i podłącza do domoticza 

 
Dodane : 28/11/2019 9:59 pm
(@100mek)
Wpisów: 21
Praktykant
Autor tematu
 

🙂

Właśnie skończyłem oglądać ten odcinek na YT jak zobaczyłem, że mam odpowiedź na forum.  

 
Dodane : 28/11/2019 10:24 pm
Udostępnij: