Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Nakong ea ho behelloa ka thoko, ke ile ka fuoa monyetla oa ho nka karolo ho nts'etsopele ea sesebelisoa sa ho lekanya lebelo la li-modem tsa LTE bakeng sa basebelisi ba 'maloa ba cellular.

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Moreki o ne a batla ho lekola lebelo la li-telecom tse fapaneng libakeng tse fapaneng tsa libaka e le hore a tsebe ho utloisisa hore na ke opereishene efe ea cellular e neng e mo loketse haholo ha a kenya lisebelisoa tse sebelisang khokahano ea LTE, mohlala, bakeng sa lipapatso tsa video. Ka nako e tšoanang, bothata bo ne bo tlameha ho rarolloa ka mokhoa o bonolo le ka theko e tlaase ka hohle kamoo ho ka khonehang, ntle le thepa e theko e boima.

Hang-hang ke tla re mosebetsi ona ha o bonolo ebile ha o na tsebo e ngata haholo; ke tla u joetsa hore na ke ile ka kopana le mathata afe le hore na ke a rarolle joang. Kahoo, ha re yeng.

mantsoe

Ho lekanya lebelo la khokahano ea LTE ke taba e rarahaneng haholo: o hloka ho khetha lisebelisoa tse nepahetseng le mokhoa oa ho lekanya, hape o na le kutloisiso e ntle ea topology le ts'ebetso ea marang-rang a cellular. Ho feta moo, lebelo le ka susumetsoa ke lintlha tse 'maloa: palo ea ba ngolisitseng ka seleng, maemo a leholimo, esita le ho tloha seleng ho ea ho sele lebelo le ka fapana haholo ka lebaka la topology ea marang-rang. Ka kakaretso, ena ke bothata ka palo e kholo ea lintho tse sa tsejoeng, 'me ke mokhanni oa telecom feela ea ka e rarollang ka nepo.

Qalong, moreki o ne a mpa a batla ho khanna molaetsa ka lifono tsa basebetsi, a nke litekanyo ka ho toba fonong ebe o ngola sephetho sa tekanyo ea lebelo bukeng ea ho ngolla. Tharollo ea ka ea ho lekanya lebelo la marang-rang a lte, leha e sa nepahale, e rarolla bothata.

Ka lebaka la ho hloka nako, ke ile ka etsa liqeto eseng molemong oa boiketlo kapa ts'ebetso, empa molemong oa ho potlakisa nts'etsopele. Mohlala, reverse ssh e ne e sebelisetsoa ho fihlella hole, ho fapana le VPN e sebetsang haholoanyane, e le ho boloka nako ea ho theha seva le moreki ka mong.

Mosebetsi oa tekheniki

Joalokaha ho boletsoe sehloohong Ntle le litlhaloso tsa tekheniki: ke hobane'ng ha moreki a sa e batle: Se ke oa sebetsa ntle le litlhaloso tsa tekheniki! Le ka mohla, kae kapa kae!

Mosebetsi oa tekheniki o ne o le bonolo, ke tla o holisa hanyane bakeng sa kutloisiso ea mosebelisi oa ho qetela. Khetho ea tharollo ea tekheniki le lisebelisoa e ne e laetsoe ke moreki. Kahoo, litlhaloso tsa tekheniki ka boeona, ka mor'a tumello eohle:

E ipapisitse le komporo ea boto e le 'ngoe vim2 etsa tlhahlobo ea lebelo bakeng sa likhokahano tsa lte ka li-modem tsa Huawei e3372h - 153 basebetsi ba 'maloa ba thelefono (ho tloha ho e' ngoe ho ea ho n). Hoa hlokahala hape ho amohela likhokahano ho tsoa ho moamoheli oa GPS o hokahaneng ka UART. Etsa litekanyo tsa lebelo u sebelisa tšebeletso www., www ..net 'me u li behe tafoleng e kang:

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Tafole ka sebopeho sa csv. Ebe u romella letšoao lena ka e-mail lihora tse ling le tse ling tse 6. Haeba ho na le liphoso, panya LED e hokahaneng le GPIO.

Ke hlalositse litlhaloso tsa tekheniki ka foromo ea mahala, ka mor'a litumello tse ngata. Empa moelelo oa mosebetsi o se o ntse o bonahala. Ho ile ha fanoa ka beke bakeng sa ntho e 'ngoe le e 'ngoe. Empa bonneteng e ile ea nka libeke tse tharo. Sena ke ho ela hloko taba ea hore ke entse sena feela ka mor'a mosebetsi oa ka o moholo le mafelo-beke.

Mona ke batla ho lebisa tlhokomelo hape tabeng ea hore moreki o lumetse esale pele ka tšebeliso ea tšebeletso ea tekanyo ea lebelo le hardware, e leng se ileng sa fokotsa bokhoni ba ka haholo. Tekanyetso ea lichelete le eona e ne e lekanyelitsoe, kahoo ha ho letho le khethehileng le ileng la rekoa. Kahoo re ne re tlameha ho bapala ka melao ena.

Meaho le nts'etsopele

Morero o bonolo ebile o hlakile. Ka hona, ke tla e tlohela ntle le litlhaloso tse khethehileng.

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Ke ile ka etsa qeto ea ho kenya ts'ebetsong morero oohle ka python, ho sa tsotellehe hore ke ne ke se na phihlelo ea ho ntlafatsa puo ena ho hang. Ke e khethile hobane ho ne ho e-na le mehlala e mengata e lokiselitsoeng le tharollo e ka potlakisang tsoelo-pele. Ka hona, ke kopa baetsi bohle ba litsebi hore ba se ke ba khalemela phihlelo ea ka ea pele ea ho hlahisa python, 'me ke lula ke thabela ho utloa ho nyatsuoa ho hahang ho ntlafatsa tsebo ea ka.

Hape ts'ebetsong ke fumane hore python e na le mefuta e 'meli e sebetsang ea 2 le 3, ka lebaka leo ke ile ka lula ho ea boraro.

Li-hardware nodes

Letlapa le le leng vim2

Ke ile ka fuoa komporo ea boto e le 'ngoe e le mochini oa ka o moholo vim2

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Motlakase o motle, o matla oa mecha ea litaba bakeng sa ntlo e bohlale le SMART-TV, empa e sa tšoanelehe haholo bakeng sa mosebetsi ona, kapa, ha re re, e sa tšoanelehe hantle. Ka mohlala, OS ea eona e ka sehloohong ke Android, 'me Linux ke OS ea bobeli,' me ka hona ha ho motho ea tiisang ts'ebetso ea boleng bo phahameng ba li-node le bakhanni bohle tlas'a Linux. 'Me ke nahana hore mathata a mang a ne a amana le bakhanni ba USB ba sethaleng sena, kahoo li-modem ha lia ka tsa sebetsa kamoo ho neng ho lebeletsoe kateng botong ena. E boetse e na le litokomane tse futsanehileng haholo le tse hasaneng, kahoo ts'ebetso e 'ngoe le e' ngoe e nkile nako e ngata ho cheka liema-kepe. Esita le mosebetsi o tloaelehileng le GPIO o ile oa nka mali a mangata. Ka mohlala, ho ile ha nkuka lihora tse 'maloa ho theha LED. Empa, ho ba sepheo, ha e le hantle e ne e se ea bohlokoa hore na e ne e le mofuta ofe oa boto e le 'ngoe, ntho ea bohlokoa ke hore e ne e sebetsa mme ho na le likou tsa USB.

Taba ea pele, ke hloka ho kenya Linux botong ena. E le hore ke se ke ka phenya-phenya mahlahahlaha a litokomane bakeng sa bohle, le bakeng sa ba tla sebetsana le tsamaiso ena ea boto e le 'ngoe, ke ngola khaolo ena.

Ho na le likhetho tse peli tsa ho kenya Linux: kareteng ea kantle ea SD kapa ho MMC e kahare. Ke qetile mantsiboeeng a mang ke leka ho utloisisa hore na ke ka e etsa joang ka karete, kahoo ke ile ka etsa qeto ea ho e kenya ho MMC, le hoja ntle le pelaelo ho ne ho tla ba bonolo haholo ho sebetsa le karete ea kantle.

Mabapi le firmware ho boletsoe ka bokhopo mona. Ke fetolela ho tsoa ho tse makatsang ho ea Serussia. E le ho khantša boto, ke hloka ho hokahanya UART ea hardware. E hokahane ka tsela e latelang.

  • Tool Pin GND: <—> Pin17 ea VIMs's GPIO
  • Tool Pin TXD: <—> Pin18 of VIMs GPIO (Linux_Rx)
  • Tool Pin RXD: <—> Pin19 of VIMs GPIO (Linux_Tx)
  • Tool Pin VCC: <—> Pin20 ea VIM's GPIO

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Ka mor'a moo, ke ile ka khoasolla firmware ho tloha mona. Mofuta o khethehileng oa firmware VIM1_Ubuntu-server-bionic_Linux-4.9_arm64_EMMC_V20191231.

Ho kenya firmware ena, ke hloka lisebelisoa. Lintlha tse ling mabapi le sena mona. Ha ke so leke ho e khantša tlas'a Windows, empa ke hloka ho u bolella mantsoe a seng makae ka firmware tlas'a Linux. Ntlha ea pele, ke tla kenya lisebelisoa ho latela litaelo.

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

Aaand ... Ha ho letho le sebetsang. Ke qetile lihora tse 'maloa ke hlophisa mangolo a ho kenya e le hore ntho e' ngoe le e 'ngoe e ka nkemella hantle. Ha ke hopole hore na ke ile ka etsa eng moo, empa ho ne ho boetse ho e-na le liserekisi tse nang le lipere. Kahoo hlokomela. Empa ntle le lits'ebeletso tsena ha ho na thuso ea ho hlokofatsa vim2 ho ea pele. Ho molemo ho se ferekane le eena ho hang!

Ka mor'a lihlopha tse supileng tsa lihele, script configuration le tlhomamiso, ke ile ka fumana sephutheloana sa lisebelisoa tsa ho sebetsa. Ke ile ka hokahanya boto ka USB khomphuteng ea ka ea Linux, 'me ka boela ka hokahanya UART ho latela setšoantšo se ka holimo.
Ke theha terminal eo ke e ratang haholo ea minicom bakeng sa lebelo la 115200, ntle le taolo ea phoso ea hardware le software. Mme ha re qaleng.

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Ha ke kenya VIM2 ho terminal ea UART, ke tobetsa konopo, joalo ka spacebar, ho emisa ho kenya. Kamora hore mola o hlahe

kvim2# 

Ke kenya taelo:

kvim2# run update

Ho moamoheli eo re e jarollang, ke phethahatsa:

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

Ke eona, phew. Ke hlahlobile, ho na le Linux botong. Login/password khadas:khadas.

Ka mor'a moo, litlhophiso tse nyane tsa pele. Bakeng sa mosebetsi o eketsehileng, ke tima phasewete bakeng sa sudo (e, ha e sireletsehe, empa e loketse).

sudo visudo

Ke fetola mola ho foromo ebe ke boloka

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

Ebe ke fetola sebaka sa hona joale e le hore nako e be Moscow, ho seng joalo e tla ba Greenwich.

sudo timedatectl set-timezone Europe/Moscow

kapa

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

Haeba u fumana ho le thata, joale u se ke oa sebelisa boto ena; Raspberry Pi e betere. Ka botshepehi.

Modem Huawei e3372h – 153

Modem ena e ne e le mohloli oa bohlokoa oa mali ho 'na,' me, ha e le hantle, e ile ea e-ba tšitiso ea morero oohle. Ka kakaretso, lebitso la "modem" bakeng sa lisebelisoa tsena ha le bontše bohlokoa ba mosebetsi ho hang: ena ke motsoako o matla, karolo ena ea hardware e na le sesebelisoa se nang le motsoako se iketsang eka ke CD-ROM ho kenya bakhanni. ebe o fetohela ho mokhoa oa karete ea netweke.

Ka mokhoa oa meralo, ho ea ka pono ea mosebelisi oa Linux, kamora litlhophiso tsohle, e shebahala tjena: kamora ho hokahanya modem, ke na le sehokelo sa marang-rang sa eth *, seo ka dhcp se amohelang aterese ea IP 192.168.8.100, le heke ea kamehla. ke 192.168.8.1.

Le motsotso oa bohlokoa ka ho fetisisa! Mokhoa ona oa modem o ke ke oa sebetsa ka mokhoa oa modem, o laoloang ke litaelo tsa AT. Ntho e ngoe le e ngoe e ka ba bonolo haholoanyane, theha likhokahano tsa PPP bakeng sa modem ka 'ngoe ebe u sebetsa le tsona. Empa tabeng ea ka, "ka boeena" (ka ho toba, Linux diver ho ea ka melao ea udev), o etsa sebopeho sa eth mme o fana ka aterese ea IP ho eona ka dhcp.

E le ho qoba pherekano e eketsehileng, ke fana ka maikutlo a ho lebala lentsoe "modem" le ho re karete ea marang-rang le heke, hobane ha e le hantle, ho tšoana le ho hokahanya karete e ncha ea marang-rang le heke.
Ha ho na le modem e le 'ngoe, sena ha se bake mathata leha e le afe a khethehileng, empa ha ho na le tse fetang tse le' ngoe, e leng li-n-pieces, setšoantšo se latelang sa marang-rang se hlaha.

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Ke hore, likarete tsa marang-rang, tse nang le aterese ea IP e tšoanang, e 'ngoe le e' ngoe e na le heke e tšoanang ea kamehla. Empa ha e le hantle, e 'ngoe le e' ngoe ea tsona e hokahane le moetsi oa eona.

Qalong, ke ne ke e-na le tharollo e bonolo: ho sebelisa taelo ea ifconfig kapa ip, tima li-interfaces tsohle ebe u bulela e 'ngoe ka ho latellana ebe u e leka. Tharollo e ne e le molemo ho bohle, ntle le hore nakong ea ho fetola ke ne ke sa khone ho hokahanya le sesebelisoa. 'Me kaha ho fetola hangata ho potlakile, ke ne ke se na monyetla oa ho hokahanya ho hang.

Ka hona, ke ile ka khetha tsela ea ho fetola liaterese tsa IP tsa modem ebe ke khanna sephethephethe ke sebelisa litlhophiso tsa litsela.

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Ena e ne e se qetello ea mathata a ka ka li-modem: haeba ho na le mathata a matla, a ile a oa, 'me ho ne ho hlokahala phepelo e ntle e tsitsitseng ea motlakase ho hub ea USB. Ke ile ka rarolla bothata bona ka ho kopanya matla ka ho toba ho hub. Bothata bo bong boo ke ileng ka kopana le bona le bo ileng ba senya morero oohle: ka mor'a ho tsosolosa kapa ho qala ho bata ha sesebelisoa, hase li-modem tsohle tse ileng tsa fumanoa 'me eseng kamehla,' me ke ne ke sitoa ho tseba hore na ke hobane'ng ha sena se etsahetse le hore na ke algorithm efe. Empa lintho tsa pele pele.

E le hore modem e sebetse hantle, ke kentse sephutheloana sa usb-modeswitch.

sudo apt update
sudo apt install -y usb-modeswitch

Ka mor'a moo, ka mor'a ho hokahanya, modem e tla fumanoa ka nepo 'me e lokisoe ke tsamaiso e nyenyane ea udev. Ke hlahloba ka ho kopanya modem feela le ho etsa bonnete ba hore marang-rang a hlaha.
Bothata bo bong boo ke sa kang ka khona ho bo rarolla: nka fumana lebitso la opareitara eo re sebetsang le eona joang ho modem ee? Lebitso la opareitara le fumaneha ho modem web interface ho 192.168.8.1. Ena ke leqephe le matla la sebaka sa marang-rang le amohelang data ka likopo tsa Ajax, ka hona, ho ngola leqephe le ho ngola lebitso ho ke ke ha sebetsa. Kahoo ke ile ka qala ho sheba mokhoa oa ho hlahisa leqephe la websaete, joalo-joalo, 'me ka hlokomela hore ke ne ke etsa mofuta o itseng oa lefeela. Ka lebaka leo, o ile a tshwela mathe, mme mosebeletsi a qala ho amohela a sebedisa Speedtest API ka boeona.

Ho ka ba bonolo haholo haeba modem e ne e ka fihlella ka litaelo tsa AT. Ho ka khonahala ho e hlophisa bocha, ho theha khokahano ea ppp, ho abela IP, ho fumana opareitara ea mehala, joalo-joalo. Empa bomalimabe, ke sebetsa ka seo ke se filoeng.

GPS

Moamoheli oa GPS oo ke o filoeng o ne o e-na le sebopeho sa UART le matla. E ne e se tharollo e molemohali, empa e ne e ntse e sebetsa ebile e le bonolo. Moamoheli o ne a shebahala tjena.

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Ho bua 'nete, lena e ne e le lekhetlo la ka la pele ke sebetsa le mochine oa GPS, empa joalokaha ke ne ke lebeletse, ntho e' ngoe le e 'ngoe e ne e nahanoa bakeng sa rona khale. Kahoo re sebelisa feela litharollo tse entsoeng esale pele.

Taba ea pele, ke nolofalletsa uart_AO_B (UART_RX_AO_B, UART_TX_AO_B) ho hokahanya GPS.

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

Ka mor'a moo ke hlahloba katleho ea ts'ebetso.

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

Taelo ena e bonahala e hlophisa devtree ka fofa, e leng bonolo haholo.

Kamora katleho ea ts'ebetso ena, qala hape 'me u kenye daemon ea GPS.

khadas@Khadas:~$ sudo reboot

Ho kenya daemon ea GPS. Ke kenya ntho e 'ngoe le e' ngoe ebe ke e khaola hang-hang bakeng sa tlhophiso e eketsehileng.

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

Ho fetola faele ea li-setting.

sudo vim /etc/default/gpsd

Ke kenya UART eo GPS e tla fanyeha ho eona.

DEVICES="/dev/ttyS4"

Ebe re bula ntho e 'ngoe le e' ngoe ebe re qala.

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

Ka mor'a moo, ke hokela GPS.

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Mohala oa GPS o matsohong a ka, lithapo tsa "debugger" tsa UART li bonahala tlas'a menoana ea ka.

Ke qala hape mme ke sheba ts'ebetso ea GPS ke sebelisa lenaneo la gpsmon.

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Ha u bone li-satellite skrineng sena, empa u ka bona puisano le moamoheli oa GPS, 'me sena se bolela hore tsohle li lokile.

Ho python, ke lekile likhetho tse ngata tsa ho sebetsa le daemon ena, empa ke ile ka lula ho e sebetsang hantle le python 3.

Ke kenya laeborari e hlokahalang.

sudo -H pip3 install gps3 

'Me ke betla khoutu ea mosebetsi.

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

Haeba ke hloka ho fumana likhokahano, sena se etsoa ka mohala o latelang:

longitude, latitude = getPositionData(agps_thread)

'Me ka mor'a metsotsoana e 1-10 ke tla fumana khokahanyo kapa che. E, ke bile le liteko tse leshome tsa ho fumana likhokahano. Ha e nepahale, e khopame ebile e soabile, empa e ea sebetsa. Ke entse qeto ea ho etsa sena hobane GPS e ka ba le kamohelo e mpe 'me ha se kamehla e fumanang data. Haeba u emetse ho fumana data, joale haeba u sebetsa kamoreng e ka thōko, lenaneo le tla qhoma sebakeng sena. Ka hona, ke ile ka kenya ts'ebetsong khetho ena e sa tloaelehang.

Ha e le hantle, haeba ho ne ho e-na le nako e eketsehileng, ho ne ho ka khoneha ho fumana lintlha tse tsoang GPS ka ho toba ka UART, li arole ka khoele e fapaneng 'me u sebetse le eona. Empa ho ne ho se na nako ho hang, ka hona khoutu e khopo e sehlōhō. E, ha ke lihlong.

Diode e khanyang

Ho kopanya LED ho ne ho le bonolo ebile ho le thata ka nako e le 'ngoe. Bothata bo boholo ke hore nomoro ea pin tsamaisong ha e lumellane le nomoro ea pini ka boto le hobane litokomane li ngotsoe ka letsoho le letšehali. Ho bapisa nomoro ea phini ea hardware le nomoro ea phini ho OS, o hloka ho tsamaisa taelo:

gpio readall

Ho tla hlahisoa tafole ea mangolo a phini tsamaisong le botong. Ka mor'a moo ke se ke ntse ke khona ho sebelisa pinana ho OS ka boeona. Tabeng ea ka LED e hokahane le GPIOH_5.

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Ke chencha pin ea GPIO ho mokhoa oa tlhahiso.

gpio -g mode 421 out

Ke ngola fatše zero.

gpio -g write 421 0

Ke ngola e le 'ngoe.

gpio -g write 421 1

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE
Ntho e 'ngoe le e' ngoe e khantšitsoe, ka mor'a ho ngola "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)

Joale, haeba ho na le liphoso, ke bitsa error_blink() mme LED e tla benya hantle.

Software nodes

Speedtest API

Ke thabo e kholo hore tšebeletso ea speedtest.net e na le python-API ea eona, u ka e sheba. Github.

Ntho e ntle ke hore ho na le likhoutu tsa mohloli tse ka bonoang hape. Mokhoa oa ho sebetsa le API ena (mehlala e bonolo) e ka fumanoa ho karolo e amehang.

Ke kenya laeborari ea python ka taelo e latelang.

sudo -H pip3 install speedtest-cli

Mohlala, o ka kenya tester ea lebelo ho Ubuntu ka kotloloho ho tsoa ho software. Ena ke ts'ebeliso e ts'oanang ea python, e ka hlahisoang ka kotloloho ho tsoa ho console.

sudo apt install speedtest-cli -y

Le ho lekanya lebelo la Marang-rang a hau.

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

Ka lebaka leo, feela joalokaha ke entse. Ke ile ka tlameha ho kena lits'ebetsong tsa mohloli oa tlhahlobo ena ea lebelo e le hore ke li kenye tšebetsong ka botlalo morerong oa ka. E 'ngoe ea mesebetsi ea bohlokoahali ke ho fumana lebitso la opareitara ea mehala e le hore a ka e kenya sebakeng sa poleiti.

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

Mona, hape, ntho e 'ngoe le e' ngoe e ile ea bonahala e se bonolo, le hoja e ne e tla bonahala e le bonolo haholoanyane. Qalong, parameter ea li-server e ne e lekana le [], ba re, khetha seva e ntle ka ho fetisisa. Ka lebaka leo, ke ne ke e-na le li-server tse sa tloaelehang, 'me, kamoo u ka nahanang, lebelo le fapaneng. Ena ke sehlooho se rarahaneng, ho sebelisa seva e tsitsitseng, haeba ho joalo, e tsitsitseng kapa e matla, e hloka lipatlisiso. Empa mona ke mohlala oa li-graph tsa tekanyo ea lebelo bakeng sa opareitara ea Beeline ha a khetha ka matla seva sa tlhahlobo le se tsitsitseng.

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE
Sephetho sa ho lekanya lebelo ha u khetha seva e matla.

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE
Sephetho sa tlhahlobo ea lebelo, ka seva e le 'ngoe e khethiloeng ka thata.

Nakong ea tlhahlobo, ho na le "boea" libakeng tseo ka bobeli, 'me e hloka ho tlosoa ho sebelisoa mekhoa ea lipalo. Empa ka seva e tsitsitseng e fokotseha hanyenyane mme amplitude e tsitsitse haholoanyane.
Ka kakaretso, sena ke sebaka sa lipatlisiso tse kholo. 'Me ke ne ke tla lekanya lebelo la seva sa ka ke sebelisa sesebelisoa sa iperf. Empa re khomarela lintlha tsa tekheniki.

Ho romella mangolo le liphoso

Ho romela mangolo, ke lekile likhetho tse 'maloa tse fapaneng, empa qetellong ke ile ka rarolla tse latelang. Ke ngolisitse lebokose la poso ho Yandex mme ka nka Ona ke mohlala oa ho romella mangolo. Ke ile ka e hlahloba 'me ka e kenya tšebetsong lenaneong. Mohlala ona o hlahloba likhetho tse fapaneng, ho kenyelletsa ho romella ho tsoa ho gmail, joalo-joalo. Ke ne ke sa batle ho khathatseha ka ho theha seva sa ka sa poso mme ke se na nako ea eona, empa joalokaha ho ile ha etsahala hamorao, e ne e boetse e le lefeela.

Lifate li ile tsa romeloa ho ea ka mohlophisi, haeba ho na le khokahano, lihora tse ling le tse ling tse 6: ka hora ea 00, 06 hoseng, 12 motšehare le 18pm. E rometsoe ka tsela e latelang.

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

Liphoso le tsona li ile tsa romeloa qalong. Qalong, li ne li bokelloa lethathamong, ebe li romeloa hape ho sebelisoa kemiso, haeba ho ne ho e-na le khokahano. Leha ho le joalo, joale mathata a ile a hlaha ka taba ea hore Yandex e na le moeli oa palo ea melaetsa e rometsoeng ka letsatsi (ena ke bohloko, masoabi le ho tlotloloha). Kaha ho ne ho ka ba le liphoso tse ngata esita le motsotso ka mong, re ile ra tlameha ho tlohela ho romela liphoso ka poso. Kahoo hopola ha u romella tlhahisoleseling mabapi le bothata bo joalo ka lits'ebeletso tsa Yandex.

Seva ea maikutlo

E le hore ke khone ho fumana karolo e hole ea hardware le ho khona ho e etsa le ho e hlophisa bocha, ke ne ke hloka seva sa kantle. Ka kakaretso, ho ba leeme, ho tla be ho nepahetse ho romela lintlha tsohle ho seva le ho haha ​​​​li-graph tsohle tse ntle ho web interface. Empa eseng ka nako e le 'ngoe.

Bakeng sa VPS ke ile ka khetha ruvds.com. U ka nka seva e bonolo ka ho fetisisa. 'Me ka kakaretso, molemong oa ka sena se tla lekana. Empa kaha ha kea ka ka lefella seva ka pokothong ea ka, ke ile ka etsa qeto ea ho e nka ka sebaka se senyenyane sa polokelo e le hore ho ka lekana haeba re ka sebelisa sebopeho sa websaete, seva sa rona sa SMTP, VPN, joalo-joalo. Hape, khona ho theha bot ea Telegraph mme o se be le mathata ka hore e koetsoe. Ka hona, ke khethile Amsterdam le mekhahlelo e latelang.

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Joalo ka mokhoa oa ho buisana le lisebelisoa, vim2 e khethile khokahano ea ssh mme, joalo ka ha tloaelo e bontšitse, ha se eona e ntle ka ho fetisisa. Haeba khokahanyo e lahlehile, seva se tšoara boema-kepe 'me ha ho khonehe ho hokahanya ka nako e itseng. Ka hona, ho ntse ho le molemo ho sebelisa mekhoa e meng ea puisano, mohlala VPN. Nakong e tlang ke ne ke batla ho fetohela ho VPN, empa ke se na nako.

Nke ke ka kena lintlheng tsa ho theha firewall, ho thibela litokelo, ho thibela likhokahano tsa ssh le lintlha tse ling tsa ho theha VPS. Ke rata ho lumela hore u se u ntse u tseba tsohle. Bakeng sa khokahano e hole, ke theha mosebelisi e mocha ho seva.

adduser vimssh

Ke hlahisa linotlolo tsa ssh ho lisebelisoa tsa rona.

ssh-keygen

'Me ke li kopitsa ho seva sa rona.

ssh-copy-id [email protected]

Ho Hardware ea rona, ke theha khokahano ea othomathike ea ssh ho boot bo bong le bo bong.

[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

Ela hloko port 8083: e khetha hore na ke tla sebelisa kou efe ho hokela ka ssh e khutlisetsang morao. E kenye ho qala le ho qala.

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

U ka bona boemo:

sudo systemctl status autossh.service

Joale, ho seva sa rona sa VPS, haeba re matha:

ssh -p 8083 khadas@localhost

Ebe ke fihla tekong ea ka ea hardware. 'Me ho tloha ho hardware ke khona ho romela li-log le data leha e le efe ka ssh ho seva sa ka, se bonolo haholo.

Ho kopanya kaofela

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE
Ho bulela, ha re qaleng nts'etsopele le ho lokisa liphoso

Phew, ke eona, ke hlalositse li-node tsohle. Jwale ke nako ya ho di kopanya kaofela. U ka bona khoutu hona mona.

Ntlha ea bohlokoa e nang le khoutu: Morero ona o ka 'na oa se ke oa qala tjena, hobane o ne o etselitsoe mosebetsi o itseng, oa mohaho o itseng. Le hoja ke fana ka khoutu ea mohloli, ke ntse ke tla hlalosa lintho tsa bohlokoa ka ho fetisisa mona, hantle ka har'a mongolo, ho seng joalo ho ke ke ha utloisisoa ka ho feletseng.

Qalong, ke qala gps, gpio mme ke qala khoele e arohaneng ea kemiso.

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

Sehlophisi se bonolo haholo: se shebahala ho bona hore na nako e fihlile ea ho romela melaetsa le hore na boemo ba hona joale ba phoso ke bofe. Haeba ho na le folakha ea phoso, joale re benya 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)

Karolo e thata ka ho fetisisa ea morero ona ke ho boloka khokahanyo ea ssh bakeng sa teko ka 'ngoe. Teko e 'ngoe le e' ngoe e kenyelletsa ho hlophisa bocha heke ea kamehla le seva sa DNS. Kaha ha ho motho ea balang, tseba hore terene ha e palame liporo tsa lehong. Mang kapa mang ea fumanang lehe la Paseka o fumana lipompong.

Ho etsa sena, ke theha tafole e arohaneng ea ho tsamaisa -set-mark 0x2 le molao oa ho tsamaisa sephethephethe.

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

U ka ithuta ho eketsehileng ka hore na e sebetsa joang bala sengoloeng sena.

Ka mor'a moo ke kena ho loop e sa feleng, moo nako le nako re fumanang lethathamo la li-modem tse hokahaneng (ho fumana hore na tlhophiso ea marang-rang e fetohile ka tšohanyetso).

network_list = getNetworklist()

Ho fumana lethathamo la marang-rang a marang-rang ho bonolo haholo.

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

Ka mor'a ho fumana lethathamo, ke beha liaterese tsa IP ho li-interfaces tsohle, joalokaha ke bontšitse setšoantšong se khaolong e buang ka modem.

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

Ebe ke feta feela sebopeho se seng le se seng ka loop. 'Me ke lokisa sebopeho se seng le se seng.

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

Ke hlahloba sebopeho sa ts'ebetso, haeba ho se na marang-rang, joale ke hlahisa liphoso. Haeba ho na le marang-rang, joale ke nako ea ho nka khato!

Mona ke lokisa ssh routing ho sebopeho sena (haeba se e-s'o etsoe), romela liphoso ho seva haeba nako e fihlile, romella li-logs 'me qetellong u tsamaise lebelo ka ho fetisisa' me u boloke lintlha ho faele ea 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()
#и далее тестируем скорость и сохраняем логи. 

Ho bohlokoa ho bolela mosebetsi oa ho theha reverse 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")

Mme ehlile, o hloka ho eketsa botle bona bohle ho qala. Ho etsa sena, ke theha file:

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

Mme ke ngola ho yona:

[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

Ke bulela autoloading mme ke qala!

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

Joale ke bona lintlha tsa se etsahalang ke sebelisa taelo ena:

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

Liphetho

Joale, ntho ea bohlokoa ka ho fetisisa ke hore, ho etsahetse'ng ka lebaka leo? Mona ke li-graph tse 'maloa tseo ke khonneng ho li nka nakong ea nts'etsopele le ts'ebetso ea ho lokisa liphoso. Li-graph li entsoe ho sebelisoa gnuplot ka mongolo o latelang.

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

Phihlelo ea pele e bile le opareitara ea Tele2, eo ke ileng ka e tsamaisa matsatsi a 'maloa.

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Mona ke sebelisitse seva ea ho lekanya e matla. Litekanyo tsa lebelo li sebetsa, empa li fetoha haholo, empa boleng bo bong bo ntse bo bonahala, 'me sena se ka fumanoa ka ho sefa data, mohlala, ka karolelano e tsamaeang.

Hamorao ke ile ka etsa li-graph tse ngata bakeng sa basebelisi ba bang ba mehala ea mehala. Tabeng ena, ho ne ho se ho ntse ho e-na le seva se le seng sa tlhahlobo, 'me liphetho le tsona li ne li thahasellisa haholo.

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Joalo ka ha u bona, sehlooho se pharalletse haholo bakeng sa lipatlisiso le ts'ebetso ea data ena, mme ho hlakile hore ha e tšoarelle libeke tse 'maloa tsa mosebetsi. Empa…

Sephetho sa mosebetsi

Mosebetsi o ile oa phethoa ka tšohanyetso ka lebaka la maemo ao ke neng ke se na matla a ho a laola. E 'ngoe ea mefokolo ea morero ona, ka maikutlo a ka, e ne e le modem, e neng e hlile e sa batle ho sebetsa ka nako e le' ngoe le li-modem tse ling, 'me e etsa maqheka a joalo nako le nako ha e laeloa. Bakeng sa merero ena, ho na le palo e kholo ea mefuta e meng ea modem; hangata li se li ntse li le ka sebopeho sa Mini PCI-e mme li kentsoe ka har'a sesebelisoa mme ho bonolo haholo ho li hlophisa. Empa eo ke pale e fapaneng ka ho felletseng. Morero ona o ne o thahasellisa ’me ke ne ke thabile haholo hore ebe ke khonne ho kopanela ho oona.

Teko ea lebelo ka nako e le 'ngoe ho modem tse ngata tsa LTE

Source: www.habr.com

Eketsa ka tlhaloso