Projekt 2: Raspberry szenzor és TV streamer (Goliath)

Az első, Cerberus projekttel párhuzamosan a másodikat is elkezdtem, ám bizonyos - előre nem látott - problémák miatt elhúzódott a végleges beüzemelése, illetve még mindig találok rajta javítanivalót.
A projekt kódneve - a méretére is utalva - GÓLIÁT.

Az USB hangkártya mellett egy speciális felhasználási területet is megcéloztam, egy meglévő TV Tuner kártya segítségével DVB-T adás vételére és WiFi-n keresztüli továbbítására. A TV tuner kártya és a szükséges USB elosztó alapvetően megadta a doboz minimális méreteit.

Eszköz Bruttó ár
Raspberry Pi Zero W (szállítási költséggel - pimoroni) 4610 Ft
GPIO Hammer Header - Male (pimoroni) 678 Ft
Lexar 8GB Class10 microSD memóriakártya (*) 1808 Ft
Cellect hálózati töltő fej, 1 USB, 2000mA 2290 Ft
3m USB-microUSB töltőkábel (*) 403 Ft
USB OTG kábel (*) 260 Ft
Acme HB-410 4 portos USB Hub 2390 Ft
USB DVB-T TV Tuner kártya (régi Pinnacle) 2000 - 8000 Ft
USB hangkártya (*) 205 Ft
Hangszóró 3,5mm jack 1W - óriási hanghatásra ne számítsunk (Mini Pillow Speaker) (*) 250 Ft
HC-SR501 (*) 270 Ft
RCWL-0516 (*) 205 Ft
DHT22 (*) 780 Ft
4.7K ellenállás  3 Ft
BH1750 (*) 300 Ft
Lángérzékelő (Flame detector infrared) (*) 249 Ft
MQ-2 füstérzékelő (*) 305 Ft
Szintillesztő (Logic Level Converter 5V 3.3V) (*) 290 Ft
ADS1015 analóg-digitális átalakító (*) 516 Ft
5V 0.08A, 20mm ventilátor (*) 490 Ft
S8050 NPN tranzisztor (*)  6 Ft
Snody univerzális infratartó konzol 323 Ft
400C1 Kerek kötődoboz gumibevezetővel 65x35mm 180 Ft
ELO-210/S1 Műanyag doboz 210x110x70mm sima oldalfalú 1488 Ft


*: a megjelölt tételek ebay-ről származnak, liciten, nagyobb mennyiség vásárlásakor akár jóval olcsóbban, Magyarországon pedig ennél jóval drágábban beszerezhetőek

Egyéb szükséges tételek: csavarok, anya, tipli, kötegelő, kábelek, ragasztópisztoly, forrasztópáka, fúró, kalapács.


Nagy csodák nincsenek, a szabvány szürke műanyag szerelődobozok ugyanúgy néznek ki, persze némi kézműves munkával ki lehet dekorálni őket. :)
A készülék jobb oldalán alul a DHT22 hőmérsékletmérő látható, arra gondoltam, hogy a meleg felfelé száll, így érdemes minél lejjebb helyezni. A fedlapján jobbra a kukucskáló fekete szem az infrás lángérzékelő, balra tőle egy lencsével takart nyíláson át a fényérzékelő les ki. (Ennek nyílása, mint a Cerberus projektnél már kiderült, kicsire lett méretezve, így durva beavatkozással nagyobbítottam rajta utólag) Fent jobbra a hangszóró került rögzítésre. Felül a Cerberus projektnél már alkalmazott Snody-ra rögzített kerek kötődobozba rejtett, forgatható kombinált mozgásérzékelő látható.
goliath_1.jpg

Az átellenes oldalán, - minél távolabb és feljebb a hőmérőtől - kapott helyet az MQ-2 füstérzékelő, mivel meglehetősen sok hőt termel.

goliath_2.jpg

 Ismétlésképpen a fenti kombinált infra:

dome03.jpg

Itt pedig a kábeldzsungellel felturbózott belső látható:

goliath_3.jpg

A jobb oldalon látható kötegelővel összefogva az USB hangkártya és mögött az USB TV tunerkártya, ez utóbbi nem várt problémákat okozott, mivel iszonyúan melegszik működés közben. És pont a hőmérő oldalára sikerült tennem.. némileg megpróbáltam eltávolítani az oldalfaltól, hogy kevésbé melegítse a műanyag külső oldalára rögzített DHT22-t, további szellőzőnyílásokat fúrtam a dobozra, illetve a lenti kábelbevezetőre egy kisméretű ventilátort helyeztem a levegőutánpótlás biztosítása céljából. Ez a 20x20mm-es 5VDC ventilátor a listáról. Az egyébként is 3.3V 16mA GPIO lábakat nem ajánlott túlzottan terhelni, így egy Hackernoon-ról kölcsönzött ötlettel egy S8050 NPN tranzisztort használtam relének, ami a GND-t szakítja, és a Raspberry 5V-os tápja működteti a ventilátort, egy GPIO tűről vezérelve az S8050 segítségével, ezzel a Raspberryről programból bekapcsolható a ventilátor, ha érzékeli, hogy túl meleg lett. (Önmagában a Raspberry Zero nem igazán melegszik 36 fok Celsius fölé, így nem feltétlenül kell hűteni, - Cerberusban nincs is - ám a tunerkártya extrém hőjével valamit kezdeni kell) Hozzáértők szerint egy ellenállás még kellene a GPIO és a tranzisztor közé, de gyakorlatban e nélkül is működik - amíg egyszer el nem pukkan és utána majd hiszek a hozzáértőknek.
Lent jobbra ismét a lángérzékelő látható, amin potméterrel állítható az érzékenység, mellette balra egy műanyag "konzol"-ra helyezve a fényérzékelő, tőle balra hátul a ventilátor.

UPDATE: az S8050 használatára valamivel biztonságosabb megoldás látható az NVR projektnél.

Bal oldalon lent az analóg-digitál átalakító (ADC) látható, amire a lángérzékelő és a füstérzékelő analóg lábait kötöttem a pontos értékek beolvastatása céljából, mivel a Raspberrynek nincs saját analóg bemenete. És, mint kiderült jól tettem, mert a téves tűzjelzések visszaszorításához fontos a pontos értékek ismerete.
E felett látható a szintillesztő, ami a balra legfelül látható füstérzékelő 5V-os jeleit konvertálja le a Raspberry számára barátságos 3.3V-os szintre. Az analóg és digitális lábat is, mivel az MQ-2 5V-os Arduino rendszerhez készült eredetileg.

Középtájt a Raspberry Pi Zero W szerintem könnyen felismerhető, az alatta levő sorkapocsra az I2C, a felül levő sorkapcsokra a 3.3V és 5V tápellátásokat gyűjtöttem össze. Felül egy USB2 High-Speed (480Mbps) HUB kábel található.. és miért emelem ki a sebességét? Mert persze ezzel is megjártam, első körben ebayről vettem egy frankó OTG USB Hub-ot 300 Ft-ért, ami USB2.0-nak van reklámozva... igen ám, de sajnos csak FullSpeed vagyis 12Mbps sebességet támogat, ami a tunerkártyának kevés, el sem akart indulni vele. Úgyhogy további kísérletezés helyett egy magyar webshopból vettem kissé drágább, de garantáltan nagysebességű USB elosztót. Ami mellesleg ugyanúgy Kínában készült.

Elvi bekötési rajz:

bekotes2-elrendezes1.jpg 

Összeszerelés után a memóriakártyára jöhet:

1.Raspbian telepítése,

2. TVHeadEnd telepítése majd beállítása a tunerkártyán fogott adás sugárzására a helyi LAN hálózatra

A Linux kernel gond nélkül felismerte a tunerkártyát, és meg is próbálta elindítani, miután rendes HighSpeed USB csatlakozót kapott. Kivéve, hogy a xc3028-v27.fw nevű firmware fájlt a /lib/firmware mappába kellett előbb tennem, ahogy a linuxtv.org oldal tanácsolta.
Később rájöttem, hogy az alábbi parancs megoldotta volna ezt helyettem:

sudo apt-get install linux-firmware-nonfree

Sebaj, több is veszett Mohácsnál. A következő lépés lehet a szkennelés, például a dvb-apps csomagba tartozó scan parancs segítségével. Városnál kinek-mi esik közelebb... Megjegyzem ez a keresés kihagyható, csak az antenna és tuner működőképességét teszteljük vele, mert a tvheadend-nek saját keresője van. Bár nem árt, ha a főbb frekvenciákat tudjuk, mert a TVHeadEnd-ben a frekvenciákat meg kell adnunk kézzel.

scan /usr/share/dvb/dvb-t/hu-Budapest -a 0

A TVHeadEnd telepítése többlépcsős, jelenleg nem volt a Raspbian Jessie tárolóban, így hozzá kellett adnom a /etc/apt/sources.list fájlba az alábbi sort:

deb http://dl.bintray.com/tvheadend/deb jessie release

update: új tároló:

deb https://dl.bintray.com/mpmc/deb raspbianjessie stable-4.2

Ezután jöhet a tárolók frissítése és telepítés:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61
sudo apt-get update
sudo apt-get install tvheadend

Ha sikeresen feltelepült, akkor a 9981-es porton elérhető a tvheadend webes felülete. A beállítása nem túl bonyolult a webes felületen keresztül, ha lesz rá igény írhatok bővebben róla, lényeg az, hogy be kell állítani a Mux-okat a megfelelő DVB-T frekvenciákra, azon belül már meg tudja keresni a csatornákat, amit aztán kiajánl stream formájában. És hogy mire jó ez? Akár VLC-vel is tudjuk nézni bárhol a hálózatról a megfelelő streamet, de még ennél is jobb a nagyszerű KODI programmal történő tvheadend integráció, mivel a KODI-ban akár csatornát is tudunk váltani.

3. A működtető Python szkriptet átírtam, hogy újra tudjam hasznosítani, szétdobva több unit-ba a szükséges funkciókat.

https://github.com/enesbcs/multisensor-python-rpi

A ms_gol.py-be a lehetséges beállítások:

  • mqttServer az MQTT szerver IP címe
  • tempdelaysec hány másodpercenként kezdje küldeni az adatokat (30-240 másodperc ajánlott)
  • PIN_TMP a fenti bekötés szerint a BCM22-es csatlakozó
  • IDX_TMP ezt a Domoticz-ban felvett virtuális szenzor IDX címére kell állítani (hőmérséklet+páratartalom)
  • IDX_LHT fényérzékelő Domoticz IDX
  • PIN_MOTION1 az SR501 a BCM23-as csatlakozón
  • PIN_MOTION2 az RCWL a BCM16-os csatlakozón
  • IDX_MOTION_C Domoticz IDX a kombinált mozgásérzékeléshez, ha mindkét fenti érzékelő jelez
  • IDX_PITMP Domoticz IDX a Raspberry saját hőmérsékletét adja vissza
  • PIN_FLAME a lángérzékelő digitális lába
  • IDX_FLAME_PIN Domoticz IDX tűzjelzés (kapcsoló)
  • IDX_FLAME_VAL Domoticz IDX a lángérzékelő analóg értékének
  • PIN_SMOKE a füstérzékelő digitális lába
  • IDX_SMOKE_PIN Domoticz IDX tűzjelzés (kapcsoló)
  • IDX_SMOKE_VAL Domoticz IDX a füstérzékelő analóg értékének
  • IDX_SIREN Domoticz IDX Választó kapcsoló, hangjelzésre (10,20,30,40,50,60 értékekkel), hangfájlok a sound mappában vannak
  • IDX_RADIO Domoticz IDX Választó kapcsoló, a rádióadók a "config_sound.py"-ben átírhatóak
  • PIN_FAN a hűtőventillátort vezérlő csatlakzó BCM12
  • IDX_FAN a ventillátor Domoticz IDX-e

 

A bejegyzés trackback címe:

https://bitekmindenhol.blog.hu/api/trackback/id/tr112777780

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.

Támogatók:
okosotthon.jpg
allterco.jpg

Utolsó kommentek

  • szenorb: Hello. Bekötöttem 12V-ra , a bemetére egy mozgás érzékelőt kötöttem. Szépen kapcsol a relé a késle... (2023.06.14. 06:48) Shelly okosrelé (Shelly1)
  • Melanoheliophobia: Üdv! Kb. 2 éve vásároltam két ugyanilyen okos izzót. Sajnos az egyik még garancia idő alatt eltávo... (2023.05.03. 16:50) Shelly Vintage okosizzó
  • eNeS: Lehetséges, bár az ESP8266-ot lassan ideje elfelejteni, ha nem helyi hálózatra akarsz vele forgalm... (2023.04.02. 08:43) Tasmota szkriptek
  • eNeS: @tomih: Thonnyban rebootot nyomva nekem se megy az NTP. De mikor lekapcsoltam a Thonnyt és rebooto... (2023.04.02. 08:40) Raspberry Pico és a LAN (W5100S-EVB-Pico)
  • krump_lee: Kedves eNeS! ESP8266 tasmota-val szenvedek, hiemq kapcsolat sehogy nem jön össze, sehol nem talál... (2023.04.02. 08:31) Tasmota szkriptek
  • Utolsó 20

Címkék

433mhz (12) alkatrész (22) alternatív kapcsoló (2) amg8833 (1) analóg (2) android (1) arduinoeasy (5) audio (1) automatizálás (3) bemenet (3) bk7231n (1) ble (1) blitzwolf (4) bluetooth (9) bridge (2) camhi (2) csináld magad (22) dimmer (1) diy (28) do-it-yourself (27) domoticz (11) ds18b20 (1) ebay (3) érintő (2) érintőkapcsoló (7) érzékelő (11) esp-01 (2) esp32 (11) esp8266 (21) espeasy (2) espurna (1) esp projekt (18) Eview7 (1) ewelink (1) feldolgozó (1) felhő (1) fényérzékelő (1) firmware (7) flame detector (1) fogyasztásmérő (5) ftdi (1) füstérzékelő (1) gázérzékelő (1) gpio (1) hang (4) hangjelző (1) hőmérséklet (22) https (1) ikea (1) impulzus relé (1) izzó (2) javascript (1) jelenlétérzékelő (3) kamera (18) keresztkapcsoló (1) kézmozdulat (1) kijelző (3) kimenet (21) konnektor (8) lan (9) lángérzékelő (2) led (3) linux (4) logic level converter (1) lua (1) lux (1) maple mini (2) mcu (3) micropython (1) mikrovezérlő (2) milkv (1) mobil (1) mosfet (1) mozgás (5) mpyeasy (4) mq-2 (2) mqtt (3) működtető rendszer (5) multiroom (1) nedvesség (1) neo (1) neopixel (1) Node-RED (1) nvr (4) nyitás (7) okosház (4) okosizzó (3) okosotthon (8) oled (1) onvif (8) openbeken (1) opencv (1) openwrt (4) orange pi (4) páratartalom (6) php (1) pico (1) pi pico (2) poe (1) programozás (9) projekt (25) proximity olvasó (1) python (2) raspberry (14) raspberry projekt (6) raspbian (1) reed (1) relé (27) rf (2) rgb (6) rock pi (1) rögzítő (2) rp2 (1) rpieasy (1) rtc (1) shelly (24) smartwise (1) solid state relay (1) sonoff (20) SonOTA (1) soros (1) ssl (1) ssr (1) stm32 (4) szenzor (11) szilárdtest relé (1) szintillesztő (2) sziréna (1) szkript (3) szünetmentesítés (4) t1 (1) tasmota (8) távirányító (3) Telegram (1) termékteszt (85) termosztát (2) touch (2) ups (5) usb (7) usb hub (1) valós idejű óra (1) vezérlések (20) vezérlő (5) világítás (5) villanykapcsoló (12) webkamera (1) wiegand (1) wifi (32) ws2812 (1) xiaomi (5) xm (4) xmeye (4) yoosee (1) zigbee (16) zwave (3) Címkefelhő
süti beállítások módosítása