433 mhz különböző jelek küldése bonyolult elektronika nélkül

 ( redman | 2017. április 25., kedd - 8:33 )

Sziasztok,

Játszani szeretnék, de mégis valami hasznosat csinálnék Raspberry segítségével.
Nagyon zavarnak a vezetékek ezért vezeték nélkül szeretném megoldani egy-egy kapcsoló jelének átvitelét. Semmi extra, csak az, hogy be van kapcsolva vagy nincs.
Ehhez ezt használnám:
http://hobbielektronikabolt.hu/spd/MOD001/433MHz-vezeteknelkuli-RF-Ado-Arduino-hoz
És persze a Raspberry-n a vevő párját.

A kérdés:
Mi van akkor, ha adóból több van? Hogyan tudom a vevő oldalon azt, hogy melyik kütyüből jött a jel?
Nem szeretnék mindegyik alá Arduinot tenni.
Megoldható ez valami egyszerű elektronikával?

Üdv: redman

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Neked kell kitalálnod egy protokollt, amit átküldesz a 433MHz-es csatornán és abban azonosítani tudsz küldőket, illetve adatokat is át tudsz küldeni... :)

Ha csak egy buta kapcsolót akarsz rákötni egy 433MHz-es adóra, akkor ahhoz okosabb adó kell, amelyik tudja magát azonosítani az átküldött adatokkal.

Na pont ezt szeretném :)
A kérdés az, hogy ennek linkelt kütyünek a data lábára mit kell rákötnöm, hogy más jelet adjon, mint a másik.
Nem vagyok egy elektronikai szaki azért kérdezem.
Az elképzelésem laikus módon:

1-es adó: Táp -> ellenállás + kondenzátor - data láb - > ADÓ -----> jel: 123546548
2-es adó: Táp -> ellenállás + ellenállás + kondenzátor - data láb - > ADÓ -----> jel: 1654834

Tehát amikor ráadom a tápot (kapcsoló bekapcsol), akkor statikusan ezt a jelet adja. És mindegyik kütyű másikat. Mindegy, hogy mit csak más jel legyen. Aztán vevő oldalon kimérem és a jel szerint reagálok.

http://www.redphoto.hu

"A kérdés az, hogy ennek linkelt kütyünek a data lábára mit kell rákötnöm, hogy más jelet adjon, mint a másik."

Ennek a linkelt kütyünek a data lábára alapvetően egy Arduino kell, arra szolgál, hogy két Arduino tudjon egymással beszélni 433MHz-es csatornán. Ami neked kell, az egy okosabb 433MHz-es adó, amelyik elküld egy egyedi kódsorozatot Arduino nélkül, de az nem ez a kütyü.

Például veszel egy ilyet és megnézed, milyen kódot küld: https://www.banggood.com/433Mhz-Transmitter-Wireless-Remote-Control-Switch-12V-4CH-Channel-p-1018573.html

A Conrad-nál kapható vezeték nélküli kapcsoló adó és vevő. A vevő tanítható az adó kódjára. Ezek konkrét feladat megoldására valók. Tanulás, játszás, kísérletezés céljára szerintem jók az általad választott eszközök, de előtte valami kódot kell küldeni és fogadni. Annál is inkább, mivel minden (pl. mikrosütő) zavarni fogja.

Igen, csak nekem az adót kellene tanítanom.

http://www.redphoto.hu

433MHz-t pont nem kéne a mikrosütőnek zavarnia. Még a Wifi-t is csak közelben alapból gyenge vétel esetén. Volt már hogy netrádiót hallgattam, a konyhában a működő mikró közelében már megakadt a kapcsolat, úgy hogy a ház másik végében vagy 3 téglafal távolságban volt a router/AP.

Van itt rádióamatőr is, ő majd biztos tud még információval szolgálni, de amit én tudok az a következő.
Ez és még pl. 868 MHz szabad felhasználású frekvenciák. Ha itt akar valaki adni, annak megvannak a szabályozásai, amit nem csak a jog szempontjából találtak ki, hanem műszaki háttere is van.
Teljesítmény maximalizálása, ami az antennán leadottra számít, tehát ha az erősít rajta akkor egy gyárilag beállítottal túlléped, ha nem csökkented.
Kitöltési tényező, ami meghatározza, hogy mennyi ideig "lehet a tied" az adott frekvencia, adott időközönként. pl.: 1/100, ami lehet 100s-ként 1s adatforgalom, vagy akár 10s-ként 100ms adatforgalom.
Más frekvenciákon és ezen sem szabad más rádióforgalmát zavarni. Tehát nem szabadra nem állhatsz rá és a szabadon pedig a megadott szabályokkal forgalmazhatsz.
Ha úgy képzeled, hogy a kapcsoló bekapcsolásakor küldöd a jelet folyamatosan, ami legyen egy folyamatos 1-es, akkor annak nagyon fognak örülni a környékeden. Kapu-nyitók, vezeték-nélküli riasztók, mindenféle rádiós vezérlők ezt a frekvenciát is használhatják.
Ezenkívül, ha gyengék a rádiós paraméterei a modulnak, akár a teljes sávot is teleszemetelheti.
Ha folyamatos 1/0-t akarsz küldeni, azt sem célszerű és nem is szabad így küldeni. Riasztók általában azt teszik, hogy állapotváltozáskor X (pár) alkalommal küldik az új állapotot, esetleg visszaigazolást várnak a csomag megérkezéséről. Majd Y időközönként (akár 5 perc) küldenek újra csomagokat, hogy még él az eszköz, esetleg közben nem volt állapotváltozás.
Ha több ilyen kapcsolót akarsz majd rákötni a cuccodra, akkor a VEVŐ oldalon csak 1 frekvenciát fogsz figyelni, tehát az első akit megszívatnál az Te lennél, nem pedig a szomszéd. A saját eszközöddel fognád le az adott csatornát. (és általában még a mellette lévőket zavarnád)

Szerintem nem is szabad a jogszabályok szerint olyan cuccot forgalomba hozni, ami teleszemeteli a spektrumot. Más kérdés, hogy kínából bármi rendelhető, valamint még pár topikkal régebben is volt szó, hogy még egy márkásabb rádióchip (még le is maratták meg mikroszkóppal is csekkolták, hogy nem hamis) is beleszemetelt az éterbe egy pillanatra, mikor felébredt energiatakarékos üzemmódból

A forgalomba hozatal, a birtoklás, illetve a használat szabályai teljesen elkülönülhetnek egymástól. A használat szabályozása - több szempontból is helyesen - EIRP-t ad meg, azaz az antennáról kisugárzott teljesítményben kell a határértéken belül maradni. EIRP-t az antenna talppontjánál mérhető RF-teljesítményből és az antenna nyereségéből lehet számolni. Azaz adott adóberendezés - antenna páros lehet, hogy direktben összekapcsolva túllóg a limiten, de egy hosszú kábelen összekötve az adót az antennával már épp belefér.
Az RF-zavarást nem csak a túl nagy teljesítményű motyók adják, ezt jól látod, sokkal több a tranziens jellegű "szemét", illetve a tervezési/kivitelezési hibából adódó zavarás. Ez sok esetben a "nem értek a rádiózáshoz, de..." alapon építőelemekből összetákolt, elektronikához lapos elem-kapcsoló-izzó szinten értők által alkotott motyókból érkezik, amit baromi nehéz kimérni, megtalálni (és az illetőt pofán verni, akarom mondani megtanítani arra, hogy hogyan kellene csinálnia...).

Ami a topicnyitónak fontos: osztott, zavarással terhelt közeget adatátvitelre használni "elema-kapcsoló-izzó" bonyolultságú megoldással nem biztos, hogy jó ötlet. Sőt. Biztos, hogy nem az.
Vannak céláramkörök/árok, amik tudnak "beszélgetni" egymással, célszerű lehet azokat használni, és az rpi-vel már csak ezeknek a lekérdezését/kezelését kell megoldani, az RF-átvitelt meg rábízni arra, ami azt biztonságosan/megbízhatóan meg tudja valósítani.

+1
Csak szakszerüen.
Bár sokkal érdekesebb lenne a távolságot is tudni. ;)

Na pont ilyen ezközt keresek.
A 433 MHz az csak egy példa volt mert az Internet nagyrészt ezzel van tele.

Az elvárásaim az eszközzel kapcsolatban:
- vezeték nélküli legyen
- adó oldal olcsó legyen (ne legyen bonyolult áramkör és energia fogyasztás. Egy pici elem és kész.)
- a vevő tudja megkülönböztetni az adók jeleit, így több kapcsolót tudok figyelni.

Legyegszerűbb felhasználás: ablakra rákötni egy kapcsolót és adót. Ha az ablak nyitva van, az adó ad és ebből a vevő tudja, hogy nyitva van. Mivel egy lakásban több ablak is van, a vevőnek tudnia kéne melyik ablak van nyitva.

http://www.redphoto.hu

Pont-multipont kapcsolatra keresel egy központi egységet és több perifériát... Nem biztos, hogy olcsó és egyszerűen kezelhetőben ez menni fog. Olyan eszközre van neked szükséged, aminél a központi egység képes egyedi azonosítókkal pollozni a perifériákat, amik a saját azonosítójukat felismerve válaszolnak neki az állapotukkal. Azaz megfordítanám a dolgot: nem a kapcsoló melletti eszköz büfizne bele a sávba, hogy "bekapcsolva" meg hogy "kikapcsolva", hanem a központ kérdezne. Mivel a pollozás kellően sűrűn történhet, így a periférián bekövetkező állapotváltozásról elég gyorsan értesül a központ. Persze a pollozás miatt a perifériáknak a lekérdezések sűrűségétől függően rendszeresen meg kell szólalni, így a táplálásukhoz lehet, hogy egy mérettel nagyobb elem/akku szükséges, de a rendszer használhatósága, bővíthetősége mindenképp komoly előnyt jelent.

Ha nem fontos azonnal tudni, ha elveszett az eszköz például rádió zavar miatt, akkor lehet takarékoskodni az energiával.

Úgy csinálnám, hogy a központ címzi a perifériát, az csak akkor válaszol, ha a legutóbbi válasz óta volt változás, vagy eltelt már egy nagyobb idő, mondjuk 2 perc. Így elég ritkán kell adásba vinni a perifériát, s nem kell nagyobb kapacitású táplálás neki.

Ha azt mondod, gond lehet az, hogy rádió zavar miatt épp az átküldött változás nem megy át, akkor a központ küldhet címzetten nyugtát a perifériának arról, hogy megkapta az üzenetet. Ha a nyugta nem jön meg a perifériánál, úgy az a még pengő üzenetét a kisvártatva bekövetkező újabb lekéréskor elküldi. Így senki nem marad le semmiről, energiatakarékos a megoldás, s nem túl bonyolult egy mikrokontrollernek elmesélni ezt. Vélelmeztem, hogy a központnak van energiája, például hálózati táplálású. Alig néhány watt oda is bőven elég.


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Vagy egyszerűen a közpon elküldi az utolsó állapotot amiről ő tud (1 bit, talán belefér :-), és a periféria akkor válaszol csak, ha ő másról tud.

Egy timeout leteltével mindenképp kötelező válaszolni a perifériának, különben a központ sohasem veszi észre, ha ellopták a perifériát. :)


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Nekem az is jó lenne, ha tudnátok olyan cuccot ajánlani, ami vezeték nélküli kapcsolót tud olvasni.
Ami megoldott jelenleg: kapcsolni egy távoli konnektort
Amit szeretnék megoldani:
Távoli (on/off) kapcsoló jelének olvasása. Több kapcsoló, egymástól távol.

Ákos

http://www.redphoto.hu

Ha jól értem, akkor egy visszacsatolás kellene, hogy a távoli kapcsoló valóban kapcsolt-e?

Akkor mind2 oldalra adó-vevő kell.

Nem feltétlenül:

Kapcsoló bekapcsolt -> ad jelet
Kapcsoló kikapcsolt -> nem ad jelet

Vevő oldalon:

while (jel= jelolvasás()) {

if (jel == "jel_egyedi_neve"){
print "van jel";
} else {
print "nincs jel";
}

}

http://www.redphoto.hu

Az átviteli hibát így nem tudod megkülönböztetni a kikapcsolt állapottól. Persze alkalmazásfüggő, hogy ez baj-e.

+1.

Tehát az adó folyamatosan hirdesse az állapotát?
Mert arról lövése sem lesz, hogy vette e valami.

Az nem baj, valószínűleg ha ad, akkor venni fogja a vevő.
Élet nem múlik rajta szóval ilyen megoldás jó lenne

http://www.redphoto.hu

Adónak: http://www.microchip.com/paramChartSearch/chart.aspx?branchID=1201
Kis méretű, tápellátása kellemes, keveset fogyaszt. Hazai disztribútora a http://chipcad.hu
A többi már az általad beleírt program dolga (egyedi sorszám, véletlenszerű időpontban való adás, ...)

Én ezt úgy csinálnám, hogy:

* Minden kapcsoló _folyamatosan_ küldi, hogy be vagy ki van-e kapcsolva. Valamilyen átlagos periódusidővel, de a pontos küldési időpont véletlenszerű lenne, hogy többnyire ne ütközzenek. (Ezzel megúszod, hogy kétirányú kommunikáció kelljen nyugtázással, meg minden nyalánksággal. Tehát sok szempontból egyszerű megoldás ez.)
* A vevő oldal folyamatosan vesz, és ha jel jön, akkor feldolgozza. A feldolgozó központ a kapcsolókról 3(!) állapotot vezet, és ezeket kell kezelnie a programnak: be, ki, offline (ha túl hosszú ideje nincs értékelhető jel)
* A küldö a következő adatsorozatot küldi: azonosító, állapot, üzenet védő CRC hash (ha szándékos támadás ellen nem kell védelem, akkor ez elég, ha szándékos támadás ellen is védeni kell, akkor valamilyen kriptográfiai módszer kell)
* Ha gyors reakció kell (az átlagos frissítésnél gyorsabb), akkor átkapcsoláskor azonnal (is) küldjük a jelet (a periodikus mellett).
* A rádió által küldendő jelet egy mikrovezérlő tudja szolgáltatni, amikre ugyanazt a programot teheted, csak a saját kódjának kell másnak lenni, meg a véletlen (küldés időzítés) forrására valami jó megoldást kell csinálni.

Közben rendesen elolvastam, hogy nem akarsz az adókhoz mikrokontrollert. Ez nehezíti, de azért vannak megoldások így is.

Például felvehetsz jeladási frekvenciákat a kapcsolóknak. Minden kapcsoló "pittyeg" egy adott ismétlési sebességgel, ha be van kapcsolva, és egy másikkal, ha ki van. Pl: másodpercenként 5, vagy 7 pittyenés. Ezt meg lehet valósítani 555-tel, vagy valami hasonló időzítő csippel (nem gondoltam végig, hogy hogyan, de tuti meg lehet csinálni).

A pittyenések frekvenciáját úgy kell belőni, hogy ne legyenek összetéveszthetőek (relatív prímek, vagy ilyesmik legyenek - nem gondolom most végig).

A vevőn frekvencia analízisnek veted alá a vett jelet - pl rezonátorok programozásával szoftverből - és ennek a kimenete adja, hogy melyik kapcsoló éppen milyen állapotban van. (a frekvencián mért értékből binárisat valami határhoz viszonyítva lehet csinálni. Próbálgatással be lehet lőni jó határértékeket, vagy akár a jelteljesítményhez arányított adaptív limitet is leht használni.)

Na, de akarjon mcu-t! Amit eggyel feljebb javasoltál, az jónak tűnik, a probléma nyilvánvalóan mikrokontrollerért kiált. RC-tagokkal, meg 555-ökkel szerencsétlenkedni gányolás, ráadásul, ha nem megy elsőre, nincs mozgástér a javításra. Pákával persze talán lehet. MCU-nál viszont letöltöm a módosított programot, pákát be se kell kapcsolni. Persze nem neked mondom, a kérdezőnek szól ez nyilván... :)


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Persze, szerintem is hülye ötlet lenne MCU nélkül, csak jó feladványnak tűnt és ez volt az alap kiírásban... Amúgy MCU-ból lehet ilyen négylábú (vagy talán 8) mini MCU-t tenni belső oszcillátorral, akkor nem kell hozzá semmi szupport áramkör, csak egy stabil táp, ami meg a rádió miatt úgyis már kell. Pl ATTiny-vel szerintem lehet ilyet csinálni - nyilván egyéb gyártóknál is van hasonló megoldás. Szóval a footprint nem lesz nagyobb, mintha 555-tel bohóckodnánk, sőt. A programozót meg kell venni hozzá (pár dollár - vagy építeni kell...), de egyébként nem tújl drága egy ilyen csip.

Szerk.: Pl ez 3 dollár, ugyanitt lehet programozót is rendelni: https://www.sparkfun.com/products/11232 (aki ügyes attiny13-at is vehet DIP tokban, annak csak 8 lába van)

Szerk2.: https://www.sparkfun.com/products/11801 - programozó és kotroller: https://www.sparkfun.com/products/9378 40 dollárból tudsz csinálni öt periféria vezérlést. Nem annyira olcsó, de amit tanulsz vele, az megfizethetetlen :-)

Ahja, csak a saját NYÁK, a táp, meg minden egyéb többe kerül, mint egy készre szerelt cucc, mint például a WeMos D1 mini, amiben már benne van a Wifi antenna és minden egyéb gyösz.

Jó, én abból indultam ki, hogy csinálni akarja.

PIC-ek is tudják. Belső RC-oszcillátor, reset áramkör, van 8 lábú SMD, DIP, de SOT23-5 tokban van 5 lábú is, ha nagyon kicsi kell. :) Programozót lehet venni is, csinálni is, a programozás módja dokumentált. Assembler, compiler szintén van ingyé. :)


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

ESP8266 nem játszik? Ebay-ről 600Ft egy modul, minden kommunikációt sokkal magasabb szinten meg lehet vele írni. Nem kell kitalálni saját protokolt. Ha csak ilyen egyszerű dologra kell akkor telepíthetsz rá nodemcu firmware-t. Azt lehet lua-ban programozni és készen kapsz hozzá olyan modulokat mint http kliens, titkosítás, websocket, mqtt stb.

Az igaz hogy egy picit ágyúval verébre, viszont ha az árát nézed akkor jobban jársz ezzel. (Kivéve ha 10 ezres nagyságrendben akarsz sorozat gyártani ilyen saját szenzort, de akkor meg nem itt kérdezted volna meg hogy hogyan csináld.)

Köszi megnézem

http://www.redphoto.hu

Normál wifi hálózatra kapcsolódik, vagy ő maga is tud hálózatot létrehozni. Tudsz ezzel írni olyan programot ami eseményt küld ha változott valami és/vagy le tudod tőle kérdezni hogy jelenleg mi az állapota. Így hatékony marad (ő értesít téged ha változás volt), ugyanakkor nem foglalja a sávszélességet ha nem muszáj.

Ugyanezt egy egyszerű AM rádióadóval nem tudod megcsinálni; ott eleve nem 2 irányú a kommunikáció hanem csak egyirányú. Lehet venni 2.4Ghz-es modulokat is amiken lehet digitálisan kommunikálni és tudják a kétirányú kommunikációt is. De az még mindig nem Wifi, és az gyakorlatilag csak egy vezeték nélküli soros vonalat ad. Programozni nem lehet. Nem "okos eszköz" és ha még mellé teszel egy arduino-t akkor már háromszor akkora összegnél tartasz mint amennyibe egy ESP8266 kerül.

Utánanéztem, tök állat. :)
Pont ilyenre gondoltam.
Arra mondjuk kíváncsi leszek, hogy mivel fogom táplálni és az meddig bírja, de ez már egy máik probléma. (Úgy értem, hogy akksival vagy elemmel)

http://www.redphoto.hu

És így jutunk el a "nem szeretem a vezetékeket" állásponttól az akkumulátortelepig. :-)

Itt egy hőmérővel van kombinálva, így egy akksiról több, mint három hónapig bírja.

ha elég pár percenként kommunikálnia, el lehet küldeni deep sleep-be, akkor meg a fogyasztás is oké.
Ha a wifi lefedettség nem jó, vagy a fogyasztás zavar, akkor pl. LoRa modul hozzá. Legalábbis elméletben,ezt még nem próbáltam, de tervben van

A fenti példámnál 5 percenként küld adatot és megy le 5 percre deep sleep-be, így bírja több, mint 3 hónapig egy akksiról.

[Feliratkozás]