Android-Bascom UDP csomagküldés, vezérlés az interneten
Android-Bascom UDP csomagküldés, vezérlés az interneten
Sziasztok,
Otthon már üzemel a félkész házvezérlésem AVR alapokon (fűtés, öntözés). Eddig ezt egy általam írt, PC-n futó progi segítségéven tudtam grafikus felületen beállítani, szabályozni, amihez a PC bekapcsolása minden esetben feltétel volt (a PC soros portokon kommunikál a rendszerrel). RDP segítségével az internetről is működik a dolog.
Azonban most elkezdtem ismerkedni az Android programozásával, és így felmerült annak a lehetősége, hogy egy okostelefonra megírt progival, a PC kihagyásával, elegánsabban is meglehetne ezt oldani.
Mobilról, vagy tablet-ről az interneten keresztül már tudok küldeni UDP csomagokat, melyek tartalmazzák a parancsokat, illetve a beállítási értékeket.
Ha a vezérlő melletti másik telefon a forrás IP és port címre visszaküldi a válaszcsomagot, akkor az első telefon ezt megkapja, és értelmezi.
Szóval itt jönne be a képbe a Wiznet modul, ami szerintem a PC szerepét átvehetné ebben az esetben. A mobil elküldené a parancsot UDP csomagban, a Wiznet modulnak, ami kicsomagolná a hasznos adatokat, és továbbküldené a házvezérlés felé soros porton, oda-vissza.
A problémám az, hogy ezt az ethernet modult még annyira nem ismerem,
de szerintem valahol itt kellene kezdeni:
http://members.home.nl/bzijlstra/softwa ... z810mj.htm
Arra gondoltam, hátha mást is érdekel ez a dolog, és tudnánk egymásnak segíteni...
Kicsit talán off ez a témakör, mert nem csak a Bascom-ról szól, de talán Robi nem lesz nagyon mérges ránk...
Üdv, Joe
Otthon már üzemel a félkész házvezérlésem AVR alapokon (fűtés, öntözés). Eddig ezt egy általam írt, PC-n futó progi segítségéven tudtam grafikus felületen beállítani, szabályozni, amihez a PC bekapcsolása minden esetben feltétel volt (a PC soros portokon kommunikál a rendszerrel). RDP segítségével az internetről is működik a dolog.
Azonban most elkezdtem ismerkedni az Android programozásával, és így felmerült annak a lehetősége, hogy egy okostelefonra megírt progival, a PC kihagyásával, elegánsabban is meglehetne ezt oldani.
Mobilról, vagy tablet-ről az interneten keresztül már tudok küldeni UDP csomagokat, melyek tartalmazzák a parancsokat, illetve a beállítási értékeket.
Ha a vezérlő melletti másik telefon a forrás IP és port címre visszaküldi a válaszcsomagot, akkor az első telefon ezt megkapja, és értelmezi.
Szóval itt jönne be a képbe a Wiznet modul, ami szerintem a PC szerepét átvehetné ebben az esetben. A mobil elküldené a parancsot UDP csomagban, a Wiznet modulnak, ami kicsomagolná a hasznos adatokat, és továbbküldené a házvezérlés felé soros porton, oda-vissza.
A problémám az, hogy ezt az ethernet modult még annyira nem ismerem,
de szerintem valahol itt kellene kezdeni:
http://members.home.nl/bzijlstra/softwa ... z810mj.htm
Arra gondoltam, hátha mást is érdekel ez a dolog, és tudnánk egymásnak segíteni...
Kicsit talán off ez a témakör, mert nem csak a Bascom-ról szól, de talán Robi nem lesz nagyon mérges ránk...
Üdv, Joe
Egyszerű a probléma:
1, a HW-ed fix IP (192.168.x.y) és fix portszámon (psz) lehet megszólítani.
2, Routeren beállítod, hogy a kívülről is látható legyen (DynDNS.org, Myip.org, stb.)
3, Routeren beállítod, hogyha a psz portszámon jön megkeresés a PortForward segítségével a belső 192.168.x.y címre továbbítsa.
4, Az android, vagy egyéb eszköz a sajatnev.dyndns.org:psz címen szólítod meg a _saját_ eszközödet.
A Wiznet modult direktben is megszólíthatod (nagy AVR esetén van is hely rá). De egy segédchippel kicsolagolod, konverzió, és soroson küldi tovább....
Nos?
1, a HW-ed fix IP (192.168.x.y) és fix portszámon (psz) lehet megszólítani.
2, Routeren beállítod, hogy a kívülről is látható legyen (DynDNS.org, Myip.org, stb.)
3, Routeren beállítod, hogyha a psz portszámon jön megkeresés a PortForward segítségével a belső 192.168.x.y címre továbbítsa.
4, Az android, vagy egyéb eszköz a sajatnev.dyndns.org:psz címen szólítod meg a _saját_ eszközödet.
A Wiznet modult direktben is megszólíthatod (nagy AVR esetén van is hely rá). De egy segédchippel kicsolagolod, konverzió, és soroson küldi tovább....
Nos?
Az elsö négy ponton már túl vagyok...
A probléma most a konvertálás soros portra, illetve az adat visszaküldese a source ip cimre, illetve portra, mert ez mindig változik sajnos. Tapasztalatom szerint, ha mobilról kezdeményezek kb 20 másodpercig van nyitva a port, szóval ha ez utan jön a vissza csomag, az már nem jön meg....
A probléma most a konvertálás soros portra, illetve az adat visszaküldese a source ip cimre, illetve portra, mert ez mindig változik sajnos. Tapasztalatom szerint, ha mobilról kezdeményezek kb 20 másodpercig van nyitva a port, szóval ha ez utan jön a vissza csomag, az már nem jön meg....
Az UDP csomag valóban tartalmazza a source adatokat (IP, port), csak eddig még nem találtam meg, hogyan tudom ezt kiolvasni belőle (biztosan bennem van a hiba, de a fejlesztőpanelt kölcsönadtam, szóval csak a netet tudom túrni, kevéske időmben, mindenféle tesztelési lehetőség nélkül)...
Bár lehet, hogy ezzel nem is kellene foglalkoznom, mert elvégzi helyettem a Wiznet chip....
Bár lehet, hogy ezzel nem is kellene foglalkoznom, mert elvégzi helyettem a Wiznet chip....
Sziasztok,
Nekem csak a Wiznettel van tapasztalatom, az viszont eddig csak jó, bátran merem ajánlani. Könnyű kezelni, viszonylag olcsó és alig kell mellé alkatrész. A múlt héten ültettem be az elsőt saját panelra.
A legbonyolultabb dolog amit eddig megvalósítottam vele, az két socket párhuzamos kezelése TCP módban.
Egy megjegyzést tennék az eredeti kérdésekhez. Bár UDP-vel kapcsolatban 0 a tapasztalatom, elképzelhetőnek tartom, hogy UDP módban nem lehetséges mobilra adatot visszaküldeni, mert a mobilhálózat NAT-olt hálózat. Kívülről csak a szolgáltató szervere látszik, maguk az eszközök nem. TCP módban viszont működhet a dolog.
Persze ha a mobil wifin keresztül csatlakozik a helyi hálózathoz, akkor ez a probléma nem áll fent.
Nekem csak a Wiznettel van tapasztalatom, az viszont eddig csak jó, bátran merem ajánlani. Könnyű kezelni, viszonylag olcsó és alig kell mellé alkatrész. A múlt héten ültettem be az elsőt saját panelra.
A legbonyolultabb dolog amit eddig megvalósítottam vele, az két socket párhuzamos kezelése TCP módban.
Egy megjegyzést tennék az eredeti kérdésekhez. Bár UDP-vel kapcsolatban 0 a tapasztalatom, elképzelhetőnek tartom, hogy UDP módban nem lehetséges mobilra adatot visszaküldeni, mert a mobilhálózat NAT-olt hálózat. Kívülről csak a szolgáltató szervere látszik, maguk az eszközök nem. TCP módban viszont működhet a dolog.
Persze ha a mobil wifin keresztül csatlakozik a helyi hálózathoz, akkor ez a probléma nem áll fent.
TyuTyu belevau:
Hat en mar tulvagyok a kulonbozo webes megoldasokon, idorendi sorrendben:
1, Bascom + wiznet (btw: van egy csomo ha kell vkinek)
Ekkor a teljes http leprogramozva, stb....
Azert volt kuzdelem a trendek grafikonok temakoreben...
2, Egyszeru linux hw. Esetemben egy router, mert gombokert megszerezheto. Ekkor csak a kapcsolatot kell megirni a router es a uC kozott. Sokkal egyszerubb es uj funkciokat hoz a rendszerbe. (pl SQL adatbazisban trendek tarolasa...)
3, Sokaltam a router fogyaztasat (12W) ezert elkeszult a 3. verzio is:
A hazban csak ethernet soros atalakito van (1.5W) a tobbi kulso szerveren.
Miert soros ethernet atalakito ? Mert olcso es nem a bascomban kell az ethernettel foglalkozni.
Termeszetesen a szerver oldalan, sql, python, php, stb...
Ha kitalaltad merre szeretnel menni, vagy ha tudok segiteni szolj
BTW: miert UDP ?
TyuTyu belevau vege
Hat en mar tulvagyok a kulonbozo webes megoldasokon, idorendi sorrendben:
1, Bascom + wiznet (btw: van egy csomo ha kell vkinek)
Ekkor a teljes http leprogramozva, stb....
Azert volt kuzdelem a trendek grafikonok temakoreben...
2, Egyszeru linux hw. Esetemben egy router, mert gombokert megszerezheto. Ekkor csak a kapcsolatot kell megirni a router es a uC kozott. Sokkal egyszerubb es uj funkciokat hoz a rendszerbe. (pl SQL adatbazisban trendek tarolasa...)
3, Sokaltam a router fogyaztasat (12W) ezert elkeszult a 3. verzio is:
A hazban csak ethernet soros atalakito van (1.5W) a tobbi kulso szerveren.
Miert soros ethernet atalakito ? Mert olcso es nem a bascomban kell az ethernettel foglalkozni.
Termeszetesen a szerver oldalan, sql, python, php, stb...
Ha kitalaltad merre szeretnel menni, vagy ha tudok segiteni szolj
BTW: miert UDP ?
TyuTyu belevau vege
Menet közben pontosan erre, mármint az ethernet-soros konverterre esett az én választásom is. Már úton is van. (Sajnos egyszerűen nincs már időm a gép előtt ülni esténként, szóval egyszerűbb ez így...)
Miért UDP? Mert az már megy Android alól...
Persze, lesz teszt TCP alapon is, de szeretném minél hamarabb tabletről irányítani a házat, és ha megjön a konverter, akkor részlegesen ez akár már a héten megtörténhet
A felajánlott segítséget köszönöm, ha aktuális lesz szólok
Miért UDP? Mert az már megy Android alól...
Persze, lesz teszt TCP alapon is, de szeretném minél hamarabb tabletről irányítani a házat, és ha megjön a konverter, akkor részlegesen ez akár már a héten megtörténhet
A felajánlott segítséget köszönöm, ha aktuális lesz szólok