He puka no UDP ma waena o Wi-Fi a me LoRa

Ke hana nei i ʻīpuka ma waena o Wi-Fi a me LoRa no UDP

He puka no UDP ma waena o Wi-Fi a me LoRa

He moeʻuhane koʻu i koʻu wā kamaliʻi - e hoʻopuka i kēlā me kēia ʻohana "me ka ʻole o WiFi" i kahi tikiki pūnaewele, ʻo ia hoʻi kahi IP address a me ke awa. Ma hope o kekahi manawa, ʻike wau ʻaʻohe kumu o ka hoʻopanee. Pono mākou e lawe a hana.

Hana ʻenehana

E hana ia i ʻīpuka M5Stack me ka LoRa Module i hoʻokomo ʻia (Figure 1). E hoʻopili ʻia ka ʻīpuka i ka pūnaewele Wi-Fi, kahi e loaʻa ai kahi leka uila IP kūloko ma o DHCP. E hoʻolaha ka ʻīpuka i kona inoa (e like me ka SSID no Wi-Fi) a me ke ʻano o nā awa kūpono i ka hoʻolaha ʻana o LoRa i kekahi alapine, i ʻike nā mea ʻē aʻe aia kahi pūnaewele e hiki ai iā lākou ke hoʻohui a ma ke ʻano hea. hiki iā lākou ke koho i kahi awa manuahi. No ka mea he prototype kēia, ʻaʻole koi ʻia ka hōʻoia i kēia manawa. E ʻike nā mea kūʻai aku hou i kahi pūnaewele LoRa i loaʻa a hoʻouna i ke awa i koho ʻia iā ia. Ma hope o ka loaʻa ʻana o ke awa mai kahi mea kūʻai aku hou, nānā ʻo ia inā manuahi; inā pēlā, hoʻopaʻa inoa ʻo ia i ka mea kūʻai hou a hoʻomaka e hoʻolohe i kēia awa ma kāna kikowaena UDP asynchronous. Ma hope o ka hoʻopaʻa inoa ʻana, e loaʻa i ka mea kūʻai aku ka ʻae a hōʻole paha e hoʻohana i ke awa i haʻi ʻia. Hōʻike ʻia ke kaʻina hana ma ka Papa 1.

He puka no UDP ma waena o Wi-Fi a me LoRa
1 Kānāwai

1 Pūnaewele

aoao
kuhikuhi a me ka ʻikepili
aoao
kau

[ mea kūʻai aku ]
<— hōʻailona kukui —
[ puka komo ]
0xA1

[ mea kūʻai aku ]
— awa i koho ʻia —>
[ puka komo ]
0xB1

[ mea kūʻai aku ]
<— ʻae a hōʻole paha —
[ puka komo ]
0xA2

[ mea kūʻai aku ]
— Pūʻolo-UPD —>
[ puka komo ]
0xB2

[ mea kūʻai aku ]
<— Pūʻolo UPD —
[ puka komo ]
0xA3

[ ʻupena ]
<— Pūʻolo UPD —
[ puka komo ]
0xC1

Aia nā ʻano Module a pau no M5Stack e waiho ana ma ka papaʻaina i mua oʻu a ʻoluʻolu lākou. E lawe kākou iā LoR a leʻaleʻa me ia. He mea kupanaha ka manaʻo o nā modules ponoʻī! He aha kaʻu e ʻōlelo ai? Akā, loaʻa iaʻu nā modula hoʻoponopono mua, nona ka antenna i kūkulu ʻia, i hana ʻia ma kahi papa kaapuni paʻi maʻalahi a hoʻopili ʻia i ka paia ʻaoʻao o ka hihia. Ua hana au i nā hoʻokolohua kahua o ia mau modula (hiki iā ʻoe ke nānā iā lākou ma ke kahawai ʻōlelo Lūkini ma YouTube):

Play wikiō

Ma keʻano maʻamau, pono mākou e wehe i kēia mau kumu a me ka solder i nā antenna helical maʻamau e hele mai me ka Ra-01. Ma hope o kēlā hana maʻamau, ua hoʻomaikaʻi maikaʻi ʻia ka laulā kamaʻilio, akā ua ʻike ʻia kahi pilikia ʻaoʻao - ʻoi aku ka nui o ka antenna ma mua o ka mamao i ʻae ʻia ma waena o nā modula. Pono wau e haʻalele i ka Module Hope no ka lōʻihi o ka papahana.

ʻO nā pilikia mua mai ka paʻa paʻa

Me he mea lā, e lawe i ka hale waihona puke WiFiUdp.h, kahi i loaʻa ai nā mea a pau no ka noho ʻoluʻolu o kahi kikowaena UDP, ʻaʻole kēia ka hihia. Hoʻolālā ʻia ka waihona no ka hoʻāla ʻana i kahi kikowaena synchronous, ʻaʻole naʻe, ʻaʻole hiki ke lawelawe i kekahi mau pilina i ka manawa like. ʻAʻole kūpono kēlā waihona no ka hana o kēia manawa. Pono wau e inu i nā kīʻaha kī he nui a ʻimi i kahi waihona e hiki ai iaʻu ke kūkulu i kahi kikowaena UDP asynchronous hiki ke kākoʻo i nā pilina he nui i ka manawa like. Ua loaʻa kahi hale waihona puke - AsyncUDP.h. He aha ka ʻokoʻa ma waena o kahi kikowaena synchronous a me kahi asynchronous? E nānā kākou i nā ʻāpana ʻeono ma ke Kiʻi 2 e hōʻike liʻiliʻi nei i ka hana ʻana o nā kumu.

He puka no UDP ma waena o Wi-Fi a me LoRa

2 Kānāwai

Hōkū ʻia:

ʻO ke kanaka i ka hana Socket;

Pigeon i ka hana Hoʻohui;

Pismo i ka hana Анных.

Mokuna A. ʻO ke kumu hoʻohui me ka manawa ʻole

Kū ke kanaka a hiki i ka lawe ʻana mai o ka Dove i ka Leta iā ia.

Mahele B. ʻO ke kumu hoʻohui me ka manawa pau

Ke kali nei ke kanaka i ka manawa i ʻaelike ʻia me ka Lupe, a inā ʻaʻole hiki i ka manawa, e haʻalele ke kanaka.

Mahele C. ʻO ke kumu hoʻohui me ka multithreading

Noho ke kanaka i hope a nānā i ka hāʻawi ʻana o nā manu nūnū i nā leka iā lākou iho.

Episode D. Asynchronous socket (inā ʻaʻohe mea e loaʻa ai)

Hana ke kanaka i kāna mau mea punahele, akā ʻaʻole poina iā Pigeons.

Episode E. Asynchronous socket (inā loaʻa kekahi mea e loaʻa ai)

Ua hoʻomaha iki ke kanaka mai kāna mau hana no ka loaʻa ʻana o kahi leka mai ka Dove.

Mokuna F. Asynchronous socket me ka multithreading

Hele ke kanaka i kāna ʻoihana a nānā i ka hāʻawi ʻana o nā Pigeons iā lākou iho i nā Leta.

Inā ʻoe e noʻonoʻo ana, ua ʻike paha ʻoe i ke kala o nā kola o nā Pigeons i kēlā me kēia hanana. ʻAʻole kēia me ke kumu ʻole. Ma ka māhele A a me B, hoʻokahi wale nō kumu e hana nei ma ke kikowaena a ʻo ia nō. Ma ka ʻāpana C, ʻelua mau kumu e hana nei. Ua loaʻa ʻekolu kumu i nā ʻāpana D, E a me F. "No ke aha he ʻelua ma laila a ʻekolu ma ʻaneʻi?" - ke nīnau nei ʻoe. ʻO kēia nā kūlana 2 a me 3, ʻoiaʻiʻo, ma kahi o 2 hiki ke loaʻa ka 20, a ma kahi o ʻekolu 200. ʻO ka pahuhopu e hōʻike i ka wela ʻole o nā kumu asynchronous i ka hao e like me ka synchronous.

Ma hea e kūpono ai ka nui o kekahi mea?

E nānā i ka Papa 1, e hōʻike ana i ke ʻano o kahi ʻeke UDP a noʻonoʻo i ka mea hiki iā mākou ke hana me ia.

Papa 1. Ka hoʻonohonoho pūʻolo UDP

nā ʻāpana
0 - 15
16 - 31

0-31
awa kumu
awa hoʻokele

32-63
Ka lōʻihi o ka ʻikepili (Loaʻa)
Checksum

64- ...
ʻIkepili

E hoʻohui i kahi kahua ʻē aʻe i ka hoʻomaka ʻana o kēia pākaukau. Kau (1 Byte). Ua lawa kēia no kēia papahana. Ma muli o ka Session, e ʻike ka mea hana i ka mea e hana ai me ka ʻeke. I kēia manawa, e hana mākou i nā code no nā kau a kākau iā lākou ma ka Papa 2.

Papa 2. Ka wehewehe o na kau

kuhi
Inoa
Hōʻike

0xA1
Hōlamalama
Hoʻolaha ka ʻīpuka i ka inoa o ka pūnaewele LoRa a me ka laulā o nā awa kūpono i kekahi alapine. Pono kēia i mea e ʻike ai nā mea kūʻai hou i ka pūnaewele i loaʻa, a me nā mea kūʻai aku i kēia manawa, inā ʻaʻohe hoʻouna, hiki ke hoʻoholo i ka pae hōʻailona.

0xB1
Palapala noi
Ke ʻike ka mea kūʻai aku i ka pūnaewele, hoʻouna ʻo ia i kāna awa makemake.

0xA2
ʻAe a hōʻole paha
Inā kūʻokoʻa ka awa i noi ʻia e ka mea kūʻai aku, a laila pane ke kikowaena me ka ʻae, a i ʻole me ka hōʻole.

0xB2
loulou i luna
Ke hoʻouna ka mea kūʻai aku i kahi ʻeke UDP i ka ʻīpuka.

0xA3
loulou iho
Ke hoʻouna ka ʻīpuka i kahi ʻeke UDP i ka mea kūʻai aku.

0xC1
Hoʻomau i ka Up-link
Ke hoʻouna ka ʻīpuka i kahi ʻeke UDP i ka pūnaewele kūloko.

Maikaʻi. I kēia manawa, e kūkākūkā kākou i ka haku ʻana o nā kau ma ka Papa 3.

Papa 3. Kau

inoa kau
'Ohui

Hōlamalama
Ka helu kau (1 Byte) + inoa pūnaewele LoRa (4 Bytes) + awa hoʻomaka (2 Bytes) + awa hoʻopau (2 Bytes)

Palapala noi
Ka helu hoʻouna (1 Byte) + LoRa inoa pūnaewele (4 Bytes) + awa makemake ʻia (2 Bytes)

ʻAe a hōʻole paha
Ka helu hoʻouna (1 Byte) + LoRa inoa pūnaewele (4 Byte) + awa i makemake ʻia (2 Byte) + Hua (1 Byte)

loulou i luna
Ke Code Transmission (1 Byte) + LoRa Network Name (4 Bytes) + Remote IP Address (4 Bytes) + Remote Port (2 Bytes) + Local IP Address (4 Bytes) + Local Port (2 Bytes) + Data Size (2 Bytes) ) + ʻIkepili

loulou iho
Ke Code Transmission (1 Byte) + LoRa Network Name (4 Bytes) + Remote IP Address (4 Bytes) + Remote Port (2 Bytes) + Local IP Address (4 Bytes) + Local Port (2 Bytes) + Data Size (2 Bytes) ) + ʻIkepili

Hoʻomau i ka Up-link
Ka helu IP mamao (4 Bytes) + Port mamao (2 Bytes) + Nui ʻIkepili (2 Bytes) + ʻIkepili

Ua kākau au i ʻelua mau mea kūʻai aku no Arduino a no M5Stack. Ma ka wikiō hiki iā ʻoe ke ʻike i ka hana ʻana. ʻAʻohe pilikia i loko o ke keʻena; ʻAʻole wau i hana i nā hoʻokolohua kahua.

Loaʻa ka code kumu ma GitHub ma loulou

Hiki iā ʻoe ke aʻo hou e pili ana i ka M5Stack Base Device a kūʻai mai ma aneʻi maanei

Hiki iā ʻoe ke koho i nā modules uea ʻole LoRa no ka Pūnaewele Base maanei

E hauʻoli wau inā pono kēia papahana iā ʻoe. Mahalo nui iā ʻoe no kou manawa!

Ka papa inoa o nā kuhikuhi a (a) nā kumu:

Source: www.habr.com

E kūʻai i ka hoʻokipa hilinaʻi no nā pūnaewele me ka pale DDoS, nā kikowaena VPS VDS 🔥 E kūʻai i ka hoʻokipa pūnaewele hilinaʻi me ka pale DDoS, nā kikowaena VPS VDS | ProHoster