Becsengetünk az Internetre

Vezeték nélküli csengő felokosítása egy kis hardver frissítéssel

Elképesztő dolgokra képes manapság már a technológia. Vannak például elemmel működő gombok (amik érdekes módon nem feltétlenül gombelemmel működnek), amit ha megnyomnak a kapunál, akkor a lakásban megszólal a csengő. Varázslat. De mi a helyzet olyankor, ha nem a Für Elise-t (vagy a készülék által kínált 35 másik klasszikus dallam egyikét) szeretnénk ezredjére is meghallgatni ilyenkor, hanem mondjuk szeretnénk egy push üzenetet kapni a telefonunkra?

Természetesen erre is vannak kész megoldások, de választhatjuk azt az utat is, hogy megpróbáljuk felokosítani a jelenlegi készülékünket. Remélhetőleg mondanom sem kell, hogy ennek mindenki csak saját felelősségére álljon neki, de alább olvashatóak az én tapasztalataim.

Csöngess be hozzám jó barát

A fentihez hasonló megoldás van nálam üzembe helyezve. A bal oldali a kültéri elemes gomb, a jobb oldaliak pedig a beltéri, konnektorba dugható csengők. Ez utóbbiak közül az egyiket kezdtem el egy kicsit közelebbről szemügyre venni.

A szemrevételezés egy késői fázisa

A középső két nagyobb lyuk környékén csatlakozott a konnektor dugó két fele, amit ki kellett forrasztani, hogy le tudjam hámozni a dobozt az áramkörről. Ez nem is akkora probléma, mert miután már belenyúlkáltam, biztos, hogy nem szeretném egy konnektorba visszadugni. Az első napirendi pont így az, hogy kiderítsem, hogy a gyengeáramú komponenseknek mekkora feszültségre van szüksége és hol tudom ezt rájuk csatlakoztatni.

Csökken a feszültség

A konnektorok csatlakozóitól balra van egy LP3773 A3DjC4 feliratú IC (de az is lehet, hogy az a j inkább egy i, vagy csak egy karcolás, nehéz megmondani), az után kezdtem el először kutatni. Amit találtam az egy adatlap a LP3773A leírásával. Bíztam benne, hogy elég közeli a névrokonság ahhoz, hogy használható információkat találjak, de az adatlap nagy része kínai nyelven íródott, így kicsit nehezebb dolgom volt.

Szerencsére sikerült megtalálni a releváns részt, ahol azt emlegette, hogy 90V és 265V közötti bemenő feszültségre az ő kimenete 5V lesz. Megvan tehát a szükséges feszültség, már csak egy csatlakozási pontot kell találni.

Az volt a tervem, hogy megnézem még egy pár komponens adatlapját és próbálom a "vonalakat" követni, amíg el nem érek egy alkalmas helyig. A jobb felső sarokban van az antenna, hozzá közel egy másik IC, ami jó eséllyel a rádiójel fogadásáért lesz felelős. A rajta lévő 531R 1743 felirat és kis spirális jel alapján a Synoxo SYN531R adatlapjához jutottam el, ahol egy pinout-tal lettem gazdagabb.

Az ANT csatlakozás melletti GND és VDD lesz nekünk érdekes. Esetünkben egy elég egyszerű nyomtatott áramkörről van szó, csak egy rétege van, amit egy kis háttérvilágítással egyszerűen tudunk követni.

...és lőn világosság

A GND az IC fölötti szép nagy részhez csatlakozik, a VDD viszont nem látszik, hogy merre megy. Más szögből is megvizsgálva a helyzetet úgy tűnt, hogy bemegy az IC alá és a bal oldalán jön ki. Mindkét esetben egy-egy csatlakozó felülethez lyukadunk ki (C09-cel jelölve a NYÁK-on), ahova eredetileg talán egy kondenzátort terveztek. Sebaj, ráforrasztottam a kábeleket, rákötöttem 5 voltra és csodák csodájára működött a csengő.

Bolondos dallamok

Csengőnk jelenleg villog és zenét játszik le, ha valaki megnyomja. A LED eléggé be van épülve az áramkörbe, a hangszóró viszont csak úgy lóg két vezetéken a NYÁK alsó felén. A közelében szintén van egy IC, aminek utána tudunk egy kicsit nézni. Az FR0396-E2 felirat alapján találtam is egy másik kínai adatlapot a szükséges diagrammal.

A hangszóró a PWM1 és PWM2 kimenetekre van csatlakoztatva, amit ráköthetünk mondjuk egy Raspberry Pi-ra, ami ugyan nem tud PWM bemeneteket kezelni, de nekünk nem is kell, hogy a teljes dallamot fel tudjuk a jelekből építeni, csak az számít, hogy ha ott valami változás történik (elkezdene dallamot játszani a készülék), akkor tudjunk róla.

Internet of Doorbells

Külön szerencse, hogy 5V kell neki, így üzemeltethetjük a csengőt akár a Raspberry Pi-ról is. Az egyik hangszóró kimenetet rákötöttem a 23-as pin-re és már csak egy kis Python kódot kell írni, hogy kezelni tudjuk a beérkező csengetéseket.

import signal
import sys
import RPi.GPIO as GPIO

def signal_handler(sig, frame):
    GPIO.cleanup()
    sys.exit(0)

def button_pressed_callback(channel):
    print('Ding-dong')

if __name__ == '__main__':
    GPIO.setmode(GPIO.BCM)

    GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)

    GPIO.add_event_detect(23, GPIO.RISING, callback=button_pressed_callback, bouncetime=30000)

    signal.signal(signal.SIGINT, signal_handler)
    signal.pause()

A print('Ding-dong') helyére természetesen írhatunk valami kreatívabbat is, ide jöhetne az üzenet küldés, relé kapcsolgatás vagy bármi, amire apró számítógépünk képes. Kis érdekesség még a magas bouncetime, ami azért kell, mert néhány csengetési dallam akár 10-15 másodpercig is küldhet jelet a “hangszórónak” és ezeket nem szeretnénk külön eseményként kezelni.

Ennyi lenne tehát egy egyszerű rádiós csengő felokosítása. Tervben van még egy alternatív megoldás is, amiben egy általános rádióvevő dolgozná fel a kültéri gomb által küldött jeleket, így nem kellene az egyik beltéri egységet feláldozni a fejlődés oltárán. Talán majd egy másik bejegyzésben, addig is jó csengetést.

Kapcsolódó anyagok

This post is also available in english: Ring up the Internet

Hozzáfűznél valamit?

Dobj egy emailt a blog kukac deadlime pont hu címre.

Feliratkoznál?

Az RSS feed-et ajánljuk, ha kedveled a régi jó dolgokat.