ʻO ka hoʻāʻo wikiwiki ʻana ma kekahi mau modem LTE
I ka wā quarantine, ua hāʻawi ʻia iaʻu e komo i ka hoʻomohala ʻana i kahi hāmeʻa no ke ana ʻana i ka wikiwiki o nā modem LTE no kekahi mau mea kelepona.
Ua makemake ka mea kūʻai e loiloi i ka wikiwiki o nā mea kelepona like ʻole ma nā wahi ʻāina like ʻole i hiki ke hoʻomaopopo i ka mea kelepona ʻoi aku ka maikaʻi loa iā ia i ka wā e hoʻokomo ai i nā lako me ka hoʻohana ʻana i kahi pilina LTE, no ka laʻana, no nā hoʻolaha wikiō. I ka manawa like, pono e hoʻoponopono ʻia ka pilikia e like me ka maʻalahi a me ka maʻalahi e like me ka hiki, me ka ʻole o nā lako makamae.
E ʻōlelo koke wau ʻaʻole ka hana maʻalahi a ʻoi loa ka ʻike; E haʻi wau iā ʻoe i nā pilikia aʻu i hālāwai ai a pehea wau i hoʻoponopono ai. No laila, e hele kāua.
i hoʻopuka
ʻO ke ana ʻana i ka wikiwiki o kahi pilina LTE he mea paʻakikī loa: pono ʻoe e koho i nā mea hana kūpono a me nā ʻenehana ana, a loaʻa pū kekahi ʻike maikaʻi i ka topology a me ka hana o ka pūnaewele kelepona. Eia kekahi, hiki ke hoʻololi ʻia ka wikiwiki e nā mea he nui: ʻo ka helu o nā mea kākau ma ke kelepona, nā kūlana o ka wā, ʻoiai mai ke kelepona a hiki i ke kelepona hiki ke loli ka wikiwiki ma muli o ka topology pūnaewele. Ma keʻano laulā, he pilikia kēia me ka nui o nā mea i ʻike ʻole ʻia, a hiki i ka mea kelepona kelepona ke hoʻoponopono pololei.
I ka hoʻomaka ʻana, makemake wale ka mea kūʻai aku e hoʻokele i ka ʻelele me nā kelepona o nā mea hoʻohana, e lawe pololei i nā ana ma ke kelepona a laila kākau i nā hopena ana wikiwiki i kahi puke. ʻO kaʻu hopena no ke ana ʻana i ka wikiwiki o nā pūnaewele lte, ʻoiai ʻaʻole kūpono, hoʻonā i ka pilikia.
Ma muli o ka nele o ka manawa, ua hoʻoholo wau ʻaʻole i makemake i ka maʻalahi a i ʻole ka pono, akā no ka wikiwiki o ka hoʻomohala ʻana. No ka laʻana, ua hoʻohana ʻia ka reverse ssh no ke komo mamao, ma kahi o ka VPN ʻoi aku ka hana, i mea e mālama ai i ka manawa i ka hoʻonohonoho ʻana i ke kikowaena a me kēlā me kēia mea kūʻai aku.
He mea maʻalahi ka hana ʻenehana, e hoʻonui iki wau no ka hoʻomaopopo ʻana i ka mea hoʻohana hope. ʻO ke koho o nā ʻenehana loea a me nā mea hana i kuhikuhi ʻia e ka mea kūʻai. No laila, ʻo ka ʻōlelo kikoʻī ponoʻī, ma hope o nā ʻae ʻia:
Ma muli o ka lolouila papa hoʻokahi vim2 e hana i mea hōʻike wikiwiki no nā pilina lte ma o H modemsuawei e3372h - 153 mau mea lawelawe kelepona (mai kekahi a i n). Pono nō hoʻi e loaʻa nā hoʻonohonoho mai kahi mea hoʻokipa GPS i hoʻopili ʻia ma o UART. Hana i nā ana wikiwiki me ka hoʻohana ʻana i ka lawelawe www.speedtest.net a waiho i loko o ka papaʻaina e like me:
Papa ma ke ʻano csv. A laila e hoʻouna i kēia hōʻailona ma ka leka uila i kēlā me kēia 6 hola. Inā he hewa, e kīpī i ke kukui i hoʻopili ʻia me ka GPIO.
Ua wehewehe au i nā kikoʻī ʻenehana ma ke ʻano manuahi, ma hope o nā ʻae he nui. Akā ua ʻike ʻia ke ʻano o ka hana. Hāʻawi ʻia kahi pule no nā mea a pau. Akā ʻo ka ʻoiaʻiʻo ua mau ia no ʻekolu pule. Ke noʻonoʻo nei kēia i kaʻu hana i kēia wale nō ma hope o kaʻu hana nui a i nā hopena pule.
Maanei, makemake wau e huki hou i ka manaʻo i ka ʻae ʻana o ka mea kūʻai aku ma mua o ka hoʻohana ʻana i ka lawelawe ana o ka wikiwiki a me ka lako, kahi i kaupalena ʻia ai koʻu hiki. Ua kaupalena ʻia ke kālā, no laila ʻaʻohe mea kūikawā i kūʻai ʻia. No laila pono mākou e pāʻani i kēia mau lula.
Hoʻolālā a me ka hoʻomohala ʻana
He maʻalahi a maopopo ka papahana. No laila, e waiho wau me ka ʻole o nā manaʻo kūikawā.
Ua hoʻoholo wau e hoʻokō i ka papahana holoʻokoʻa ma ka python, ʻoiai ʻaʻohe oʻu ʻike i ka hoʻomohala ʻana i kēia ʻōlelo. Ua koho au iā ia no ka mea he pūʻulu o nā hiʻohiʻona mākaukau a me nā hoʻonā e hiki ai ke wikiwiki i ka hoʻomohala ʻana. No laila, ke noi aku nei au i nā mea papahana ʻoihana a pau ʻaʻole e ʻāhewa i koʻu ʻike mua o ka hoʻomohala ʻana i ka python, a hauʻoli mau wau i ka lohe ʻana i nā ʻōlelo hoʻohewa e hoʻomaikaʻi ai i koʻu mau mākau.
I loko o ke kaʻina hana ua ʻike au he ʻelua mau mana holo ʻana o ka python 2 a me 3, no laila ua hoʻoholo wau i ke kolu.
Nā pūnaehana lako
Vim2 pā hoʻokahi
Ua hāʻawi ʻia iaʻu he kamepiula papa hoʻokahi e like me kaʻu mīkini nui vim2
ʻO kahi mea hoʻolaha media maikaʻi a ikaika no ka home akamai a me SMART-TV, akā kūpono ʻole no kēia hana, a i ʻole, e ʻōlelo mākou, kūpono ʻole. No ka laʻana, ʻo Android kāna OS nui, a ʻo Linux kahi OS lua, a no laila ʻaʻohe mea e hōʻoiaʻiʻo i ka hana kiʻekiʻe o nā nodes a me nā mea hoʻokele ma lalo o Linux. A ke manaʻo nei au ua pili kekahi o nā pilikia i nā mea hoʻokele USB o kēia kahua, no laila ʻaʻole i hana nā modem e like me ka mea i manaʻo ʻia ma kēia papa. Loaʻa iā ia nā palapala ʻilihune a hoʻopuehu, no laila ua lōʻihi ka manawa o kēlā me kēia hana i ka ʻeli ʻana i nā pahu. ʻO ka hana maʻamau me GPIO i lawe nui i ke koko. No ka laʻana, ua lawe iaʻu i mau hola e hoʻonohonoho i ka LED. Akā, ʻo ka pahuhopu, ʻaʻole ia he mea koʻikoʻi ke ʻano o ka papa hoʻokahi, ʻo ka mea nui ʻo ia ka hana a aia nā awa USB.
ʻO ka mea mua, pono wau e hoʻokomo i Linux ma kēia papa. I ʻole e ʻimi i ka ʻāhiu o nā palapala no nā mea a pau, a no ka poʻe hoʻi e pili ana i kēia ʻōnaehana papa hoʻokahi, ke kākau nei au i kēia mokuna.
ʻElua mau koho e hoʻokomo iā Linux: ma kahi kāleka SD waho a i ʻole ma kahi MMC kūloko. Ua hoʻohana wau i kahi ahiahi e ho'āʻo nei e noʻonoʻo pehea e hana ai me ke kāleka, no laila ua hoʻoholo wau e hoʻokomo iā ia ma ka MMC, ʻoiai me ke kānalua ʻole ʻoi aku ka maʻalahi o ka hana ʻana me kahi kāleka waho.
E pili ana i ka firmware olelo kekee maanei. Unuhi au mai kahi ʻano ʻē i ka Lūkini. I mea e 'ālohilohi ai i ka papa, pono au e hoʻohui i ka UART lako. Hoʻohui ʻia penei.
Mea Hana Pin GND: <—> Pin17 o VIM's GPIO
Mea Hana Pin TXD: <—> Pin18 o VIM's GPIO (Linux_Rx)
Mea Hana Pin RXD: <—> Pin19 o VIM's GPIO (Linux_Tx)
No ka hoʻouka ʻana i kēia firmware, pono wau i nā pono. Nā kikoʻī hou aku e pili ana i kēia maanei. ʻAʻole wau i hoʻāʻo e hoʻolohi iā ia ma lalo o Windows, akā pono wau e haʻi iā ʻoe i kekahi mau huaʻōlelo e pili ana i ka firmware ma lalo o Linux. ʻO ka mea mua, e hoʻokomo wau i nā pono hana e like me nā kuhikuhi.
git clone https://github.com/khadas/utils
cd /path/to/utils
sudo ./INSTALL
Aaand... ʻAʻohe mea hana. Ua hoʻohana au i ʻelua mau hola i ka hoʻoponopono ʻana i nā palapala hoʻonohonoho i hoʻokomo pono nā mea āpau iaʻu. ʻAʻole wau i hoʻomanaʻo i kaʻu mea i hana ai ma laila, akā aia nō kēlā circus me nā lio. No laila e akahele. Akā me ka ʻole o kēia mau pono, ʻaʻohe kumu o ka hoʻomāinoino ʻana iā vim2. ʻOi aku ka maikaʻi ʻaʻole e huikau me ia!
Ma hope o ʻehiku pōʻai o Gehena, ka hoʻonohonoho ʻana a me ka hoʻonohonoho ʻana, ua loaʻa iaʻu kahi pūʻolo o nā pono hana. Hoʻohui au i ka papa ma o USB i kaʻu kamepiula Linux, a hoʻohui pū i ka UART e like me ke kiʻi ma luna.
Ke hoʻonohonoho nei au i kaʻu pahu minicom punahele no ka wikiwiki o 115200, me ka ʻole o ka mana hewa a me ka lako polokalamu. A e hoʻomaka kāua.
I ka hoʻouka ʻana i ka VIM2 i ka pahu UART, kaomi wau i kahi kī, e like me ke ākea, e hoʻōki i ka hoʻouka ʻana. Ma hope o ka puka ʻana o ka laina
kvim2#
Hoʻokomo wau i ke kauoha:
kvim2# run update
Ma luna o ka mea hoʻokipa a mākou e hoʻouka nei, hoʻokō wau:
burn-tool -v aml -b VIM2 -i VIM2_Ubuntu-server-bionic_Linux-4.9_arm64_EMMC_V20191231.img
ʻO ia nō, phew. Ua nānā au, aia ʻo Linux ma ka papa. E komo i ka ʻōlelo huna khadas:khadas.
Ma hope o kēlā, kekahi mau hoʻonohonoho mua liʻiliʻi. No ka hana hou aku, hoʻopau wau i ka ʻōlelo huna no sudo (ʻae, ʻaʻole paʻa, akā kūpono).
sudo visudo
Hoʻoponopono wau i ka laina i ke ʻano a mālama
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
A laila hoʻololi wau i ka wahi o kēia manawa i hiki i ka manawa ma Moscow, inā ʻaʻole ia ma Greenwich.
Inā pilikia ʻoe, mai hoʻohana i kēia papa; ʻoi aku ka maikaʻi o Raspberry Pi. ʻOiaʻiʻo.
Modem Huawei e3372h – 153
He kumu koko koʻikoʻi kēia modem noʻu, a, ʻoiaʻiʻo, ua lilo ia i bottleneck o ka papahana holoʻokoʻa. Ma keʻano laulā, ʻaʻole i hōʻike ʻia ka inoa "modem" no kēia mau mea i ke ʻano o ka hana: he hui ikaika kēia, aia kēia ʻāpana o ka lako i kahi mea hana i hoʻohālike ʻia he CD-ROM i mea e hoʻokomo ai i nā mea hoʻokele. a laila hoʻololi i ke ʻano kāleka pūnaewele.
ʻO Architecturally, mai ka manaʻo o ka mea hoʻohana Linux, ma hope o nā hoʻonohonoho āpau, ua like ia me kēia: ma hope o ka hoʻopili ʻana i ka modem, loaʻa iaʻu kahi eth* network interface, ma o dhcp e loaʻa ai ka IP address 192.168.8.100, a me ka puka paʻamau. ʻo 192.168.8.1.
A ʻo ka manawa nui loa! ʻAʻole hiki ke hana i kēia ʻano modem ma ke ʻano modem, i hoʻomalu ʻia e nā kauoha AT. E maʻalahi nā mea a pau, e hana i nā pilina PPP no kēlā me kēia modem a laila hana pū me lākou. Akā i koʻu hihia, "ʻo ia iho" (ʻoi aku ka pololei, he mea hoʻoheheʻe Linux e like me nā lula udev), hana i kahi interface eth a hāʻawi i kahi IP address iā ia ma o dhcp.
I mea e pale aku ai i ka huikau, manaʻo wau e hoʻopoina i ka huaʻōlelo "modem" a me ka ʻōlelo ʻana i ke kāleka pūnaewele a me ka ʻīpuka, no ka mea ma ke ʻano, ua like ia me ka hoʻopili ʻana i kahi kāleka pūnaewele hou me kahi ʻīpuka.
Ke loaʻa hoʻokahi modem, ʻaʻole ia he pilikia kūikawā, akā inā ʻoi aku ka nui ma mua o hoʻokahi, ʻo ia hoʻi nā ʻāpana n, e kū mai ke kiʻi pūnaewele ma lalo.
ʻO ia hoʻi, n kāleka pūnaewele, me ka helu IP like, kēlā me kēia me ka ʻīpuka paʻamau. Akā i ka ʻoiaʻiʻo, pili kēlā me kēia o lākou i kāna mea hoʻohana ponoʻī.
I ka hoʻomaka ʻana, loaʻa iaʻu kahi hopena maʻalahi: me ka hoʻohana ʻana i ke kauoha ifconfig a ip paha, e hoʻopau i nā interface āpau a hoʻohuli wale i hoʻokahi a hoʻāʻo. Ua maikaʻi ka hopena no nā mea a pau, koe wale nō i ka wā o ka hoʻololi ʻana ʻaʻole hiki iaʻu ke hoʻopili i ka hāmeʻa. A ma muli o ka pinepine a me ka wikiwiki o ka hoʻololi ʻana, ʻaʻohe oʻu manawa e hoʻopili ai.
No laila, ua koho au i ke ala o ka hoʻololi lima ʻana i nā helu IP o nā modem a laila hoʻokele kaʻa me ka hoʻohana ʻana i nā hoʻonohonoho ala.
ʻAʻole kēia ka pau ʻana o kaʻu mau pilikia me nā modem: inā pilikia ka mana, hāʻule lākou, a ua koi ʻia kahi lako mana paʻa i ka USB hub. Ua hoʻoholo wau i kēia pilikia ma ka hoʻopaʻa ʻana i ka mana pololei i ka hub. ʻO kahi pilikia ʻē aʻe aʻu i ʻike ai a ua hōʻino i ka papahana holoʻokoʻa: ma hope o ka hoʻomaka hou ʻana a i ʻole ka hoʻomaka ʻana o ka hāmeʻa, ʻaʻole ʻike ʻia nā modem āpau a ʻaʻole i nā manawa a pau, a ʻaʻole hiki iaʻu ke hoʻoholo i ke kumu i hana ai kēia a me ka algorithm. Akā ʻo ka mea mua.
No ka hana pono o ka modem, ua hoʻokomo au i ka pūʻolo usb-modeswitch.
Ma hope o ka hoʻohui ʻana, e ʻike pono ʻia ka modem a hoʻonohonoho ʻia e ka subsystem udev. Ke nānā nei au ma ka hoʻopili wale ʻana i ka modem a me ka hōʻoia ʻana e ʻike ʻia ka pūnaewele.
ʻO kekahi pilikia ʻaʻole hiki iaʻu ke hoʻoponopono: pehea e loaʻa ai iaʻu ka inoa o ka mea hana a mākou e hana nei me kēia modem? Aia ka inoa o ka mea hoʻohana ma ke kikowaena pūnaewele modem ma 192.168.8.1. He ʻaoʻao pūnaewele ikaika kēia e loaʻa ai ka ʻikepili ma o nā noi Ajax, no laila ʻaʻole e holo ka wgeting i ka ʻaoʻao a me ka paʻi ʻana i ka inoa. No laila ua hoʻomaka wau e nānā i ke ʻano o ka hoʻomohala ʻana i kahi ʻaoʻao pūnaewele, a me nā mea ʻē aʻe, a ʻike wau e hana nei au i kekahi ʻano mea lapuwale. ʻO ka hopena, kuha ʻo ia, a hoʻomaka ka mea hoʻohana e hoʻohana i ka Speedtest API ponoʻī.
ʻOi aku ka maʻalahi inā loaʻa ka modem ma o nā kauoha AT. Hiki iā ia ke hoʻonohonoho hou iā ia, hana i kahi pili ppp, hāʻawi i kahi IP, loaʻa i kahi mea kelepona telecom, etc. Akā naʻe, ke hana nei au me ka mea i hāʻawi ʻia iaʻu.
GPS
ʻO ka mea hoʻokipa GPS i hāʻawi ʻia iaʻu he UART a me ka mana. ʻAʻole ʻo ia ka hopena maikaʻi loa, akā hiki ke hana a maʻalahi. Ua like ke ano me keia.
ʻO kaʻoiaʻiʻo, ʻo kēia kaʻu manawa mua e hana me kahi mea hoʻokipa GPS, akā e like me kaʻu i manaʻo ai, ua noʻonoʻo ʻia nā mea āpau no mākou i ka wā ma mua. No laila, hoʻohana wale mākou i nā hoʻonā i hana ʻia.
ʻO ka mea mua, hiki iaʻu ke hoʻohui i ka uart_AO_B (UART_RX_AO_B, UART_TX_AO_B) i ka GPS.
khadas@Khadas:~$ sudo fdtput -t s /dtb.img /serial@c81004e0 status okay
Ma hope, nānā au i ka holomua o ka hana.
khadas@Khadas:~$ fdtget /dtb.img /serial@c81004e0 status
okay
Hoʻoponopono kēia kauoha i ka devtree ma ka lele, kahi kūpono loa.
Ma hope o ka holomua o kēia hana, hoʻomaka hou a hoʻokomo i ka daemon GPS.
khadas@Khadas:~$ sudo reboot
Ke kau nei i ka daemon GPS. Hoʻokomo wau i nā mea āpau a ʻoki koke no ka hoʻonohonoho hou.
Aia ka uwea GPS ma ko'u mau lima, ua ikeia na uwea debugger UART ma lalo o ko'u mau manamana lima.
Hoʻomaka hou wau a nānā i ka hana GPS me ka hoʻohana ʻana i ka polokalamu gpsmon.
ʻAʻole hiki iā ʻoe ke ʻike i nā satelite ma kēia kiʻi kiʻi, akā hiki iā ʻoe ke ʻike i ke kamaʻilio me ka mea hoʻokipa GPS, a ʻo ia hoʻi ua maikaʻi nā mea a pau.
I ka python, ua hoʻāʻo au i nā koho he nui no ka hana ʻana me kēia daemon, akā ua hoʻoholo wau i ka mea i hana pololei me ka python 3.
Hoʻokomo au i ka waihona pono.
sudo -H pip3 install gps3
A kālai wau i ke code hana.
from gps3.agps3threaded import AGPS3mechanism
...
def getPositionData(agps_thread):
counter = 0;
while True:
longitude = agps_thread.data_stream.lon
latitude = agps_thread.data_stream.lat
if latitude != 'n/a' and longitude != 'n/a':
return '{}' .format(longitude), '{}' .format(latitude)
counter = counter + 1
print ("Wait gps counter = %d" % counter)
if counter == 10:
ErrorMessage("Ошибка GPS приемника!!!")
return "NA", "NA"
time.sleep(1.0)
...
f __name__ == '__main__':
...
#gps
agps_thread = AGPS3mechanism() # Instantiate AGPS3 Mechanisms
agps_thread.stream_data() # From localhost (), or other hosts, by example, (host='gps.ddns.net')
agps_thread.run_thread() # Throttle time to sleep after an empty lookup, default '()' 0.2 two tenths of a second
Inā makemake wau e kiʻi i nā hoʻonohonoho, hana ʻia kēia me kēia kelepona:
longitude, latitude = getPositionData(agps_thread)
A i loko o 1-10 kekona e loaʻa iaʻu ka coordinate a i ʻole. ʻAe, ua loaʻa iaʻu he ʻumi mau hoʻāʻo e kiʻi i nā hoʻonohonoho. ʻAʻole maikaʻi loa, kekee a me ka piʻi, akā hana ia. Ua hoʻoholo wau e hana i kēia no ka mea hiki ke loaʻa i ka GPS ka hoʻokipa maikaʻi ʻole a ʻaʻole loaʻa mau ka ʻikepili. Inā kali ʻoe i ka loaʻa ʻana o ka ʻikepili, a laila inā ʻoe e hana ma kahi lumi mamao, e maloʻo ka papahana ma kēia wahi. No laila, ua hoʻokō wau i kēia koho inelegant.
Ma ke kumu, inā nui ka manawa, hiki ke loaʻa ka ʻikepili mai ka GPS ma o UART, e hoʻokaʻawale iā ia i kahi kaula kaʻawale a hana pū me ia. Akā ʻaʻohe manawa i loaʻa, no laila ke code brutally ʻino. A ʻae, ʻaʻole oʻu hilahila.
ʻO LED
He maʻalahi a paʻakikī ka hoʻohui ʻana i ka LED i ka manawa like. ʻO ka paʻakikī nui, ʻaʻole pili ka helu pine i ka ʻōnaehana me ka helu pine ma ka papa a no ka mea ua kākau ʻia nā palapala me ka lima hema. No ka hoʻohālikelike ʻana i ka helu pin hardware a me ka helu pine i ka OS, pono ʻoe e holo i ke kauoha:
gpio readall
E hōʻike ʻia kahi papa o nā leka pine ma ka ʻōnaehana a ma ka papa. A laila hiki iaʻu ke hana i ka pine i loko o ka OS ponoʻī. I koʻu hihia, pili ka LED GPIOH_5.
Hoʻololi au i ka pine GPIO i ke ʻano puka.
gpio -g mode 421 out
Kākau wau i ka zero.
gpio -g write 421 0
Kākau wau i hoʻokahi.
gpio -g write 421 1
Hoʻomālamalama ʻia nā mea a pau, ma hope o ke kākau ʻana iā "1"
I kēia manawa, inā he hewa, kāhea wau iā error_blink() a e ʻoni nani ka LED.
Nodes lako polokalamu
API no ka wikiwiki loa
He hauʻoli nui ka loaʻa ʻana o ka lawelawe speedtest.net i kāna python-API, hiki iā ʻoe ke nānā Github.
ʻO ka mea maikaʻi, aia nā kumu kumu i hiki ke nānā ʻia. Pehea e hana ai me kēia API (nā hiʻohiʻona maʻalahi) hiki ke loaʻa ma pauku pili.
Hoʻokomo wau i ka waihona python me kēia kauoha.
sudo -H pip3 install speedtest-cli
No ka laʻana, hiki iā ʻoe ke hoʻokomo i kahi hōʻike wikiwiki ma Ubuntu pololei mai ka polokalamu. ʻO kēia ka noi python like, a laila hiki ke hoʻokuʻu pololei ʻia mai ka console.
sudo apt install speedtest-cli -y
A e ana i kou wikiwiki pūnaewele.
speedtest-cli
Retrieving speedtest.net configuration...
Testing from B***** (*.*.*.*)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by MTS (Moscow) [0.12 km]: 11.8 ms
Testing download speed................................................................................
Download: 7.10 Mbit/s
Testing upload speed......................................................................................................
Upload: 3.86 Mbit/s
ʻO ka hopena, e like me kaʻu i hana ai. Pono wau e komo i nā code kumu o kēia ho'āʻo wikiwiki i mea e hoʻokō pono ai i kaʻu papahana. ʻO kekahi o nā hana koʻikoʻi ʻo ka loaʻa ʻana o ka inoa o ka mea lawelawe kelepona i mea e hoʻololi ai i loko o ka pā.
import speedtest
from datetime import datetime
...
#Указываем конкретный сервер для теста
#6053) MaximaTelecom (Moscow, Russian Federation)
servers = ["6053"]
# If you want to use a single threaded test
threads = None
s = speedtest.Speedtest()
#получаем имя оператора сотовой связи
opos = '%(isp)s' % s.config['client']
s.get_servers(servers)
#получаем текстовую строку с параметрами сервера
testserver = '%(sponsor)s (%(name)s) [%(d)0.2f km]: %(latency)s ms' % s.results.server
#тест загрузки
s.download(threads=threads)
#тест выгрузки
s.upload(threads=threads)
#получаем результаты
s.results.share()
#После чего формируется строка для записи в csv-файл.
#получаем позицию GPS
longitude, latitude = getPositionData(agps_thread)
#время и дата
curdata = datetime.now().strftime('%d.%m.%Y')
curtime = datetime.now().strftime('%H:%M:%S')
delimiter = ';'
result_string = opos + delimiter + str(curpos) + delimiter +
curdata + delimiter + curtime + delimiter + longitude + ', ' + latitude + delimiter +
str(s.results.download/1000.0/1000.0) + delimiter + str(s.results.upload / 1000.0 / 1000.0) +
delimiter + str(s.results.ping) + delimiter + testserver + "n"
#тут идет запись в файл логов
Eia kekahi, ʻaʻole maʻalahi nā mea a pau, ʻoiai ʻoi aku ka maʻalahi. I ka hoʻomaka ʻana, ua like nā kikowaena kikowaena me [], ʻōlelo lākou, koho i ka kikowaena maikaʻi loa. ʻO ka hopena, ua loaʻa iaʻu nā kikowaena maʻamau, a, e like me kāu e manaʻo ai, hiki ke loli ka wikiwiki. He kumuhana paʻakikī kēia, me ka hoʻohana ʻana i kahi kikowaena paʻa, inā pēlā, static a dynamic paha, pono e noiʻi. Eia naʻe kahi laʻana o nā kiʻi ana wikiwiki no ka mea hoʻohana Beeline i ke koho ʻana i kahi kikowaena hoʻāʻo a me kahi kikowaena statically.
ʻO ka hopena o ke ana ʻana i ka wikiwiki i ke koho ʻana i kahi kikowaena dynamic.
ʻO ka hopena o ka hoʻāʻo wikiwiki ʻana, me kahi kikowaena i koho pono ʻia.
I ka wā o ka hoʻāʻo ʻana, aia ka "fur" ma nā wahi ʻelua, a pono e wehe ʻia me ka hoʻohana ʻana i nā ʻano matematika. Akā me kahi kikowaena paʻa he emi iki a ʻoi aku ka paʻa o ka amplitude.
Ma keʻano laulā, he wahi noiʻi nui kēia. A e ana au i ka wikiwiki o kaʻu kikowaena me ka hoʻohana ʻana i ka pono iperf. Akā pili mākou i nā kikoʻī loea.
Ka hoʻouna ʻana i ka leka a me nā hewa
No ka hoʻouna ʻana i ka leka uila, ua hoʻāʻo wau i nā ʻano koho like ʻole, akā i ka hopena ua hoʻoholo wau i kēia. Ua hoʻopaʻa inoa wau i kahi pahu leka ma Yandex a laila lawe He laʻana kēia o ka hoʻouna leka. Ua nānā au a hoʻokomo i loko o ka papahana. Ke nānā nei kēia hiʻohiʻona i nā koho like ʻole, me ka hoʻouna ʻana mai gmail, etc. ʻAʻole wau i makemake e pilikia i ka hoʻonohonoho ʻana i kaʻu kikowaena leka uila a ʻaʻohe manawa no ia mea, akā e like me ka mea i ʻike ʻia ma hope, ua makehewa.
Ua hoʻouna ʻia nā moʻolelo e like me ka mea hoʻonohonoho, ina he pili, i kēlā me kēia 6 hola: ma ka hola 00, 06 am, 12 awakea a me 18 pm. Hoʻouna ʻia penei.
from send_email import *
...
message_log = "Логи тестирования платы №1"
EmailForSend = ["[email protected]", "[email protected]"]
files = ["/home/khadas/modems_speedtest/csv"]
...
def sendLogs():
global EmailForSend
curdata = datetime.now().strftime('%d.%m.%Y')
сurtime = datetime.now().strftime('%H:%M:%S')
try:
for addr_to in EmailForSend:
send_email(addr_to, message_log, "Логи за " + curdata + " " + сurtime, files)
except:
print("Network problem for send mail")
return False
return True
Ua hoʻouna mua ʻia nā hewa. I ka hoʻomaka ʻana, ua hōʻiliʻili ʻia lākou i ka papa inoa, a laila hoʻouna pū ʻia me ka hoʻohana ʻana i ka mea hoʻonohonoho, inā he pili. Eia naʻe, ua ala mai nā pilikia me ka loaʻa ʻana o Yandex i ka palena o ka helu o nā leka i hoʻouna ʻia i kēlā me kēia lā (ʻo kēia ka ʻeha, ke kaumaha a me ka hoʻohaʻahaʻa). Ma muli o ka nui o nā hewa i kēlā me kēia minuke, pono mākou e haʻalele i ka hoʻouna ʻana i nā hewa ma ka leka uila. No laila e hoʻomanaʻo i ka hoʻouna ʻana i ka ʻike e pili ana i ia pilikia ma o nā lawelawe Yandex.
kikowaena manaʻo
I mea e hiki ai ke komo i kahi ʻāpana mamao a hiki ke hoʻonohonoho a hoʻonohonoho hou iā ia, pono wau i kahi kikowaena waho. Ma keʻano laulā, no ka pololei, pono e hoʻouna i nāʻikepili a pau i ke kikowaena a kūkulu i nā kiʻi nani a pau ma ka pūnaewele pūnaewele. ʻAʻole naʻe i ka manawa hoʻokahi.
No VPS au i koho ai ruvds.com. Hiki iā ʻoe ke lawe i ke kikowaena maʻalahi. A ma ka laulā, no kaʻu mau kumu e lawa kēia. Akā, no ka mea ʻaʻole wau i uku no ka server mai kaʻu ʻeke ponoʻī, ua hoʻoholo wau e lawe me kahi ʻāpana liʻiliʻi i lawa ia inā mākou e kau i kahi kikowaena pūnaewele, kā mākou kikowaena SMTP ponoʻī, VPN, etc. Eia hou, hiki iā ʻoe ke hoʻonohonoho i kahi bot Telegram a ʻaʻohe pilikia me ka pāpā ʻia. No laila, ua koho wau iā Amsterdam a me kēia mau ʻāpana.
Ma ke ʻano o ke kamaʻilio ʻana me ka hāmeʻa, ua koho ʻo vim2 i kahi pilina ssh hoʻohuli a, e like me ka hana i hōʻike ʻia, ʻaʻole ia ka mea maikaʻi loa. Inā nalowale ka pilina, paʻa ke kikowaena i ke awa a ʻaʻole hiki ke hoʻohui ʻia ma o ia no kekahi manawa. No laila, ʻoi aku ka maikaʻi o ka hoʻohana ʻana i nā ala kamaʻilio ʻē aʻe, no ka laʻana VPN. I ka wā e hiki mai ana ua makemake au e hoʻololi i VPN, akā ʻaʻohe manawa.
ʻAʻole wau e hele i nā kikoʻī o ka hoʻonohonoho ʻana i kahi pā ahi, kaohi ʻana i nā kuleana, ka hoʻopau ʻana i nā pilina ssh aʻa a me nā ʻano ʻē aʻe o ka hoʻonohonoho ʻana i kahi VPS. Makemake wau e manaʻoʻiʻo ua ʻike mua ʻoe i nā mea āpau. No kahi pilina mamao, hana wau i mea hoʻohana hou ma ke kikowaena.
I kēia manawa, ma kā mākou kikowaena VPS, inā mākou e holo:
ssh -p 8083 khadas@localhost
A laila hele wau i kaʻu ʻāpana hoʻāʻo o ka lako. A mai ka lakohana hiki iaʻu ke hoʻouna aku i nā lāʻau a me nā ʻikepili ma o ssh i kaʻu kikowaena, he mea maʻalahi loa ia.
Hoʻohui pū ʻia
Ke hoʻololi nei, e hoʻomaka kākou i ka hoʻomohala ʻana a me ka debugging
Phew, ʻo ia, ua wehewehe wau i nā nodes a pau. ʻO ka manawa kēia e hui pū ai. Hiki iā ʻoe ke ʻike i ke code Aia maanei.
ʻO kahi mea koʻikoʻi me ke code: ʻAʻole paha e hoʻomaka kēia papahana e like me kēia, no ka mea, ua hana ʻia no kahi hana kikoʻī, o kahi hoʻolālā kikoʻī. ʻOiai ke hāʻawi nei au i ke kumu kumu, e wehewehe mau wau i nā mea waiwai nui ma ʻaneʻi, pololei ma ka kikokikona, inā ʻaʻole hiki ke hoʻomaopopo ʻia.
I ka hoʻomaka, hoʻomaka wau i ka gps, gpio a hoʻomaka i kahi pae hoʻonohonoho kaʻawale.
He mea maʻalahi ka mea hoʻonohonoho: ʻike ia e ʻike inā ua hiki mai ka manawa e hoʻouna ai i nā leka a me ke ʻano o ke kūlana hewa o kēia manawa. Inā loaʻa kahi hae hewa, a laila e hoʻomoe mākou i ka LED.
#sheduler
def ShedulerThread(name):
global ready_to_send
while True:
d = datetime.today()
time_x = d.strftime('%H:%M')
if time_x in time_send_csv:
ready_to_send = True
if error_status:
error_blink()
else:
good_blink()
time.sleep(1)
ʻO ka ʻāpana paʻakikī loa o kēia papahana ka mālama ʻana i ka pilina ssh hope no kēlā me kēia hoʻāʻo. Hoʻopili ʻia kēlā me kēia hoʻāʻo i ka hoʻonohonoho hou ʻana i ka ʻīpuka paʻamau a me ka server DNS. No ka mea, ʻaʻohe mea heluhelu, e ʻike ʻoe ʻaʻole holo ke kaʻaahi ma luna o ke kaʻa lāʻau. ʻO ka mea i loaʻa ka hua Easter e loaʻa i ka lole.
No ka hana ʻana i kēia, hana wau i kahi papa hoʻokele kaʻawale -set-mark 0x2 a me kahi lula e hoʻohuli hou i ke kaʻa.
def InitRouteForSSH():
cmd_run("sudo iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 22 -j MARK --set-mark 0x2")
cmd_run("sudo ip rule add fwmark 0x2/0x2 lookup 102")
Ma hope o koʻu hele ʻana i kahi loop pau ʻole, kahi i loaʻa iā mākou kahi papa inoa o nā modem pili (e ʻike inā ua loli koke ka hoʻonohonoho pūnaewele).
network_list = getNetworklist()
He mea maʻalahi loa ka loaʻa ʻana o ka papa inoa o nā kikowaena pūnaewele.
def getNetworklist():
full_networklist = os.listdir('/sys/class/net/')
network_list = [x for x in full_networklist if "eth" in x and x != "eth0"]
return network_list
Ma hope o ka loaʻa ʻana o ka papa inoa, hoʻonoho wau i nā helu IP i nā interface āpau, e like me kaʻu i hōʻike ai ma ke kiʻi ma ka mokuna e pili ana i ka modem.
A laila hele wale wau i kēlā me kēia interface i kahi loop. A hoʻonohonoho wau i kēlā me kēia interface.
for iface in network_list:
ConfigNetwork(iface)
def ConfigNetwork(iface):
#сбрасываем все настройки
cmd_run("sudo ip route flush all")
#Назначаем шлюз по умолчанию
cmd_run("sudo route add default gw 192.168.8.1 " + iface)
#задаем dns-сервер (это нужно для работы speedtest)
cmd_run ("sudo bash -c 'echo nameserver 8.8.8.8 > /etc/resolv.conf'")
Nānā wau i ka interface no ka hana, inā ʻaʻohe pūnaewele, a laila hana wau i nā hewa. Inā loaʻa kahi pūnaewele, a laila ua hiki i ka manawa e hana ai!
Maʻaneʻi wau e hoʻonohonoho i ka routing ssh i kēia interface (inā ʻaʻole i hana ʻia), e hoʻouna i nā hewa i ke kikowaena inā hiki mai ka manawa, e hoʻouna i nā lāʻau a hope loa e holo i ka wikiwiki a mālama i nā lāʻau i kahi faila csv.
if not NetworkAvalible():
....
#Здесь мы формируем ошибки
....
else: #Есть сеть, ура, работаем!
#Если у нас проблемный интерфейс, на котором ssh, то меняем его
if (sshint == lastbanint or sshint =="free"):
print("********** Setup SSH ********************")
if sshint !="free":
сmd_run("sudo ip route del default via 192.168.8.1 dev " + sshint +" table 102")
SetupReverseSSH(iface)
sshint = iface
#раз сетка работает, то давай срочно все отправим!!!
if ready_to_send:
print ("**** Ready to send!!!")
if sendLogs():
ready_to_send = False
if error_status:
SendErrors()
#и далее тестируем скорость и сохраняем логи.
Pono e haʻi i ka hana o ka hoʻonohonoho ʻana i ka ssh reverse.
def SetupReverseSSH(iface):
cmd_run("sudo systemctl stop autossh.service")
cmd_run("sudo ip route add default via 192.168.8.1 dev " + iface +" table 102")
cmd_run("sudo systemctl start autossh.service")
A ʻoiaʻiʻo, pono ʻoe e hoʻohui i kēia nani a pau i ka hoʻomaka. No ka hana ʻana i kēia, hana wau i kahi faila:
sudo vim /etc/systemd/system/modems_speedtest.service
ʻAe, ʻo ka mea nui loa, he aha ka hopena? Eia kekahi mau kiʻi i hiki iaʻu ke hopu i ka wā o ka hoʻomohala ʻana a me ka hana debugging. Ua kūkulu ʻia nā kiʻi me ka gnuplot me kēia ʻatikala.
#! /usr/bin/gnuplot -persist
set terminal postscript eps enhanced color solid
set output "Rostelecom.ps"
#set terminal png size 1024, 768
#set output "Rostelecom.png"
set datafile separator ';'
set grid xtics ytics
set xdata time
set ylabel "Speed Mb/s"
set xlabel 'Time'
set timefmt '%d.%m.%Y;%H:%M:%S'
set title "Rostelecom Speed"
plot "Rostelecom.csv" using 3:6 with lines title "Download", '' using 3:7 with lines title "Upload"
set title "Rostelecom 2 Ping"
set ylabel "Ping ms"
plot "Rostelecom.csv" using 3:8 with lines title "Ping"
ʻO ka ʻike mua me ka mea hoʻohana Tele2, aʻu i alakaʻi ai no kekahi mau lā.
Maʻaneʻi ua hoʻohana au i kahi kikowaena ana dynamic. Hana nā ana wikiwiki, akā loli nui, akā ʻike ʻia kekahi waiwai awelika, a hiki ke loaʻa kēia ma ke kānana ʻana i ka ʻikepili, no ka laʻana, me ka neʻe ʻana.
Ma hope aku ua kūkulu au i kekahi mau kiʻi no nā mea lawelawe kelepona ʻē aʻe. I kēia hihia, ua loaʻa hoʻokahi kikowaena hoʻāʻo, a he hoihoi loa nā hopena.
E like me kāu e ʻike ai, paʻa loa ke kumuhana no ka noiʻi a me ka hoʻoili ʻana i kēia ʻikepili, a maopopo ʻaʻole e mau no nā pule ʻelua o ka hana. Akā…
Ka hopena o ka hana
Ua hoʻopau koke ʻia ka hana ma muli o nā kūlana ma waho o koʻu mana. ʻO kekahi o nā nāwaliwali o kēia papahana, i koʻu manaʻo kumuhana, ʻo ia ka modem, ʻaʻole makemake maoli e hana like me nā modem ʻē aʻe, a hana i kēlā mau hana hoʻopunipuni i kēlā me kēia manawa i hoʻouka ʻia. No kēia mau kumu, nui ka nui o nā hiʻohiʻona modem ʻē aʻe; ʻo ka mea maʻamau aia lākou i ka ʻano Mini PCI-e a hoʻokomo ʻia i loko o ka hāmeʻa a ʻoi aku ka maʻalahi o ka hoʻonohonoho ʻana. Akā, he moʻolelo ʻokoʻa loa kēlā. Ua hoihoi ka papahana a ua hauʻoli loa au i ka hiki iaʻu ke komo i loko.