Az IGAZI Gomb!

by T-Factory

Igaz, ami igaz, kicsit elcsúsztunk ezzel a videóval, de szerencsére minden évben van április 1. Nem minden poén, van amit komolyan gondoltunk, pld az öntartó áramkört esp8266-al.


Ez meg miez?!

A kérdés jogosan merülhet fel benned. 2017 év végén a nagy té betűs társaság elkészítette a Gombot, ami egyébként egy vicc volt, csak sokan nem értették.
Az eredeti videót itt tudod megnézni (és nézd is meg, mert különben a mi verziónkat nem fogod érteni): https://www.youtube.com/watch?v=cD595jxlC8M

Már akkor elkészítettük a saját verziónkat a gombból, de a videó felvétele eszköz és idő hiány miatt is elcsúszott. 2018-ban pedig abszolút nem tudtunk videózni, így, a jobb később mint soha elvet követve most megcsináltuk a sajátot.


Hogyan is működik?

Az eredeti nagy T-s valószínűleg tartalmazott egy SIM kártyát meg egy GSM modemet és azon kereszül oldhatták meg, bár nem láttam egyet sem belülről. Hangot nem kell továbbítania, csak a hívás tényét, így valami nagyon egyszerű hardver elég hozzá.
Nekünk viszont nem állt rendelezésünkre mikrovezérlőre köthető GSM modem. Arra jutottunk, hogy mi megoldjuk belső hálózaton HTTP kapcsolattal.
Arról van szó, hogy a gombban lévő mikrovezérlő meghív egy belső URL-t amit egy linux szerver szolgál ki. Erre a szerverre telepítettünk egy Asterisk telefonközpontot, amiből pedig a tényleges hívás ki tudott futni akár VoIP, akár GSM, vagy fizikai vonal irányba.
Az Asterisk paraméterezhető úgy, hogy figyel egy mappát, és ha abba elhelyezünk egy fájlt adott formátumban, akkor automatikusan végrehajtja a parancsot - itt most egy telefonhívást - a benne lévő infók alapján.

A formátuma elég egyszerű:

1. Channel: dongle/dongle0/+36xxxxxxxxx //Így kell kiválasztani a kimeneti TRUNK-ot, és megadni a telefonszámot
2. MaxRetries: 0  //Újrapróbálkozások száma
3. WaitTime: 60  //Max várakozási idő (pld csörgés), másodpercben
4. Context: therealbutton  //Belső context, az esetleges szabályokhoz
5. Extension: s 
6. Priority: 1 
7. Set: soundid=1  //ezt a fájlt játsza le, ha felveszik a telefont

A fájlt a /var/spool/asterisk/outgoing/s.call fájlba kell menteni. Természetesen létre kell hozni az asterisk configban előtte az s-extensiont, ami figyeli ezt a fájlt (vagy akár egy teljes mappát). Egy PHP szkriptel pedig az ESP-7- től érkező URL hívásra legenreáljuk a fájlt.
 

Elektronika

Magában az elektronikában egy érdekesség van, az öntartó kapcsolás. Itt arról van szó, hogy alap helyzetben a mikrokontrolleren nincs áram, nem fogyaszt. Amikor megnyomjuk a gombot akkor kerül áram alá, és tartja ezt addig, amíg be nem fejezi a munkát. Itt most addig, amíg a szervertől nem kapja meg azt a választ, hogy végbement a hívás, vagy azt, hogy hiba lépett fel. Ezután kikapcsolja magát teljesen (nem deepsleepről van szó).

A minta kapcsolás egy NodeMCU-t ábrázol, de működik sima ESP8266 bármelyik verziójával úgy is, hogy egy feszültség konverteren kívül nincs más az áramkörben. 
Eszközök: IRLB88721 N mosfet, 2N2222 PNP tranzisztor, 2 db 1kOhm ellenállás, mikrokapcsoló.
Ezen kívül a videóban látható gombban ws2812b ledszalagból levágott összesen 4 db led adja a megvilágítást.


Programozás

Az öntartó áramkör számára 1 pin-t használunk, itt most ez a D6-os (GPIO12). Amikor elindul a mikrovezérlő a pint output típusúra állítjuk, majd lehúzzuk a digitalWrite(12, LOW) paranccsal. Ettől a pillanattól kezdve nincs szükség arra, hogy nyomjuk a gombot; az áramkör a tranzisztoron és a mosfeten keresztül már saját magát zárja.
Kis trükk, hogy amikor ki akarjuk kapcsolni az áramkört nem feltétlenül elég a digitalWrite(12, HIGH), a tesztjeink során nem midig kapcsolt ki az eszköz. Ezt a legegyszerűbben oldottuk meg: kikapcsoláshoz átállítjuk a 12-es láb módját pinMode(12, INPUT_PULLUP) -ra, így bekapcsol az ESP belső felhúzó ellenállása és a PNP-s tranzisztorra feszültséget küld, amitől az áramkörünk megszakad.
A gombunk eredeti kódját a letöltések alatt találod.

Remélem találtál magadnak hasznos információkat, még úgy is, hogy eredetileg ez egy poénnak készült. Ne felejtsetek el feliratkozni a Youtube csatornánkra, illetve kövessetek minket Facebookon is! Ja és a legfontosabb: #NyomjadagombOT

 



 

Képek (2)

Letöltések

Hozzászólás