Povezava Android - lasten HW - WiFi

programski jeziki in programiranje

Moderator: tilz0R

Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a SamoBr » 05 Dec 2018, 02:21

Jaz bi tudi rad vedel kaj vse je treba (HW) imeti in potem kaj vse je treba narediti, da narediš komunikacijo s telefonom(sw) . Mislim na SW pri mikrokontrolerju in SW na telefonu.
Če kdo to zna bi bil vesel, če bi naredil najbolj preprost in enostaven primer. Tipka na mikrontrolerju in en znak ki se izpiše na telfonu, enkrat 0 enkrat 1 glede na to ali je tipka pritisnjena ali ne.
SamoBr
 
Prispevkov: 2758
Pridružen: 14 Jun 2015, 13:45
Zahvalil se je: 129 krat
Prejel zahvalo: 248 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 47

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a MocnikG » 05 Dec 2018, 08:32

Glede povezave s telefonom imaš več variant.

1. Varianta - direkt preko povezave Bluetooth, ta varianta je bolj primerna za telefone z Androidiom, ker za Apple rabiš BL (E) modul, ki ima nekakše key generator v sebi, da se med vzpostavljanjem povezave s telefonom ta key izmenja. Sam BL se ponavadi obnaša tako da kar prejme na eno stran BL potem to pošlje. V večini primerov je narejno tako. Imaš tudi defacto BLE 5.0, ki pa vsebuje določene tipe stavkov na katere pišeš in načine komunikacije, ampak je to stvar aplikacije.

Primer: imamo RN42 modul, na eni strani UART na drugi BL. Na telefonu zaenkrat samo Terminal za BL (ena izmed aplikacij na appstoreu). Kar pošljemo na UART (z prednastavljenimii AT ukazi in ustreznimi nastavitvami) se nam ob povezanem telefonu pojavi na terminalu. Če želimo napisati program, konkretno za android, uporabimo API od Google Android Developers ter z eno izmed pripravljenih metod preberemo, kar je v bufferju. Zadevo sprogramiramo ustrezno višje.

2. Varianta - UDP/TCP povezava, tu v veliki meri imamo WiFi za fizičen sloj, za povezavnega IP (lahko tudi IPv6) in kasneje UDP ali TCP (odvisno od aplikacije), Na PCB imamo ESP8266, ki je sprogramin z AT ukazom tako, da se zna povezati v obstoječe omrežje WiFi. Nato je treba določiti namen aplikacije predvsem zaradi tega, da določimo na kateri strani bomo imeli strežnik in na kateri bomo imeli klient. To je pomembno saj UDP in TCP nista point to point tip povezave.

Če gremo na najbolj praktičen primer. Na fizičnem sloju imamo WiFi, na povezovalnem IP, na transportnem TCP ali UDP in na aplikacijskem MQTT. To pomeni, da moramo imeti nekje MQTT strežnik (bolj pogosto se temu reče broker), pogosto imamo strežnik na eni izmed "kitajskih" spletnih strani, do katere se kasneje povežemo in objavljamo podatke ali se na njih prijavimo. Če gremo en sloj nižje, imamo TCP oz. UDP, konkretno za MQTT na napravah, ki imajo dovolj baterijske in procesorske moči teče MQTT preko TCP (povezavni tip način komunikacije), če pa imamo naprave z omejeno procesorsko ali baterijsko močjo pa uporabimo MQTT-SN, to pa teče preko UDP (nepovezavni tip način komunikacije). Razlika med TCP in UDP je, da TCP odpre povezavo pošlje podatek teče izmenjava in potrditev prejema z strani prejemnika in nato pošiljatelj zapre povezavo, medtem ko pa UDP pošlje podatek in ga ne briga ali je podatek prišel na cilj ali ne (s mislu se bosta že kasneje zmenila če kaj manjka), tako je v grobem opisano. No in tam ko imamo MQTT strežnik tam je ponavadi tudi UDP oz. TCP strežnik. Kar pomeni, da moramo imeti na napravi z ESP8266 narejen klient UDP oz. TCP. Prav tako bo treba na telefonu imeti klient UDP ali TCP, ter posledično na obeh klient MQTT (subscriber ali publisher).
Če pogledamo na napravo z ESP, tukaj dobimo dobro trditev zakaj uporabiti operacijski sistem za IoT naprave (Contiki, mbedOS, RIOT, ....), zato, da lahko sloje nad fizičnim furamo na mikrokrmilniku, ker imamo vse sloje od fizičnega do aplikacijskega zložene v OS, ki ga portamo na izbran mikrokrmilnik. Kar je še tukaj pomembno, da lahko brez mirne vesti zamenjamo fizičen sloj neodvisno od gornjih slojev ter preidemo z WiFi na 6LoWPAN ali celo BLE. Kar je še pomembno tukaj poudariti je to, da se v trendu vdorov treba vprašati na varnost, saj se lahko posamezna imeplemntacija nekega sloja lahko čez noč spremeni, updejta in je potrebn zamenjati samo ta sloj. Lahko tudi furamo podatke MQTT preko ESP, tako da je na ESP rešeno vse do sloja TCP oz. UDP. Na Androidu, pa razvijemo aplikacijo, ki bo imela MQTT api, v veliki večini so ti apiji potem povezani na TCP ali UDP sloje telefona, ki so že implementirani in jih ni treba še enkrat imeplemnetirati, nato se povežemo na MQTT broker. V aplikaciji se za začetek prijavimo (subscribamo) na neko temo, recimo ji: Stanovanje/Spalnica/Luci, na napravi pa se povežemo enako prek WiFi na MQTT broker ter na temo Stanovanje/Spalnica/Luci objavimo podatek "1".To pomeni, da se bo ta podatek pojavil na aplikaciji na telefonu.
Strežnik MQTT lahko imeplementiramo tudi na malino, ki ga prek povezave Ethernet povežemo v omrežje. Eden izmed pri meni implementiranih strežnikov je mosquitto. Obstaja še en kup brokerjev tako open source, kot ne. Paziti je potrebno, da je imeplemtirana pravilna različica MQTT standarda.
Podoben protokol je CoAP, ki je tudi aplikacijski, in omogoča še nadljno gradnjo slojev z LwM2M.
Lahko si tudi preberete in poskusite tukaj: GIT-UM

3. Varianta - povezava preko dostopne točke WiFi. Naprava z ESP8266 kreira dostopno točko WiFi (ssid: mojWiFi). V tem primeru pa moramo imeti strežnik klient koncept rešen na telefonu in napravi.
*Sent*from*my* iPhone.
*Sent*from*my* Linux.
*Sent*from*my* room.
Uporabniški avatar
MocnikG
 
Prispevkov: 376
Pridružen: 18 Maj 2015, 17:56
Kraj: Koroška - MB - CE
Zahvalil se je: 32 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s55ei
Število neizkoriščenih povabil: 5

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a bpavsic » 05 Dec 2018, 09:08

@SamoBr
Najbolj preprost primer je "NodeMCU" modul iz kitajske.
Ne vem koliko ima smisel pisat tutoriale, če je tega po internetu ogromno:

npr:
https://www.teachmemicro.com/simple-nodemcu-web-server/
http://arduino-er.blogspot.com/2017/06/ ... ample.html

...
My brain has too many windows open.
bpavsic
 
Prispevkov: 561
Pridružen: 22 Jan 2015, 14:46
Kraj: MB / MS
Zahvalil se je: 142 krat
Prejel zahvalo: 174 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 177

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a VolkD » 05 Dec 2018, 09:43

Temo sem razdelil, ker je sama po sebi že malo offtopic prejšnje, pa tudi zato, da ta del obdelamo malo bolj natančno.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 29509
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 5564 krat
Prejel zahvalo: 3743 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 253

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a VolkD » 05 Dec 2018, 09:57

Moram priznati, da me ta tematika močno zanima a sem vsaj tako neuk kot Samo. MocnikG je problem lepo razdelil na nekaj delov glede na tip komunikacije:
1. bluetooth
2. WiFi (strežnik je na naši napravi z mikrokontrolerjem)
3. WiFi (strežnik na obeh napravah), obe naprave se vključujejo v neko lokalno omrežje

Dajte me popraviti, če sem kaj narobe razumel.
bpavsic je dal linke na primere narejene kode.

Na prvi pogled je vse povedano, a ni tako. Tisti, ki še nikoli ni nič naredil s temi stvarmi je dobil ogromno informacij, ki sprožajo ogromno dodatnih vprašanj. Tak sem tudi sam.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 29509
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 5564 krat
Prejel zahvalo: 3743 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 253

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a VolkD » 05 Dec 2018, 10:00

IMG_20181205_093747.jpg

Imam tole na mizi.

Kako se lotiti stvari ?
S čim se prevede koda ?

Ko bom to vedel ostane še vedno odprto vprašanje o modrem zobu in o programiranju za Android okolje.


P.S.: Upoštevajte da sem neumen in da nimam pojma (kot še veliko drugih, samo ne upajo priznat).
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 29509
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 5564 krat
Prejel zahvalo: 3743 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 253

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a MocnikG » 05 Dec 2018, 10:24

VolkD je napisal/-a:Moram priznati, da me ta tematika močno zanima a sem vsaj tako neuk kot Samo. MocnikG je problem lepo razdelil na nekaj delov glede na tip komunikacije:
1. bluetooth
2. WiFi (strežnik je na naši napravi z mikrokontrolerjem)
3. WiFi (strežnik na obeh napravah), obe naprave se vključujejo v neko lokalno omrežje

Ne narobe, prav je:
- V drugi varianti, je strežnik na "kitajskem", torej ne vemo kje, recimo nek public broker, kot je hiveMQ (eden izmed na listi googla), naprava z ESP in APP na telefonu pa je klient.
- Strežnik ni na obeh napravah v 3 varianti. Strežnik je na eni izmed naprav, na drugi pa klient. V 3 varianti naprava kreira WiFi dostopno točko (ki nima dejanske povezave v Internet) v tem omrežju sta samo naprava in telefon.

Link, ki sem ga pripel v prejšnjih posti GIT-UM je varianta android in arduino in nodemcu ravno tisto kar imaš ti. Opisano je za OŠ.

Za OŠ in ne profi. Za začetek.
1. Na nodemcu namestiš Arduino core
2. Namestiš na nodemcu MQTTHandler
....
tu je napisano o tem nekaj: https://git.um.si/IETK/IoT/tree/master/HW/firmware

Tu je poa uporabljena implementacija MQTT za Arduino: https://github.com/knolleary/pubsubclient

Za Android APP pa je v višjih repozitorijih.
*Sent*from*my* iPhone.
*Sent*from*my* Linux.
*Sent*from*my* room.
Uporabniški avatar
MocnikG
 
Prispevkov: 376
Pridružen: 18 Maj 2015, 17:56
Kraj: Koroška - MB - CE
Zahvalil se je: 32 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s55ei
Število neizkoriščenih povabil: 5

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a bluel » 05 Dec 2018, 10:28

Po mojem ti bo to najhitreje
https://github.com/espressif/arduino-esp32
bluel
 
Prispevkov: 47
Pridružen: 22 Jan 2015, 09:50
Kraj: Kreplje JN65WR
Zahvalil se je: 15 krat
Prejel zahvalo: 11 krat
Uporabnika povabil: sYsop
Število neizkoriščenih povabil: 4

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a VolkD » 05 Dec 2018, 10:29

Torej popravljam:
Glede na tip komunikacije:
1. bluetooth
2. WiFi (strežnik je nekje, ne vemo kje,...)
3. WiFi (strežnik je na eni napravi), obe napravi sta neodvisni od ostalih omrežij.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 29509
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 5564 krat
Prejel zahvalo: 3743 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 253

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a VolkD » 05 Dec 2018, 10:35

Pod 1. se bomo pogovarjali tukaj.
Pod 2. Me nekako ne zanima, ker občutek, da sem odvisen od nekega tujega strežnika nad katerim nimam nobenega vpliva ni prijeten. Za povrh pa si odvisen od povezave v internet, ki jo mnogokrat tudi ni. Skratka neka vmesna faza, ki se mi zdi nepotrebna, saj lahko rodi kup problemov.
Pod 3. Če sem prav razumel so linki, ki jih je dal bpavsic primeri, ko sodijo pod 3.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 29509
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 5564 krat
Prejel zahvalo: 3743 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 253

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a MocnikG » 05 Dec 2018, 10:42

VolkD je napisal/-a:Pod 1. se bomo pogovarjali tukaj.
Pod 2. Me nekako ne zanima, ker občutek, da sem odvisen od nekega tujega strežnika nad katerim nimam nobenega vpliva ni prijeten. Za povrh pa si odvisen od povezave v internet, ki jo mnogokrat tudi ni. Skratka neka vmesna faza, ki se mi zdi nepotrebna, saj lahko rodi kup problemov.
Pod 3. Če sem prav razumel so linki, ki jih je dal bpavsic primeri, ko sodijo pod 3.


Pod 2. Imaš dva primera če je broker javen torej neveš kje je, potem imaš nekaj problemov, načeloma brokerji, ki so plačljivi ali podobni, ki so malo bolj advanced omogočajo ogromno nastavitev in rešitev. Fajn je imeti v lastnem domačem omrežju lasten broker, torej neko malino na katerem teče mosquitto broker (link pripet v prejšnjih postih). Tu pa si sedaj neodvisen od Interneta.

Pod 3. Sodijo, in ja vse lepo prav, vendar zakaj bi fural HTTP prek WiFi za eno malo stvar, kot je recimo prižiganje LED itd. To pomeni, da imaš na napravi HTTP strežnik in na njem celo stran. Kar je zelo veliko in nerodno za oblikovanje itd. MQTT pošlje sam en majhen podatek. Ostalo rešuješ na močnejših mašinah.
Prav za IoT so se razvili protokoli MQTT, CoAP, LwM2M. itd. HTTP je nerodna velika glomazna zadeva.
*Sent*from*my* iPhone.
*Sent*from*my* Linux.
*Sent*from*my* room.
Uporabniški avatar
MocnikG
 
Prispevkov: 376
Pridružen: 18 Maj 2015, 17:56
Kraj: Koroška - MB - CE
Zahvalil se je: 32 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s55ei
Število neizkoriščenih povabil: 5

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a VolkD » 05 Dec 2018, 10:44

@MocnikG: Daj se spusti na najnižji nivo podajanja znanja. Na tak nivo, da bo to razumel tudi tisti, ki še nikoli ni naredil nič:
MocnikG je napisal/-a:1. Na nodemcu namestiš Arduino core
2. Namestiš na nodemcu MQTTHandler


Kaj je nodemcu ?
Kaj je Arduino core ?
Kaj pomeni to da ga namestiš ?
Kaj je MQTTHandler
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 29509
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 5564 krat
Prejel zahvalo: 3743 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 253

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a s54mtb » 05 Dec 2018, 10:45

Tako za na brzino narediti je najenostavneje prenos UDP na ESP-ju, na tulifonu imaš pa "UDP terminal". Ostalo je potem enako kot npr. prenos preko UART. To je meni odlično delalo za branje naših senzorjev tlaka.
Težava sveta je, da so inteligentni ljudje polni dvomov, medtem ko so neumni polni samozavesti. (Charles Bukowski)
s54mtb
 
Prispevkov: 8436
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 1112 krat
Prejel zahvalo: 2721 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 86

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a kose19 » 05 Dec 2018, 10:50

Ali ta UDP terminal dela samo na lokalnem nivoju, ali se dostopa tudi preko podatkovne povezave?
kose19
 
Prispevkov: 183
Pridružen: 19 Jan 2015, 18:01
Kraj: Kobarid
Zahvalil se je: 7 krat
Prejel zahvalo: 28 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 31

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a s54mtb » 05 Dec 2018, 11:44

Hm, jaz sem testiral v lokalnem omrežju. Lahko da mobilni operaterji filtrirajo UDP pakete. Nisem nikoli preverjal.
Težava sveta je, da so inteligentni ljudje polni dvomov, medtem ko so neumni polni samozavesti. (Charles Bukowski)
s54mtb
 
Prispevkov: 8436
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 1112 krat
Prejel zahvalo: 2721 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 86

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a bpavsic » 05 Dec 2018, 11:59

Imamo veliko možnosti...
BT povezave ne bom opisoval, ker je načeloma 1:1, torej direktna povezava med dvema napravama (esp8266 tega NE podpira, esp32 pa ima BT+Wifi).

V vsakem primeru pa imamo neko napravo, ki jo želimo krmiliti oz. od nje dobiti nek podatek in neko napravo, s katero bomo krmilili oz. preverjali nek podatek.

Vzamimo napravo A. To je npr. NodeMCU modul, ki ima priklopljen rele in temperaturni senzor.
Naprava B pa je naš telefon.

Ti dve zadevi je potrebno nekako povezat. Lahko bi direktno (BT), vendar imam sam raje Wifi, ker je enostavno dodajat naprave v isto omrežje in povezovat.

Ločiti moramo dve zadevi. Prva je povezava med napravama. Druga je način prenosa informacij, ko imamo povezavo že vzpostavljeno.

Povezava:
Če imamo neko obstoječo Wifi infrastrukturo, potem lahko napravo A in B povežemo na to omrežje. Če Wifija nimamo, imamo spet več možnosti.
-Na napravi A (senzor) vklopimo "AccessPoint" način, torej naš ESP bo ustvaril svoje wifi omrežje (kot da bi bil router) in z napravo B (telefonom) se povežemo nanj.
-Na napravi B (telefon) vklopimo Wifi Hotspot in našo napravo A (senzor) povežemo na telefon.
-Kupimo en poceni router za 15€ in si naredimo wifi omrežje za naše senzorje.

V glavnem, na nek način moramo povezati napravo A in napravo B. Lahko je tudi naš senzor v domačem wifi omrežju, s telefonom pa do njega dostopamo iz "službe" preko mobilnih podatkov... kakorkoli, možnosti je ogromno, razlikujejo se dejansko samo po tem, kako imamo wifi omrežje postavljeno (router, konfiguracija...). Tega ne moreš splošno napisat, ker ima praktično vsak doma nek drugačen router, nekateri uporabljajo za dostop do domačega omrežja VPN, drugi port mapping itd...

Tisti, ki si to težje predstavljajo, bo mogoče lažje s primerom iz narave. Internet oz. omrežje si lahko predstavljamo z vodo. Oceani, jezera itd.. so povezavi z rekami, potoki. Vsako jezero je neko lokalno omrežje, kompletna voda na zemlji pa je internet. Med sabo so povezana z rekami (routerji in bridgei). Podatki pa so ribice. Te ribice lahko plavajo iz jezera v jezero preko oceanov, rek, potokov, če slučajno vmes ne postavimo zapornice (firewall), kjer določeni "nadobudni" ribiči pazijo, da lahko samo določene ribice gredo skozi. Lahko tudi naš ribnik na dvorišču (lokalno omrežje brez povezave do interneta) popolnoma odrežemo od ostale vode in potem lahko ribice plavajo samo v njem. Naši napravi predstavljata neko ribjo votlinico, ribice pa podatke, ki letijo iz naprave v napravo. Dokler imamo neko povezavo med posameznimi jezerci (omrežji), da ribice lahko plavajo sem in tja, potem zadeva deluje. Omrežja so vsa, ne glede na tip (lokalno omrežje - torej LAN kabel ali wifi, mobilno omrežje - preko gsmja, internet... )

Prenos informacij:
Ko imamo naprave povezane, pa se spet začne veselica. Tukaj imamo en kup možnosti. Najprej je potrebno ločit nižji nivo prenosa podatkov in samih aplikacijskih protokolov. Torej podatke po IP omrežju (to, čemur ponavadi pravimo "internet" ali "mreža") prenašamo preko TCP ali UDP. UDP je način prenosa, kjer pošiljatelj ne dobi "feedbacka", da je sprejemnik podatke dejansko prejel, niti ni zagotovljen vrstni red poslanih paketkov. TCP pa zagotavlja, da bodo podatki prišli v pravem vrstnem redu in pošiljatelj dobi potrditev o prejemu. "Cena" tega pa je, da je TCP počasnejši.
Nadgradnja teh protokolov pa so potem http, websocket, ftp, itd...

Imam občutek, da marsikdo ne razume najbolj osnov omrežja in "meša" skupaj različne pojme. Torej, mislim, da je potrebno najprej razčistit to. Potem lahko gremo na dejansko implementacijo senzorjev, mqtt-ja, udp in tcp strežnikov itd...
My brain has too many windows open.
bpavsic
 
Prispevkov: 561
Pridružen: 22 Jan 2015, 14:46
Kraj: MB / MS
Zahvalil se je: 142 krat
Prejel zahvalo: 174 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 177

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a bpavsic » 05 Dec 2018, 12:07

Če še dodam malo analogije...

V omrežju so vse naprave praktično "enake". Torej en PC, notebook, mrežni tiskalnik, mobitel ali TV se prav nič ne razlikuje od wifi modula z ESP8266. Katere "storitve" kdo podpira je druga stvar ampak v osnovi so pa vse enake. Vsak ima svoj IP naslov (npr. 192.168.0.24). Med njimi pa so različne žične (optika, adsl, vdsl, lan, ..) ali brezžične povezave (wifi, 2g, 3g, lte...) . Za povezave med temi žičnimi in brezžičnimi omrežji pa skrbijo pretvorniki (bridge, router, modem...)
My brain has too many windows open.
bpavsic
 
Prispevkov: 561
Pridružen: 22 Jan 2015, 14:46
Kraj: MB / MS
Zahvalil se je: 142 krat
Prejel zahvalo: 174 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 177

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a MocnikG » 05 Dec 2018, 12:49

VolkD je napisal/-a:@MocnikG: Daj se spusti na najnižji nivo podajanja znanja. Na tak nivo, da bo to razumel tudi tisti, ki še nikoli ni naredil nič:
MocnikG je napisal/-a:1. Na nodemcu namestiš Arduino core
2. Namestiš na nodemcu MQTTHandler


Kaj je nodemcu ?
Kaj je Arduino core ?
Kaj pomeni to da ga namestiš ?
Kaj je MQTTHandler


OK.

Nodemcu, vezje na katerem je ESP mislim, da verzija 32, naj me popravi kdo če sem se zmotil, to modul WiFi, ki ima poleg še mikrokrmilnik in v njem še "stack" programsko opremo, ki zna obdelovati podatke po vseh slojih do TCP oz. UDP. Na tem mikrokrmilniku lahko kasneje zgradiš aplikacijo. Aplikacijo, ki bo MQTT ali pa aplikacijo, ki bo pošiljala in prejemal podatke surovega tipa po UDP in TCP. V ESPju so torej skladi za WiFi (802.11 ...), MAC (za "unikatno" številko omrežne naprave, unikatno pod narekovajem ker se MAC naslov načeloma vidi samo v lokalnem omrežju), sklad IP (povezavni, sklad, ki se zna povezati z drugo napravo v omrežju, v tem skladu se ob pošiljanju k podatku pri enkapsulaciji pripiše IP naslov naprave, ki pošilja), ter UDP ali TCP (ze omenjena razlika med njima). Nodemcu in posledično ESP modul lahko preprogramiraš, da ima različne firmware na njem, eden izmed njih je AT cmd firmware, to je da lahko imaš zunanji t.i. host MCU, in z ESP preko UART-a krmiliš ESP, ali drugače prek UART z nastavitvami za UDP, pošlješ z ustreznim ukazom AT+xxx surov podatek, preko UDP. Lahko naložiš tule Arduino core (tako ga jaz imenujem nima pa verjetno nekega imena), kar pomeni, da lahko ESP programiraš v Arduino style in Arduino IDE, kar pomeni, da lahko imaš vse knjižice, ki so napisane za Arduino dostopne tudi za ESP. Lahko naložiš LUA firmware, in programiraš isto kot za Arduino v LUA IDE z programskim jezikom LUA. Imaš tudi firmware za programski jezik C in Espressif IDE, to pa še nisem poskušal.

Arduino core je eden izmed firmwareov za Nodemcu, ki pravzaprav nosi povezavo med Arduino knjižicami in ESP najnižjem nivoju.

Namestiš pomeni, da v bistvu flešaš ta firmware na ESP in se zadeva obnaša kot Arduino ploščica.

MQTT Handler, handler pomeni ponavadi program, ki se zna rokovati z nekim protokolom, recimo MQTT, to je program, ki se poveže z nižjimi sloji UDP ali TCP, ter v ustrezni oblki MQTT paketa (bolj prav bil bilo headerja) pošlje prek UDP ali TCP nek podatek. Tukaj pride prav razlaga enkapsulacija podatka po TCP/IP sloju. Bom razložil posebej. V tem handlerju lahko z definicijo strukture nastavimo broker (IP ali URL), port (default za MQTT 1883), topic (tema: Stanovanje/Spalnica/Luči) in payload (podatek recimo ON ali OFF). Payload klient pošlje (pošlje v tem svetu pomeni, da ga publisha (objavi)) na strežnik, na katerem se v predhodem koraku kreira tema (topic) in ta payload se napiše na temo. Drugi klient, ki se subsciba na temo (torej prijavi na temo), dobi podatke ON ali OFF, če je prijavljen na temo Stanovanje/Spalnica/Luči.
*Sent*from*my* iPhone.
*Sent*from*my* Linux.
*Sent*from*my* room.
Uporabniški avatar
MocnikG
 
Prispevkov: 376
Pridružen: 18 Maj 2015, 17:56
Kraj: Koroška - MB - CE
Zahvalil se je: 32 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s55ei
Število neizkoriščenih povabil: 5

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a MocnikG » 05 Dec 2018, 13:02

Enkapsulacija podatka.

V teoriji je za to primeren ISO/OSI model. V praksi se ta model zamenja z modelom TCP/IP.

tcpiplayers.png


Na levi strani slike je ISO/OSI model, na desni pa TCP/IP model.

Enkapsulacija:

ipencap.png


Na sliki vidimo t.i. enkapsulacijo paketa, podatka, ...(paket, podatek, header, datagram itd, so imena za posamezen sklop podatkov v posameznem sloju).
Upper layer na sliki bi bilo po naše torej MQTT in naš podatek, ki bi se prenesel recimo ON ali OFF, bi spadal v message Upperlayer Applicaiton data, v tem sloju bi MQTT handler na naši napravi dodal Upper layer header, v katerem bi bilo nekaj podatkov (t.i. overheada) za objavi podatka na ustrezen topic in še nekaj o QOS (kvaliteti servisa itd.). Nato bi tak message prišel do TCP ali UDP sloja, tu bi se našemu message dodal TCP/UDP header, ki bi nosil ponavi PORT (1883) in še nekaj podatkov za robustnost. Nato gre TCP/IP message, ki je sestalvjen iz TCP/IP headerja ter Upper layer Aplication data ter headerja v sklad IP, v skladu se doda IP naslov pošiljatelja, in še nekaj podatkov za robustnost. Nato gre t.i. datagram v Layer 2, tu je ponavadi MAC, in še nekaj ostalih. Tu se doda kar precej različnih podatkov spet za robustnost. Nato pride šele do fizičnega sloja to je pa v različnih primerih različen, za WiFI je to 802.11 bgn sklad, ali Ethernet, LORA, Bluetooth, LTE, 802.15.4, itd. Preko tega fizičnega medija se podatki prenesjo v prejemnik. Ker poteka dekapsulacija.

Dekapsulacija,
poteka po obratnem vrstnem redu kot enkapsulacija ter se odvzemajo headerji od podatka, na koncu pride do naše aplikacije samo podatek, tisto kar smo shranili v Upper layer App Data torej ON. In MQTT broker, pomeni da prejme od UDP message ter pogleda v Header h kateremo topicu mora podatke pripirasti v našem primeru vidi topic: Stanovanje/Spalnica/Luči in priredi sem podatek torej ON ali OFF.

V primeru prijave na temo, pošlje subsriber na broker nek poziv, da podatke hoče videt v headerju da topic Stanovanje/Spalnica/Luci in broker mu vrne podatek.

Naprave, ki so vmes switch recimo, ne vidijo celotnega podatka do vrhnjih slojev ampak gre dekapsulacija samo do layerja 2 in ne višje. Med tem ko usmerjevalnik (router) vidi do IP sloja.

Kot zanimivost tukaj: vidi se koliko je dejnaskega overheada, pri takšnih povezavah, in tukaj lahko vidimo da če želimo prenesti podatek, ki je velik recimo 10B, bomo pri vse pridelali še nekaj bajtov podatkov poleg, t.i. headerjev (glav) na koncu preden bo prišlo vse od fizičnega sloja bo ta "podatek". Znašal kar precej več kot 10 B. Na koncu pa vidimo konkretno za Ethernet fizičen sloj da je MTU (maximum transmission Unit - max. velikost enote za prenos) 1500 B. Več kot to naenkrat se po omrežju ne sme prenseti. In zaj pogledamo vse sloju do TCP, nekje do 66B z Ethernet II okvirjem je overheada. Torej 76B za 10B velik podatek.
*Sent*from*my* iPhone.
*Sent*from*my* Linux.
*Sent*from*my* room.
Uporabniški avatar
MocnikG
 
Prispevkov: 376
Pridružen: 18 Maj 2015, 17:56
Kraj: Koroška - MB - CE
Zahvalil se je: 32 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s55ei
Število neizkoriščenih povabil: 5

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a MocnikG » 05 Dec 2018, 13:42

Da se še malo dotaknem enega izmed custom HW, kasneje lahko gremo na aplikacijo na Androidu.

Trenutno dela en študent HW, ki nosi STM32L152RE, ESP-WROOM-02 (ena izmed različic ESPja), nekaj senzorjev CCS811, HTS221, LDR itd. ter gonilnike za koračne motorčke.

Ideja je, da se krmilijo žaluzije. HW povezan na obstoječ WiFi in preko njega MQTT.

Picture1.png


Zadeva bo šla v črno škatlo in se bo vsakršen način krmiljenja motorjev itd. vodila preko MQTT in kasneje na višjih IoT management sistemih. to pa so tisti, ki je v zandjem času mare nekaj objavljal na forumu. Strani kot so thingspeak, in ostale se ne spomnim več. To so management sistemi v smislu, da ne rabiš delati nobenih posebej aplikacij, ampak imaš neko univerzalno aplikacijo za vse. Aplikacija lavfa tako na telefonu (aplikacija), kot na računalnik spletna strna itd. eden izmed takih sistemov je HomeAssistant. Ta zadeva se zna celo pogovarjati Google Alexa, Amazon Echo, Apple Siri, Apple home, Google home, sonoff itd.
*Sent*from*my* iPhone.
*Sent*from*my* Linux.
*Sent*from*my* room.
Uporabniški avatar
MocnikG
 
Prispevkov: 376
Pridružen: 18 Maj 2015, 17:56
Kraj: Koroška - MB - CE
Zahvalil se je: 32 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s55ei
Število neizkoriščenih povabil: 5

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a MocnikG » 05 Dec 2018, 13:47

Tukaj se pojavi tudi njeasnost. Pojem aplikacija.

aplikacija v komunikacijskih modelih = uporabniški generator podatkov, najvišji sloj, aplikacija je v veliki meri na računalniku kar pomeni HTTP, MQTT, itd.
aplikacija v komunikacijskih prenosnih napravah mobitelih = program, ki teče na njem, Google PLAY; APPstore, Facebook, word, message (za pošiljanje sporočil), phone (za klicat), skratka neke vrste program.
aplikacija v HW svetu = končna naprava, ki povezuje različne sklope integriranih vezij in al več modulov v katera so povezani sklopi integriranih vezij med sabo in jim dodaja dodano vrednost. torej če imamo temp. senzor in aktuator bo dodana vrednost regulacija temperature, kar pomeni, da je regulacija aplikacija.
*Sent*from*my* iPhone.
*Sent*from*my* Linux.
*Sent*from*my* room.
Uporabniški avatar
MocnikG
 
Prispevkov: 376
Pridružen: 18 Maj 2015, 17:56
Kraj: Koroška - MB - CE
Zahvalil se je: 32 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s55ei
Število neizkoriščenih povabil: 5

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a bpavsic » 05 Dec 2018, 14:12

Če dodam še to:

Na telefonu imamo več možnosti dostopa.
1.) Lahko naredimo aplikacijo, pri čemer smo vezani na operacijski sistem telefona. Torej ločena aplikacija za iOS, Android, Windows phone, .... (to je primer telnet/tcp/udp aplikacij, MQTT clientov in home automation zadev itd...)
2.) Lahko se povezujemo na nek spletni strežnik preko brskalnika na telefonu in je "aplikacija" dejansko spletna stran ("portal" za dostop do modulov).
2.1) Strežnik, do katerega dostopamo pa je lahko nek XY strežnik nekje na spletu ali pa kak raspberry pi serverček doma v dnevni sobi
2.2) Strežnik je lahko tudi ESP modul, torej se povezujemo direktno na njega (pri čemer je potrebno poudarit, da je to bolj zasilna rešitev - kakšen mini html ali kaj podobnega)
2.3) Lahko pa strežnika niti nimamo in imamo html datoteko z javascriptom shranjeno kar na telefonu in jo poganjamo direktno - brez http strežnika.

p.s.: MocnikG je super napisal ampak je mogoče to za nekoga, ki "nima pojma" o komunikacijah malo preveč informacij naenkrat.
p.p.s.: NodeMCU je dejansko firmware za ESP8266, napisan v C/C++ in omogoča programiranje v LUA skriptah. Marsikdo ga enači s fizičnim modulom (NodeMCU DevKit), ki se tudi na aliexpressu/ebayu najdejo pod takim imenom. Dokumentacija, Servis za generiranje FW glede na željene module
My brain has too many windows open.
bpavsic
 
Prispevkov: 561
Pridružen: 22 Jan 2015, 14:46
Kraj: MB / MS
Zahvalil se je: 142 krat
Prejel zahvalo: 174 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 177

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a SamoBr » 06 Dec 2018, 02:52

Ojoj, tega se je pa nabralo. Vsega ne bom mogel prebrati z razumevanjem, je preveč.
Samo, da vidim, če sem prav razumel:
Arduino IDE. Prenosnil povežem z ESP-jem preko USB kabla.
Kaj naprej, ESP ni arduino modul, kje se pove, da je to nekaj drugega?
SamoBr
 
Prispevkov: 2758
Pridružen: 14 Jun 2015, 13:45
Zahvalil se je: 129 krat
Prejel zahvalo: 248 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 47

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a bpavsic » 06 Dec 2018, 07:39

SamoBr je napisal/-a:Ojoj, tega se je pa nabralo. Vsega ne bom mogel prebrati z razumevanjem, je preveč.
Samo, da vidim, če sem prav razumel:
Arduino IDE. Prenosnil povežem z ESP-jem preko USB kabla.
Kaj naprej, ESP ni arduino modul, kje se pove, da je to nekaj drugega?


Ja, pravilno si razumel.
Modul pa se izbere pod Tools/Board, s tem da je potrebno najprej namestit (Tools/Board/Board Manager, kjer se izbere esp8266).

Dalje pa ne vem, nisem nikoli v arduino okolju delal... NodeMCU za enostavne in Sming za bolj kompleksne zadeve.
My brain has too many windows open.
bpavsic
 
Prispevkov: 561
Pridružen: 22 Jan 2015, 14:46
Kraj: MB / MS
Zahvalil se je: 142 krat
Prejel zahvalo: 174 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 177

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a MocnikG » 06 Dec 2018, 07:43

SamoBr je napisal/-a:Ojoj, tega se je pa nabralo. Vsega ne bom mogel prebrati z razumevanjem, je preveč.
Samo, da vidim, če sem prav razumel:
Arduino IDE. Prenosnil povežem z ESP-jem preko USB kabla.
Kaj naprej, ESP ni arduino modul, kje se pove, da je to nekaj drugega?


Ne NodeMCU ni Arduino res je.
Na tej strani imaš vodič. https://git.um.si/IETK/IoT/tree/master/HW/firmware, vir o čem govorim je tukaj https://github.com/esp8266/Arduino. Zavedati se potrebno samo pin mapping, ki je narejen med Arduinom in ESP. To pa je to:

Koda: Izberi vse
static const uint8_t D0   = 16;
static const uint8_t D1   = 5;
static const uint8_t D2   = 4;
static const uint8_t D3   = 0;
static const uint8_t D4   = 2;
static const uint8_t D5   = 14;
static const uint8_t D6   = 12;
static const uint8_t D7   = 13;
static const uint8_t D8   = 15;
static const uint8_t D9   = 3;
static const uint8_t D10  = 1;


To pomeni, da v Arduino kličeš kar 5 in ga postavljaš, spreminja pa se ti pin D1 na NodeMCU.

Tukaj pa je potem še na dolgo in široko napisano: https://arduino-esp8266.readthedocs.io/en/2.4.2/
*Sent*from*my* iPhone.
*Sent*from*my* Linux.
*Sent*from*my* room.
Uporabniški avatar
MocnikG
 
Prispevkov: 376
Pridružen: 18 Maj 2015, 17:56
Kraj: Koroška - MB - CE
Zahvalil se je: 32 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s55ei
Število neizkoriščenih povabil: 5

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a MocnikG » 06 Dec 2018, 07:58

Če gremo zdaj po vrsti.

1. Sem namestil Arduino zadeve na Nodemcu po tem vodiču:

Koda: Izberi vse
1. Download in namesittev Arduino IDE
2. Download Arduino jedra za ESP in podpora za ESP integrirana vezja.
3. File -> Preferences -> Additional Board manager URL, kopiraj ta naslov: http://arduino.esp8266.com/stable/package_esp8266com_index.json
3a. Tools -> Board -> Boards manager, v iskalnik vpiši "esp", izberi ter namesti, po končani namestitvi OK.
3b. Tools -> Board -> iz seznama izbereš NodeMCU 1.0 (ESP-12E module)
4. Skopiraj kodo in preizkusi. :D


Nato sem napisal kodo, ki je na sliki:

snipp075230.png


Izbral sem port na Tools -> Port, nato Verify ter nato Upload.

Rezulat je:

https://youtu.be/E1i2kBsf79s
*Sent*from*my* iPhone.
*Sent*from*my* Linux.
*Sent*from*my* room.
Uporabniški avatar
MocnikG
 
Prispevkov: 376
Pridružen: 18 Maj 2015, 17:56
Kraj: Koroška - MB - CE
Zahvalil se je: 32 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s55ei
Število neizkoriščenih povabil: 5

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a MocnikG » 06 Dec 2018, 08:25

Za povezavo z WiFi se potem priporoča v veliki meri napisane knjižice, ki so generične, kar pomeni, da so že "vključene" v Arduino IDE ko dolpotegnemo kot Aditional Board Manager.

Koda: Izberi vse
    #include <ESP8266WiFi.h>


Rezultat je:
1. stopnja povezava v neko omrežje, v našem primeru WiFi.
snipp081914.png
snipp081914.png (5.69 KiB) Videno 243 krat


2. stopnja, usmerjevalnik nam dodeli naslov IP, web server bo dostopen na tem naslovu. V mojem primeru je globalen, vendar za firewallom.

3. Vpišemo naslov IP v brskalnik.
snipp082127.png
snipp082127.png (6.62 KiB) Videno 243 krat


4. HTTP stran je dostopna
snipp082245.png
snipp082245.png (6.33 KiB) Videno 243 krat


5. Na serial monitorju pa spremljamo potek povezave HTTP requesti n rest.
snipp082352.png


Na zadnji sliki je vidno kako poteka HTTP izmenjava podatkov z GEST in POST metodami. Vidna je samo GEt zaradi tega, da vidimo, kaj pošlje Browser ko nekaj kliknemo na spletno stran in tisto parsamo. Mi mu odgovorimo s POST.
*Sent*from*my* iPhone.
*Sent*from*my* Linux.
*Sent*from*my* room.
Uporabniški avatar
MocnikG
 
Prispevkov: 376
Pridružen: 18 Maj 2015, 17:56
Kraj: Koroška - MB - CE
Zahvalil se je: 32 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s55ei
Število neizkoriščenih povabil: 5

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a MocnikG » 06 Dec 2018, 08:28

Še koda za zgornji primer:

Koda: Izberi vse
#include <ESP8266WiFi.h>

#ifndef APSSID
#define APSSID "SSID"
#define APPSK  "PASSWORD"
#endif


#ifndef LED
#define LED 0
#endif


const char* ssid = APSSID;
const char* password = APPSK;

// Ustvarjanje instance streznika
// z argumentom stevilke porta
WiFiServer server(80);

void setup() {
  Serial.begin(115200);

  // init LED
  pinMode(LED, OUTPUT);
  digitalWrite(LED, 0);

  // Povezava na omrezje WiFi
  Serial.println();
  Serial.println();
  Serial.print(F("Povezujem na "));
  Serial.println(ssid);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(F("."));
  }
  Serial.println();
  Serial.println(F("WiFi povezano"));

  // Zagon streznika
  server.begin();
  Serial.println(F("*****Zagon streznika****"));

  // Izpis lokalnega IP-ja
  Serial.println(WiFi.localIP());
}

void loop() {
  // Preverjanje ali se je kateri klient povezal
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  Serial.println(F("imam novega klienta"));

  client.setTimeout(5000); //  1000

  // Prva linija requesta
  String req = client.readStringUntil('\r');
  Serial.println(F("request: "));
  Serial.println(req);

  // Parsanje requesta
  int val;
  if (req.indexOf(F("/gpio/0")) != -1) {
    val = 0;
  } else if (req.indexOf(F("/gpio/1")) != -1) {
    val = 1;
  } else {
    Serial.println(F("napacen request"));
    val = digitalRead(LED);
  }

  // Nastavi LED glede na request
  digitalWrite(LED, val);

  // beri/ignoriraj rest na requestu
  // !!!!do not client.flush(): it is for output only, see below
  while (client.available()) {
    // byte by byte is not very efficient !!!!1
    client.read();
  }

  // Pošlji response klientu
  client.print(F("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO je trenutno "));
  client.print((val) ? F("high") : F("low"));
  client.print(F("<br><br>Klikni <a href='http://"));
  client.print(WiFi.localIP());
  client.print(F("/gpio/1'>tukaj</a> za preklop LED GPIO HIGH, ali <a href='http://"));
  client.print(WiFi.localIP());
  client.print(F("/gpio/0'>tukaj</a> za preklop LED GPIO LOW.</html>"));

  Serial.println(F("Zapiranje povezave s klientom"));
}



Moramo se zavedati dejstva, da je tovrstna povezava nešifrirana, ni HTTPS, kar pomeni, da lahko tiste GET in POST spremljamo z Wiresharkom če smo v omrežju.
*Sent*from*my* iPhone.
*Sent*from*my* Linux.
*Sent*from*my* room.
Uporabniški avatar
MocnikG
 
Prispevkov: 376
Pridružen: 18 Maj 2015, 17:56
Kraj: Koroška - MB - CE
Zahvalil se je: 32 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s55ei
Število neizkoriščenih povabil: 5

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a MocnikG » 06 Dec 2018, 08:51

Na telefonu je stran dostopna v primeru, da smo v enakem omrežju.
*Sent*from*my* iPhone.
*Sent*from*my* Linux.
*Sent*from*my* room.
Uporabniški avatar
MocnikG
 
Prispevkov: 376
Pridružen: 18 Maj 2015, 17:56
Kraj: Koroška - MB - CE
Zahvalil se je: 32 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s55ei
Število neizkoriščenih povabil: 5

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a SamoBr » 09 Dec 2018, 02:32

Moram priznat, da sem se izgubil. Preveč možnosti, pa se ne vem odločit za pravo.

Jaz bi rad povezal čisto preprosto zadevo. En moj HW, ki meri kdaj je šel nekdo mimo (Opto). To bi rad povezal na prenosnika. Za začetek. Za zares rabim pa dve taki povezavi. Tako bom meril koliko časa bo med startom in koncem.
Najbolje bi bilo, da direktno brez kakšnega ruterja. Saj tam kjer bi rabil je WiFi. Samo naslednjič ga pa mogoče ne bo.
Tudi ta WiFi, ki je ni zanesljiv. Pridejo ljudje se obesijo gor s telefoni in je konec.
Kaj vse moram naredit, da bo to delalo, pa da ne bo prekomplicirano.
SamoBr
 
Prispevkov: 2758
Pridružen: 14 Jun 2015, 13:45
Zahvalil se je: 129 krat
Prejel zahvalo: 248 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 47

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a bpavsic » 09 Dec 2018, 09:08

@SamoBr

Ena varianta je uporaba ESP8266 modula in ESP-Now načina. To je izpeljanka wifija, ki jo ta ESP8266 modul podpira in ne potrebuje routerja oz. Wifi omrežja ampak dela med dvema moduloma. Poraba je manjša kot v Wifi načinu.

Za tako zadevo potrebuješ en ESP8266 modul z usbjem (Wroom, NodeMCU itd...) na strani prenosnika ter podobno zadevo (le potrebe ni po usbju ampak je lažje če imaš iste...) na drugi strani.

Poglej si tale video.
My brain has too many windows open.
bpavsic
 
Prispevkov: 561
Pridružen: 22 Jan 2015, 14:46
Kraj: MB / MS
Zahvalil se je: 142 krat
Prejel zahvalo: 174 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 177

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a MocnikG » 11 Dec 2018, 18:52

Ali nadaljujem?
Je komu zanimivo pisanje s primeri, ali je kot so že nekateri povedali preveč obširno?
*Sent*from*my* iPhone.
*Sent*from*my* Linux.
*Sent*from*my* room.
Uporabniški avatar
MocnikG
 
Prispevkov: 376
Pridružen: 18 Maj 2015, 17:56
Kraj: Koroška - MB - CE
Zahvalil se je: 32 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s55ei
Število neizkoriščenih povabil: 5

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a VolkD » 11 Dec 2018, 19:09

Če ti ni težko, bomo veseli vsake dodatne informacije.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 29509
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 5564 krat
Prejel zahvalo: 3743 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 253

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a SimonS » 11 Dec 2018, 19:19

Vsekakor. Absolutno zanima tema
SimonS
 
Prispevkov: 1660
Pridružen: 19 Jan 2015, 19:08
Kraj: Kobarid
Zahvalil se je: 227 krat
Prejel zahvalo: 281 krat
Uporabnika povabil: mucek
Število neizkoriščenih povabil: 30

Re: Povezava Android - lasten HW - WiFi

OdgovorNapisal/-a valter » 11 Dec 2018, 20:08

Zanimiva tema MocnikG Tudi jaz sem za nadaljevanje.. :_bow
valter
 
Prispevkov: 306
Pridružen: 21 Jan 2015, 10:52
Kraj: Lokev
Zahvalil se je: 65 krat
Prejel zahvalo: 68 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 8


Vrni se na Software

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost