He whakamatautau tere i runga i te maha o nga pouwhanga LTE

I te wa o te taratahi, i tukuna ahau ki te whai waahi ki te whakawhanake i tetahi taputapu hei ine i te tere o nga pouwhanga LTE mo te maha o nga kaiwhakahaere pūkoro.

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

I hiahia te kaihoko ki te arotake i te tere o nga momo kaiwhakawhanake waea i roto i nga waahi matawhenua rereke kia mohio ai ko wai te kaiwhakahaere pūkoro te mea tino pai mo ia i te wa e whakauru ana i nga taputapu ma te whakamahi hononga LTE, hei tauira, mo nga panui ataata. I te wa ano, me whakatika te raruraru i runga i te ngawari me te iti rawa, kaore he taputapu utu nui.

Ka kii tonu ahau ko te mahi ehara i te mea ngawari me te tino kaha ki te mohio; Ka korerotia e ahau ki a koe he aha nga raruraru i pa ki a au me pehea taku whakaoti. Na, me haere.

parau

Ko te ine i te tere o te hononga LTE he mea tino uaua: me whiriwhiri e koe nga taputapu tika me te tikanga ine, me te mohio pai ki te topology me te mahi o te whatunga waea. I tua atu, ka taea te awe i te tere e te maha o nga mea: ko te maha o nga kaiohauru i runga i te pūtau, nga ahuatanga o te huarere, ahakoa mai i nga pūtau ki tetahi pūtau ka rereke te tere na runga i te topology whatunga. I te nuinga o te waa, he raru tenei mo te maha o nga mea e kore e mohiotia, ka taea e te kaiwhakahaere waea te whakaoti tika.

I te timatanga, i hiahia noa te kaihoko ki te taraiwa i te kaikawe me nga waea a nga kaiwhakahaere, ine tika i runga i te waea ka tuhia nga hua ine tere ki roto i te pukamahi. Ko taku otinga mo te ine i te tere o nga whatunga lte, ahakoa kaore i te pai, ka whakatauhia te raru.

Na te kore o te wa, i whakatau au ehara i te pai ki te waatea, ki te whaihua ranei, engari mo te tere o te whanaketanga. Hei tauira, i whakamahia te ssh whakamuri mo te uru mamao, hei utu mo te VPN tino mahi, hei whakaora i te wa ki te whakatu i te tūmau me ia kiritaki takitahi.

Mahi hangarau

Ka rite ki te korero i roto i te tuhinga Kaore he korero hangarau: he aha te kore e hiahia ana te kaihoko: Kaua e mahi me te kore korero hangarau! Kaua rawa, ki hea!

He tino ngawari te mahi hangarau, ka whakawhānuihia e ahau he iti mo te maarama o te kaiwhakamahi mutunga. Ko te whiriwhiringa o nga otinga hangarau me nga taputapu i kiihia e te kaihoko. Na, ko te tohu hangarau ake, i muri i nga whakaaetanga katoa:

I runga i te rorohiko papa kotahi vim2 hanga he whakamatautau tere mo nga hononga lte ma te H pouwhangauawei e3372h - 153 he maha nga kaiwhakahaere waea (mai i te kotahi ki te n). Me whiwhi taunga mai i te kaikawe GPS e hono ana ma te UART. Hanga inenga tere ma te whakamahi i te ratonga www.speedtest.net ka whakatakoto ki te tepu penei:

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

Ripanga kei te whakatakotoranga csv. Ka tukuna tenei tohu ma te imeera ia 6 haora. Ki te hapa, kimohia te LED e hono ana ki te GPIO.

I whakaahuahia e ahau nga korero hangarau i roto i te ahua kore utu, i muri i te maha o nga whakaaetanga. Engari kua kitea kē te tikanga o te mahi. He wiki i hoatu mo nga mea katoa. Engari i roto i te meka e toru wiki te roa. Ko te whakaaro tenei i mahia e au i muri i taku mahi matua me nga mutunga wiki.

I konei e hiahia ana ahau ki te aro ano ki te meka i whakaae te kaihoko i mua mo te whakamahi i te ratonga ine tere me te taputapu, he iti nei oku kaha. He iti ano te putea, na reira kaore he mea motuhake i hokona. Na me takaro matou i enei ture.

Te hoahoanga me te whanaketanga

He maamaa, he maamaa te kaupapa. Na reira, ka waiho e ahau kaore he korero motuhake.

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

I whakatau ahau ki te whakatinana i te kaupapa katoa ki te python, ahakoa te mea kaore au i mohio ki te whakawhanake i tenei reo. I whiriwhiria e au na te mea he maha nga tauira kua oti te hanga me nga otinga ka tere ake te whanaketanga. No reira, ka tono ahau ki nga kaitakataka ngaio katoa kia kaua e riria taku wheako tuatahi mo te whakawhanake i te python, ka koa tonu ahau ki te rongo i nga kupu whakahe hei whakapai ake i aku pukenga.

I roto ano i te mahi ka kitea e ahau e rua nga putanga o te python 2 me te 3, na reira ka noho ahau ki te tuatoru.

Kohanga taputapu

Pereti-kotahi vim2

I whakawhiwhia ahau ki tetahi rorohiko papa kotahi hei miihini matua vim2

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

He kaitukatuka pāpāho tino pai, kaha mo te kaainga atamai me te SMART-TV, engari kaore i te pai mo tenei mahi, me kii ranei, kaore e pai. Hei tauira, ko tana OS matua ko te Android, ko Linux te OS tuarua, na reira kaore tetahi e whakamana i te mahi-kounga teitei o nga pona me nga taraiwa katoa i raro i te Linux. A ka whakaaro ahau ko etahi o nga raruraru i pa ki nga taraiwa USB o tenei papaahi, na reira kaore i mahi nga pouwhanga i runga i tenei papa. He tino rawe, he marara hoki nga tuhinga, no reira he roa te wa o ia mahi ki te keri i nga tauranga. Ahakoa nga mahi noa me te GPIO ka nui te toto. Hei tauira, he maha nga haora i roa ki te whakarite i te LED. Engari, ki te whai whakaaro, ehara i te mea nui he aha te ahua o te papa kotahi, ko te mea nui ko te mahi me nga tauranga USB.

Tuatahi, me whakauru e ahau a Linux ki runga i tenei papa. Kia kore ai e tukitukia te mohoao o nga tuhinga mo te katoa, mo te hunga hoki e mahi ana mo tenei punaha poari kotahi, kei te tuhi ahau i tenei upoko.

E rua nga waahanga hei whakauru i te Linux: i runga i te kaari SD o waho, i runga ranei i te MMC o roto. I pau ahau i tetahi ahiahi e ngana ana ki te whakaaro me pehea te mahi me te kaari, no reira ka whakatau ahau ki te whakauru ki runga i te MMC, ahakoa kaore he feaa ka ngawari ake te mahi me te kaari o waho.

Mō te mārō korero whanoke ki konei. I whakamaori ahau mai i te rereke ki te reo Ruhia. Hei whakakorikori i te papa, me hono ahau i te taputapu UART. I hono i roto i te ara e whai ake nei.

  • Utauta Pin GND: <—> Pin17 o VIM's GPIO
  • Utauta Pin TXD: <—> Pin18 o VIM's GPIO (Linux_Rx)
  • Utauta Pin RXD: <—> Pin19 o VIM's GPIO (Linux_Tx)
  • Utauta Pin VCC: <—> Pin20 o VIM's GPIO

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

I muri i tera, i tangohia e ahau te firmware mai i konei. Putanga firmware motuhake VIM1_Ubuntu-server-bionic_Linux-4.9_arm64_EMMC_V20191231.

Hei tuku ake i tenei firmware, ka hiahia au ki nga taputapu. Ko etahi atu korero mo tenei konei. Kaore au i ngana ki te whakamarama i raro i te Matapihi, engari me korero atu e au etahi kupu mo te firmware i raro i te Linux. Tuatahi, ka whakauruhia e ahau nga taputapu kia rite ki nga tohutohu.

git clone https://github.com/khadas/utils
cd /path/to/utils
sudo ./INSTALL

Aaand... Karekau he mahi. I pau nga haora e rua ki te whakatika i nga tuhinga whakaurunga kia pai ai nga mea katoa ki ahau. Kaore au e mahara ki nga mea i mahia e au i reira, engari tera ano hoki tera circus me nga hoiho. No reira kia tupato. Engari ki te kore enei taputapu kaore he take ki te whakamamae i te vim2 atu. He pai ake kia kaua e pokanoa ki a ia!

I muri i nga porowhita e whitu o te reinga, te whirihoranga tuhinga me te whakaurunga, ka whiwhi ahau i tetahi kete o nga taputapu mahi. I hono ahau i te poari ma te USB ki taku rorohiko Linux, me te hono ano i te UART kia rite ki te hoahoa i runga ake nei.
Kei te whakarite ahau i taku tauranga minicom tino pai mo te tere o te 115200, kaore he taputapu me te whakahaere hapa rorohiko. A kia timata tatou.

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

I te wa e utaina ana te VIM2 ki te tauranga UART, ka pehia e ahau tetahi ki, penei i te waahi mokowhiti, kia mutu te uta. I muri ka puta te raina

kvim2# 

Ka uru ahau ki te whakahau:

kvim2# run update

I runga i te kaihautu e utaina ana e matou, ka mahia e ahau:

burn-tool -v aml -b VIM2 -i  VIM2_Ubuntu-server-bionic_Linux-4.9_arm64_EMMC_V20191231.img

Koia tena, pai. I tirohia e ahau, kei runga te Linux i te papa. Takiuru/kupuhipa khadas:khadas.

I muri i tera, etahi tautuhinga tuatahi iti. Mo etahi atu mahi, ka whakakorehia e ahau te kupuhipa mo te sudo (ae, kaore i te haumaru, engari he watea).

sudo visudo

Ka whakatika ahau i te raina ki te puka ka tiakina

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) NOPASSWD: ALL

Na ka huri au i te waahi o naianei kia tae ki Moscow te wa, ki te kore ka noho ki Greenwich.

sudo timedatectl set-timezone Europe/Moscow

ranei

ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Mena he uaua ki a koe, kaua e whakamahi i tenei papa, he pai ake te Raspberry Pi. Ma te pono.

Pouwhanga Huawei e3372h – 153

Ko tenei pouwhanga he puna toto nui ki ahau, a, ko te tikanga, ka noho ko ia te kohungahunga o te kaupapa katoa. I te nuinga o te waa, ko te ingoa "modem" mo enei taputapu kaore i te whakaatu i te ngako o te mahi: he whakakotahitanga kaha tenei, ko tenei taputapu taputapu he taputapu hiato e kii ana he CD-ROM hei whakauru i nga taraiwa, ka huri ki te aratau kaari whatunga.

Ma te hoahoanga, mai i te tirohanga a te kaiwhakamahi Linux, i muri i nga tautuhinga katoa, ka penei te ahua: i muri i te hono i te pouwhanga, kei a au he atanga whatunga eth*, ma te dhcp ka whiwhi i te IP IP 192.168.8.100, me te tomokanga taunoa. he 192.168.8.1.

A ko te wa tino nui! Kaore e taea e tenei tauira pouwhanga te mahi i roto i te aratau pouwhanga, kei te whakahaerehia e nga whakahau AT. He maamaa ake nga mea katoa, hanga hononga PPP mo ia pouwhanga ka mahi tahi me ratou. Engari i roto i taku keehi, "ko ia ano" (he tino tika, he kaikawe Linux e ai ki nga ture udev), ka hangaia he atanga eth me te tuku i tetahi wahitau IP ki a ia ma te dhcp.

Hei karo atu i te whakama, ka whakaaro ahau kia warewarehia te kupu "modem" me te kii i te kaari whatunga me te kuaha, no te mea ko te tikanga, he rite ki te hono i tetahi kaari whatunga hou me te kuaha.
Ina kotahi te pouwhanga, kaore he raru motuhake, engari ka nui ake i te kotahi, ara nga waahanga-n, ka puta ake te pikitia whatunga e whai ake nei.

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

Arā, n kāri whatunga, he ōrite te wāhitau IP, he ōrite te kūwaha taunoa o tēnā, o tēnā. Engari i roto i te meka, kei te hono ia o ratou ki tana ake kaiwhakahaere.

I te timatanga, he otinga ngawari taku: ma te whakamahi i te whakahau ifconfig, ip ranei, whakawetohia nga atanga katoa ka huri noa i tetahi ka huri ka whakamatau. He pai te otinga mo te katoa, engari i nga wa whakawhiti kaore au i kaha ki te hono atu ki te taputapu. A, i te mea he tere, he tere hoki te whakawhiti, kaore au i whai waahi ki te hono atu.

Na reira, i whiriwhiria e au te huarahi ki te whakarereke a-ringa i nga wahitau IP o nga pouwhanga katahi ka peia waka ma te whakamahi i nga tautuhinga ararere.

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

Ehara tenei i te mutunga o aku raru ki nga pouwhanga: mena he raru te hiko, ka hinga, ka hiahiatia he hiko hiko pai ki te USB USB. I whakatauhia e au tenei raru ma te whakapiri kaha i te hiko ki te puku. Ko tetahi atu raruraru i pa ki a au, i pakaru te kaupapa katoa: i muri i te whakaara ano, i te tiimata makariri ranei o te taputapu, kaore i kitea nga pouwhanga katoa kaore i nga wa katoa, a kaore i taea e au te whakatau he aha i puta ai tenei me te aha te algorithm. Engari ko nga mea tuatahi.

Kia tika te mahi a te pouwhanga, i whakauruhia e ahau te kete usb-modeswitch.

sudo apt update
sudo apt install -y usb-modeswitch

I muri i tera, i muri i te hono, ka kitea tika te pouwhanga me te whirihora e te udev subsystem. Ka tirohia e au ma te hono noa i te pouwhanga me te mohio kei te puta te whatunga.
Ko tetahi atu raruraru kaore i taea e au te whakaoti: me pehea e taea ai e au te tiki i te ingoa o te kaiwhakahaere e mahi tahi ana matou mai i tenei pouwhanga? Ko te ingoa kaiwhakahaere kei roto i te atanga tukutuku pouwhanga i 192.168.8.1. He wharangi paetukutuku hihiri tenei e whiwhi raraunga ana na roto i nga tono Ajax, no reira ko te wgeting noa i te wharangi me te poroporo i te ingoa kaore e mahi. Na ka timata ahau ki te titiro me pehea te whakawhanake i tetahi wharangi paetukutuku, me etahi atu, ka mohio kei te mahi au i etahi momo poauau. Ko te mutunga, ka tuwha ia, a ka tiimata te kaiwhakahaere ki te whakamahi i te Speedtest API ake.

He maamaa ake mena ka uru te pouwhanga ma nga whakahau AT. Ka taea te whirihora ano, te hanga hononga ppp, te tautapa i te IP, te tiki i tetahi kaiwhakahaere waea, aha atu. Engari aue, kei te mahi ahau me nga mea kua hoatu ki ahau.

GPS

Ko te kaikawe GPS i homai ki ahau he atanga UART me te mana. Ehara i te mea ko te otinga tino pai, engari he pai tonu te mahi me te ngawari. He penei te ahua o te kaiwhiwhi.

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

Ki te pono, koinei taku wa tuatahi ki te mahi tahi me te kaikawe GPS, engari i taku i tumanako ai, i whakaarohia nga mea katoa mo matou i nga wa o mua. Na ka whakamahi noa matou i nga otinga kua rite.

Tuatahi, ka taea e au te uart_AO_B (UART_RX_AO_B, UART_TX_AO_B) ki te hono GPS.

khadas@Khadas:~$ sudo fdtput -t s /dtb.img /serial@c81004e0 status okay

Muri iho ka tirohia e au te angitu o te mahi.

khadas@Khadas:~$ fdtget /dtb.img /serial@c81004e0 status
okay

Ko tenei whakahau ka whakatika i te devtree i runga i te rere, he tino watea.

I muri i te angitu o tenei mahi, whakaara ano me te whakauru i te daemon GPS.

khadas@Khadas:~$ sudo reboot

Te whakauru i te daemon GPS. Ka whakauruhia e ahau nga mea katoa ka tapahia tonu mo etahi atu whirihoranga.

sudo apt install gpsd gpsd-clients -y
sudo killall gpsd
 
/* GPS daemon stop/disable */
sudo systemctl stop gpsd.socket
sudo systemctl disable gpsd.socket

Whakatika i te kōnae tautuhinga.

sudo vim /etc/default/gpsd

Kei te whakauruhia e ahau he UART ka whakairihia te GPS.

DEVICES="/dev/ttyS4"

Na ka huri tatou i nga mea katoa ka timata.

/* GPS daemon enable/start */
sudo systemctl enable gpsd.socket
sudo systemctl start gpsd.socket

I muri i tera, ka hono ahau i te GPS.

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

Kei oku ringa te waea GPS, ka kitea nga waea patuiro UART i raro i oku maihao.

Ka whakaara ano ahau ka tirohia te mahi GPS ma te whakamahi i te kaupapa gpsmon.

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

Kaore e taea e koe te kite i nga amiorangi i roto i tenei whakaahua, engari ka taea e koe te kite i te whakawhitiwhiti korero me te kaiwhiwhi GPS, a ko te tikanga he pai nga mea katoa.

I roto i te python, he maha nga waahanga i whakamatauhia e au mo te mahi me tenei daemon, engari i whakatau ahau i te mea i mahi tika me te python 3.

Ka whakauruhia e ahau te whare pukapuka e tika ana.

sudo -H pip3 install gps3 

Na ahau i whakairo te waehere mahi.

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

Mena ka hiahia ahau ki te tiki taunga, ka oti tenei ma te waea e whai ake nei:

longitude, latitude = getPositionData(agps_thread)

A i roto i te 1-10 hēkona ka whiwhi ahau i te ruruku kaore ranei. Ae, tekau au ngana ki te tiki taunga. Ehara i te mea tino pai, he kopikopiko me te kopikopiko, engari ka mahi. I whakatau ahau ki te mahi i tenei na te mea he kino te tango a GPS me te kore e whiwhi raraunga i nga wa katoa. Mena ka tatari koe ki te whiwhi raraunga, katahi ka mahi koe i roto i te ruuma mamao, ka whakatio te kaupapa ki tenei waahi. Na reira, i whakatinanahia e ahau tenei waahanga koretake.

Ko te tikanga, mena ka nui ake te wa, ka taea te tiki raraunga mai i te GPS ma te UART, ka tohatohahia ki tetahi miro motuhake ka mahi tahi. Engari karekau he wa, no reira te tohu kino kino. Ae, kaore au i te whakama.

Paoho-whakaputa rama

Ko te hono i te LED he ngawari me te uaua i te wa ano. Ko te tino uaua ko te nama titi i roto i te punaha kaore i te rite ki te nama titi i runga i te poari, na te mea kua tuhia nga tuhinga ki te ringa maui. Hei whakataurite i te tau titi taputapu me te nama titi i te OS, me whakahaere e koe te whakahau:

gpio readall

Ka whakaatuhia he ripanga reta pine i roto i te punaha me te papa. I muri ka taea e au te whakahaere i te titi i roto i te OS ake. I taku keehi ka hono te LED ki GPIOH_5.

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

Ka huri ahau i te titi GPIO ki te aratau whakaputa.

gpio -g mode 421 out

Ka tuhia e ahau te kore.

gpio -g write 421 0

Ka tuhia e ahau tetahi.

gpio -g write 421 1

He whakamatautau tere i runga i te maha o nga pouwhanga LTE
Ka tahuna nga mea katoa, i muri i te tuhi "1"

#gpio subsistem
def gpio_init():
	os.system("gpio -g mode 421 out")
	os.system("gpio -g write 421 1")

def gpio_set(val):
	os.system("gpio -g write 421 %d" % val)
	
def error_blink():
	gpio_set(0)
	time.sleep(0.1)
	gpio_set(1)
	time.sleep(0.1)
	gpio_set(0)
	time.sleep(0.1)
	gpio_set(1)
	time.sleep(0.1)
	gpio_set(0)
	time.sleep(1.0)
	gpio_set(1)

def good_blink():
	gpio_set(1)

Inaianei, mena he hapa, ka karanga ahau error_blink() ka kimo ataahua te LED.

Pūmanawa kōpuku

API tino tere

He tino koa kei te ratonga teretest.net tana ake python-API, ka taea e koe te titiro GitHub.

Ko te mea pai kei reira nga waehere puna ka taea hoki te tiro. Me pehea te mahi me tenei API (nga tauira ngawari) ka kitea i roto wāhanga whai take.

Ka whakauruhia e ahau te whare pukapuka python me te whakahau e whai ake nei.

sudo -H pip3 install speedtest-cli

Hei tauira, ka taea e koe te whakauru i tetahi whakamatautau tere ki Ubuntu tika mai i te rorohiko. Ko te tono python ano tenei, ka taea te whakarewa tika mai i te papatohu.

sudo apt install speedtest-cli -y

A ine i to tere Ipurangi.

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

Ko te mutunga mai, pera i ahau. Me uru ahau ki nga waehere puna o tenei whakamatautau tere kia pai ake ai te whakauru ki roto i taku kaupapa. Ko tetahi o nga mahi tino nui ko te kii i te ingoa o te kaiwhakahaere waea kia taea ai te whakakapi ki te pereti.

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"
#тут идет запись в файл логов

I konei ano, ka puta nga mea katoa ehara i te mea ngawari, ahakoa he ahua ngawari ake. I te timatanga, he rite te tawhā tūmau ki [], e ai ki a ratou, whiriwhiria te tūmau pai. Ko te hua o tenei, he kaitoi matapōkere au, a, ka whakaaro koe, he rereke te tere. He kaupapa tino uaua tenei, ma te whakamahi i te tuumau pumau, mena he mea, he pateko, he hihiri ranei, me rangahau. Engari koinei tetahi tauira o nga kauwhata ine tere mo te kaiwhakahaere Beeline i te wa e kowhiri ana i te tuumau whakamatautau me te mea kua whakaritea.

He whakamatautau tere i runga i te maha o nga pouwhanga LTE
Ko te hua o te ine tere i te wa e whiriwhiri ana i te tūmau hihiri.

He whakamatautau tere i runga i te maha o nga pouwhanga LTE
Ko te hua o te whakamatautau tere, me te kotahi i tohua kia kotahi te tūmau.

I te wa o te whakamatautau, he "huruhuru" kei nga waahi e rua, a me tango ma te whakamahi i nga tikanga pangarau. Engari me te tūmau pūmau he iti ake, ā, he pūmau te kaha kaha.
I te nuinga o te waa, he waahi rangahau nui tenei. A ka ine ahau i te tere o taku tūmau ma te whakamahi i te whaipainga iperf. Engari ka piri matou ki nga whakaritenga hangarau.

Te tuku mēra me nga hapa

Ki te tuku mēra, i whakamatauria e ahau etahi momo tatini rereke, engari i te mutunga ka whakatauhia e au nga mea e whai ake nei. I rehitatia e ahau tetahi pouaka mēra ki Yandex katahi ka tango He tauira tenei mo te tuku mēra. I tirohia e ahau, ka whakatinanahia ki roto i te kaupapa. Ka tirohia e tenei tauira nga momo whiringa, tae atu ki te tuku mai i a gmail, aha atu. Kaore au i pai ki te whakararuraru i te whakatuu i taku tūmau mēra me te kore he wa mo taua mea, engari i te mea i puta i muri mai, he kore noa iho.

I tukuna nga raarangi kia rite ki te kai whakarite, mehemea he hononga, ia 6 haora: i te 00 karaka, 06 i te ata, 12 i te ahiahi me te 18 i te ahiahi. I tukuna mai e whai ake nei.

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

I tukuna ano nga hapa i te tuatahi. Hei timata, i whakaemihia i roto i te rarangi, ka tukuna ano ma te whakamahi i te raarangi, mena he hononga. Heoi, ka puta nga raruraru me te mea he rohe a Yandex mo te maha o nga karere ka tukuna i ia ra (koinei te mamae, te pouri me te whakaiti). I te mea he nui pea nga hapa ahakoa ia meneti, me whakarere e matou te tuku hapa ma te mēra. Na kia maumahara ki te tuku korero aunoa mo taua raru ma nga ratonga Yandex.

Tūmau urupare

Kia taea ai e au te uru atu ki tetahi taputapu mamao me te taea ki te whakarite me te whirihora ano, ka hiahia ahau ki tetahi tūmau o waho. I te nuinga o te waa, kia tika, he tika te tuku i nga raraunga katoa ki te tūmau me te hanga i nga kauwhata ataahua katoa i roto i te atanga tukutuku. Engari kaore katoa i te wa kotahi.

Mo VPS i whiriwhiria e ahau ruvds.com. Ka taea e koe te tango i te tūmau ngawari. A, i roto i te nuinga, mo aku kaupapa ka nui tenei. Engari i te mea kaore au i utu mo te kaimau i roto i taku pute, ka whakatau ahau ki te tango me tetahi rahui iti kia ranea ai mena ka tukuna e matou he atanga tukutuku, to matou ake tūmau SMTP, VPN, etc. I tua atu, ka taea e koe te whakarite i te karetao Telegram me te kore e raru ki te aukati. Na reira, i whiriwhiria e ahau a Amsterdam me nga tawhā e whai ake nei.

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

Hei tikanga whakawhitiwhiti korero me te taputapu, i whiriwhiria e vim2 he hononga ssh whakamuri, a, i te mea kua whakaatuhia e te mahi, ehara i te mea pai rawa atu. Mena kua ngaro te hononga, ka mau te kaimau i te tauranga, kaore e taea te hono atu mo etahi wa. Na reira, he pai ake te whakamahi i etahi atu tikanga whakawhitiwhiti, hei tauira VPN. I nga ra kei mua i hiahia ahau ki te huri ki VPN, engari kaore he wa.

E kore ahau e haere ki nga korero mo te whakatu i te paahi ahi, te aukati i nga mana, te whakakore i nga hononga ssh pakiaka me etahi atu tikanga mo te whakatu VPS. E hiahia ana ahau ki te whakapono kua mohio koe ki nga mea katoa. Mo te hononga mamao, ka hangaia e ahau he kaiwhakamahi hou ki runga i te tūmau.

adduser vimssh

Ka whakaputa au i nga taviri hononga ssh i runga i a maatau taputapu.

ssh-keygen

Na ka kapehia e au ki to maatau tūmau.

ssh-copy-id [email protected]

I runga i a maatau taputapu ka hangaia e au he hononga ssh whakamuri aunoa i ia putunga.

[Unit] Description=Auto Reverse SSH
Requires=systemd-networkd-wait-online.service
After=systemd-networkd-wait-online.service
[Service] User=khadas
ExecStart=/usr/bin/ssh -NT -o ExitOnForwardFailure=yes -o ServerAliveInterval=60 -CD 8080 -R 8083:localhost:22 [email protected]
RestartSec=5
Restart=always
[Install] WantedBy=multi-user.target

Kia tupato ki te tauranga 8083: ka whakatauhia ko tehea tauranga ka whakamahia e ahau hei hono ma te whakamuri ssh. Tāpirihia ki te whakaoho ka timata.

sudo systemctl enable autossh.service
sudo systemctl start autossh.service

Ka taea e koe te kite i te mana:

sudo systemctl status autossh.service

Inaianei, i runga i ta maatau tūmau VPS, mena ka rere tatou:

ssh -p 8083 khadas@localhost

Na ka tae ahau ki taku waahanga whakamatautau o te taputapu. Na mai i nga taputapu ka taea ano e au te tuku i nga raarangi me nga raraunga ma te ssh ki taku tūmau, he tino watea.

Te tukuna katoa

He whakamatautau tere i runga i te maha o nga pouwhanga LTE
Ka huri, ka tiimata te whakawhanake me te patuiro

Phew, pai, koina, i whakaahuatia e au nga node katoa. Inaianei kua tae ki te wa ki te whakakotahi katoa. Ka taea e koe te kite i te waehere tika i konei.

He mea nui me te waehere: Kaore pea tenei kaupapa e timata penei, na te mea i whakahiatohia mo tetahi mahi motuhake, o tetahi hoahoanga motuhake. Ahakoa ka hoatu e ahau te waehere puna, ka whakamarama tonu ahau i nga mea tino nui i konei, tika i roto i te tuhinga, ki te kore e tino marama.

I te timatanga, ka arawhiti ahau i te gps, gpio me te whakarewa i tetahi miro whakahōtaka motuhake.

#запуск потока планировщика
pShedulerThread = threading.Thread(target=ShedulerThread, args=(1,))
pShedulerThread.start()

He maamaa noa te kaihōtaka: he titiro mena kua tae mai te wa ki te tuku karere me te aha te mana hapa o naianei. Mena he haki hapa, ka kimo tatou i te 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)

Ko te waahanga tino uaua o tenei kaupapa ko te pupuri i te hononga ssh whakamuri mo ia whakamatautau. Ko ia whakamatautau he whirihora ano i te kuaha taunoa me te tūmau DNS. I te mea karekau he tangata e panui ana, kia mohio koe kaore te tereina e eke ki runga i nga reera rakau. Ko te tangata ka kite i te hua o te Aranga ka whiwhi monamona.

Ki te mahi i tenei, ka hanga e ahau he ripanga ararere motuhake -set-mark 0x2 me tetahi ture hei whakatika i nga waka.

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")

Ka taea e koe te ako atu mo te mahi panuihia i roto i tenei tuhinga.

I muri ka haere ahau ki roto i te kopikopiko mutunga kore, i ia wa ka whiwhi tatou i te rarangi o nga pouwhanga hono (kia kitea mena kua rereke te whirihoranga whatunga).

network_list = getNetworklist()

He tino ngawari te tiki rarangi atanga whatunga.

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

I muri i te whiwhinga o te rarangi, ka whakaturia e ahau nga wahitau IP ki nga hononga katoa, pera i taku whakaatu i te pikitia i roto i te upoko mo te pouwhanga.

SetIpAllNetwork(network_list)

def SetIpAllNetwork(network_list):
	for iface in network_list:
		lastip = "%d" % (3 + network_list.index(iface))
		cmd_run ("sudo ifconfig " + iface + " 192.168.8." + lastip +" up")

Na ka haere noa ahau i roto i ia atanga i roto i te koropiko. Na ka whirihora e ahau ia atanga.

	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'")

Ka tirohia e ahau te atanga mo te mahi, mena kaore he whatunga, ka puta he hapa. Mena he whatunga, kua tae ki te wa ki te mahi!

I konei ka whirihorahia e ahau te ararere ssh ki tenei atanga (mehemea kaore i mahia), ka tukuna he hapa ki te tūmau mena kua tae mai te wa, ka tukuna he raarangi ka mutu te whakahaere tere me te penapena i nga raarangi ki te konae 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()
#и далее тестируем скорость и сохраняем логи. 

He mea tika kia whakahuahia te mahi o te whakatuu whakamuri ssh.

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")

Ae ra, me taapiri e koe enei ataahua katoa ki te tiimata. Hei mahi i tenei ka hanga e ahau he konae:

sudo vim /etc/systemd/system/modems_speedtest.service

A ka tuhituhi ahau ki roto:

[Unit] Description=Modem Speed Test
Requires=systemd-networkd-wait-online.service
After=systemd-networkd-wait-online.service
[Service] User=khadas
ExecStart=/usr/bin/python3.6 /home/khadas/modems_speedtest/networks.py
RestartSec=5
Restart=always
[Install] WantedBy=multi-user.target

Ka whakakā ahau i te uta aunoa ka timata!

sudo systemctl enable modems_speedtest.service
sudo systemctl start modems_speedtest.service

Inaianei ka kite ahau i nga raarangi o nga mea kei te mahi ma te whakamahi i te whakahau:

journalctl -u modems_speedtest.service --no-pager -f

Результаты

Inaianei ko te mea nui, he aha te mea i puta mai? Anei etahi kauwhata i taea e au te hopu i te wa o te whanaketanga me te mahi patuiro. I hangaia nga kauwhata ma te whakamahi i te gnuplot me te tuhinga e whai ake nei.

#! /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"

Ko te wheako tuatahi ko te kaiwhakahaere Tele2, i whakahaerehia e au mo etahi ra.

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

I konei i whakamahia e ahau he tūmau ine hihiri. Ka mahi nga ine tere, engari ka rere ke, engari ka kitea tonu etahi uara toharite, a ka taea tenei ma te tarai i nga raraunga, hei tauira, me te toharite neke.

I muri mai ka hangaia e au etahi kauwhata mo etahi atu kaiwhakahaere waea. I tenei keehi, kua kotahi ano te kaitoro whakamatautau, a he tino whakamere hoki nga hua.

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

Ka taea e koe te kite, he tino whanui te kaupapa mo te rangahau me te tukatuka o enei raraunga, me te maarama kaore e roa mo nga wiki e rua o te mahi. Engari…

Putanga o te mahi

Kua oti ohorere te mahi na nga ahuatanga kei tua atu i taku mana. Ko tetahi o nga ngoikoretanga o tenei kaupapa, ki taku ake whakaaro, ko te pouwhanga, kaore i tino hiahia ki te mahi tahi me etahi atu pouwhanga, me te mahi tinihanga i nga wa katoa ka utaina. Mo enei kaupapa, he maha atu nga tauira pouwhanga; i te nuinga o te waa kei roto i te whakatakotoranga Mini PCI-e kua whakauruhia ki roto i te taputapu, he maamaa ake te whirihora. Engari he korero rereke tera. He rawe te kaupapa, a, i tino koa ahau i taea e au te uru atu ki roto.

He whakamatautau tere i runga i te maha o nga pouwhanga LTE

Source: will.com

Tāpiri i te kōrero