@City IoT Cloud Platform
iSys - Sistem Cerdas IoT Solusi
IoE.Sistem
Daftar Isi
1. Pambuka. 5
1.1 Jinis piranti sing didhukung. 5
1.2. Jinis produk sing didhukung. 5
1.3. Protokol komunikasi sing didhukung 5
1.4. Teknologi Komunikasi Piranti sing Didhukung 6
1.5. @City Cloud Server 6
1.5.1. Gerbang server lan komunikasi 7
1.5.2 Integrasi HTTP LoRaWAN 7
1.5.3. Antarmuka ngarep 8
1.5.3. Hak akses server 8
1.6. Piranti cerdas 9
1.6.1. CIoT - Piranti GSM 9
1.6.3. BAS, BMS, IoT - Piranti Ethernet lan WiFi 9
1.6.2. Devices -LoRaWAN piranti 9
1.7. Opsi Bisnis menyang Bisnis (B2B) 9
2. @City IoT Fungsionalitas Platform 10
3. Kaca Utama 11
4. Formulir Utama 11
4.1. Header 12
4.1.1. Link Ngarep - (mbukak tabel asil nyata) 12
4.1.2. Kothak "X" - mbukak / nutup Formulir Query 12
4.1.3. Kothak "V" - mbukak / nutup Formulir 12
4.1.4. Ikon grafis - pranala menyang asil visualisasi (bisa diowahi) 12
4.2. Wangun: 12
4.2.1. Kothak centhang "X" - mbukak / nutup kabeh Formulir Query 12
4.2.2. CSS - Pilih Tema Visualisasi 12
4.2.3. Kothak Fields Visible - nuduhake / ndhelikake List Filter Field 12
4.2.4. Tab: Jeneng Tab kanggo nambah utawa mbusak 12
4.2.5. Tambah / Copot Tombol - Nambah utawa mbusak tab kanthi jeneng ing tab 12
4.2.6. Pilih Tombol Inti 12
4.2.7. Pilih kabeh Tombol 12
4.2.7. Pilih Kabeh Tombol 12
4.2.8. Singidaken Filter - Singidaken kabeh Formulir 12
4.2.9. Tombol Eksekusi - Ganti setelan paramèter 13
4.2.10. Kothak "V" - kolom show / filter dhuwur. 13
4.3. Tab 13
4.4. Isi Tabel 13
4.4.1. Run - asil tampilan tipe 13
4.4.2. Salin (+/- link) 13
4.4.3. Tautan Sel Tabel 13
4.5. Urutan Dhata 13
4.6. Tuladha 13
5. Peta 15
5.1. Inisialisasi Peta 15
5.2. Setelan Pilihan kanggo pitakon 15
5.2.1. Ubah skala MAP (Tingkat Zoom) 16
5.2.2. IMEI (Pilih Bidang Piranti) 16
5.2.3. Bidang koordinat Lon, Lat (Bujur, Latitude) 16
5.2.4. Ubah Gaya MAP (Tema) 16
5.2.5. KANA Klausa 16
5.2.6. Jalanake (Jalanake Tombol Pitakon) 16
5.2.7. Pilih kabeh (Copot kabeh kolom saka pitakon) 17
5.2.8. Kothak centhang "V" (Bukak / Tutup Formulir Field) 17
5.2.9. Kothak centhang "X" (Tampilake / Ndhelikake Formulir Query) 17
5.3. Tuladha 17
6. Tampilake Asil ing Tabel 18
6.1. Initialisasi tabel 18
6.2. Setelan Pilihan kanggo pitakon 19
6.2.1. Urut - urutake lapangan banjur pesen munggah / mudhun 19
6.2.2. DB / IMEI - Pilih Piranti 19
6.2.3. CSS - pilih gaya (Tema Visualisasi) 20
6.2.4. Lapangan sing Katon - Tampilake / Ndhelikake Formulir 20
6.2.5. Copot Kosong - Aja nampilake kolom kosong 20
6.2.6. Kothak centhang "X" (Tampilake / Ndhelikake Formulir Query) 20
6.2.7. Klausa (kanggo watesan data) 20
6.2.8. Pilih Tombol Inti (Aktifake kolom sing paling umum) 20
6.2.9. Pilih kabeh Tombol (Copot kabeh kolom saka pitakon) 20
6.2.10. Jalanake (Run Query Query) 20
6.2.11. Kothak centhang "V" (Bukak / Tutup Formulir Field) 20
7. Grafik Bar. 21
8. Grafik Sejarah. 22
8.1. Initialisasi diagram Sejarah 22
8.2. Pilihan Setelan Dhaptar Sejarah 23
8.2.1. IMEI - (Pilih Piranti kanggo nampilake data sejarah) 23
8.2.2. Min - matesi angka minimal lapangan kapisan 23
8.2.3. Maksimal - matesi nilai maksimal kolom kapisan 23
8.2.4. "V" - Tampilake / Ndhelikake Formulir 23
8.2.5. Saka: setel tanggal / wektu minimal (*) 23
8.2.6. Kanggo: nyetel tanggal / wektu maksimal (*) 23
8.2.7. Kothak centhang "X" (Tampilake / Ndhelikake Formulir Query) 23
8.2.8. "Endi" Klausa 23
8.2.9. Pilih kabeh Tombol (Copot kabeh kolom saka pitakon) 23
8.2.10. Jalanake (Run Query Query) 23
8.2.11. Kothak centhang "V" (Bukak / Tutup Formulir Field) 24
8.3. Varian Bar: (mung nampilake data) 24
8.4. Varian terus-terusan (kanthi data sing padha): 24
9. Kompatibilitas browser web 25
10. Kustomisasi Tema 26
11. Nganyari Algoritma 27
12. Struktur Basis Data 28
12.1. Struktur tabel "ithings_" lan "*" 29
12.2. Printah piranti (Acara) antrian tabel "* _c" - struktur 30
12.3. Ngakses asil saka basis data - Tingkat Tengah (Data Maca) 30
12.3.1. Entuk status saiki kabeh piranti 30
12.3.2. Goleki data Sejarah kanggo Piranti 31
12.3.3. Goleki dhaptar piranti - kolom siji saka status saiki kanthi watesan 32
@City IoT Cloud Platform wis didedikake "maya maya" sistem kanggo pelanggan individu. Platform ora bisa dituduhake lan mung siji pelanggan duwe akses menyang server fisik utawa virtual (VPS utawa server khusus). Pelanggan bisa milih salah siji saka puluhan pusat data ing Eropa utawa ing saindenging jagad.
Platform @City IoT darmabakti kanggo ngetutake produk iSys.PL
IoT - RF / LoRaWAN (Internet Prekara)
CIoT - GSM / 2G / 3G / 4G / CATM1 / NBIoT (Cell Internet of Things)
WiFi
Ethernet
@City (eCity) Cloud IoT Platform minangka macem-macem sistem ukuran kanggo produk IP IoT (diarani bebarengan @Kota Hardware utawa Piranti CioT ):
@KotaBandung
@Kringan
@Metering
@Lacak
@AirQ
@Bin
Platform @City IoT ndhukung protokol komunikasi ing ngisor iki:
UDP - disaranake kanggo sensor / piranti CIoT (utamane NBIoT) - panggunaan data paling murah
TCPIP - disaranake kanggo piranti kanthi komunikasi bidirectional - salaman / konfirmasi
HTTP - disaranake mung kanggo akses data / visualisasi / ekspor / "maya nganti awan"
HTTP Webhooks - kanggo komunikasi LoRaWAN antarane Jaringan / Aplikasi Aplikasi LoRaWAN lan @City Cloud.
Kirim data saka kontroler menyang server cloud lan kosok balene dienkripsi ing format binar sing unik kanggo ukuran data paling endhek lan nambah keamanan. Saben mitra entuk kunci enkripsi dhewe kanggo otorisasi piranti, mriksa validitas data, lsp.
Kanggo piranti non eHouse / eCity, kita bisa menehi kalkulus enkripsi individu ( "C" kode sumber) kanggo saben mitra mikroprosesor kanggo nglindhungi data sadurunge komunikasi.
Ing kasus iki data pancen aman sajrone komunikasi bidirectional liwat media komunikasi publik (internet, Air, lsp. ).
Platform @City IoT ndhukung:
GSM: 2G, 3G, 4G (LTE), CATM1 (LTEM1), NBIoT - piranti (komunikasi UDP / TCPIP)
Piranti LoRaWAN (HTTP Webhooks) - liwat gerbang LoRaWAN lan jaringan / server aplikasi LoRaWAN
Kontroler Ethernet (komunikasi UDP / TCP)
Kontroler WiFi (komunikasi UDP / TCP)
Produk IP mbesuk
Produk non IP liwat Gateway Hardware @ City / eHouse.PRO lokal
Platform @City IoT khusus kanggo piranti / simpul:
Produk iSys asli:
CIoT (GSM / 2G / 3G / 4G / CATM1 / NBIoT)
(LoRaWAN)
WiFi - produk khusus kanggo @City Platform
Ethernet - produk khusus kanggo @City Platform
Produk Co-Production (diprodhuksi dening pihak katelu kanthi lisensi iSys lan merek eksternal)
Produk waralaba (diprodhuksi dening pihak katelu kanthi lisensi iSys kanthi logo iSys)
Piranti lunak @City bisa digunakake ing Linux adhedhasar VPS (Virtual Private Server) utawa Dedicated Server ing sisih internet, gumantung saka kinerja sing dijaluk Server (diarani mengko Server):
akses pribadi / umum
piranti umume dietung
nganyari frekuensi status piranti
tingkat refresh data
Sawetara jinis VPS ana gumantung:
Regane
geo-lokalisasi pusat data
Inti prosesor virtual (1-8)
RAM Virtual (1-32GB)
Disk SSD (20GB-1TB)
Welasan server darmabakti ana gumantung:
Regane
geo-lokalisasi pusat data
Inti prosesor (4 .. 32)
RAM (16 .. 512GB)
SSD / HDD (256GB .. 8TB)
Platform @City IoT khusus kanggo siji konsumen:
pamrentah lokal lan panguwasa (Kutha, Komunitas, Negara)
B2B (kanggo pamilik pihak katelu)
Amarga ora bisa dituduhake Server ing antarane para pelanggan, mula disederhanakake akses keamanan lan masalah kinerja. Amarga alasan iki, mung pelanggan sing tanggung jawab keamanan, stabilitas, efisiensi, throughput data sing efektif, lsp. Yen kinerja ora cukup, pelanggan bisa tuku rencana sing luwih dhuwur (VPS utawa Dedicated Server), luwih optimal kanggo fungsi lan kinerja sing diarepake.
Ing kasus khusus "Cloud to cloud" komunikasi bisa uga diterapake kanggo globalisasi lan sentralisasi data menyang wilayah sing luwih gedhe tinimbang awan multi-pelanggan.
Komunikasi @City Server diwujudake adhedhasar aplikasi level rendah kanggo maksimalisasi kinerja.
Fitur utama aplikasi @City Server yaiku:
nampa data kanthi otomatis saka piranti (liwat protokol: UDP, TCP IP, HTTP)
minimalake panggunaan data lan biayane antarane piranti lan Cloud (kanthi nggunakake protokol komunikasi tingkat rendah UDP, TCP IP)
nampa status piranti sing ndhelik (liwat media komunikasi)
kuoso lan validasi data saka piranti kanthi ndekripsi status
decoding status piranti lan nganyari menyang tabel MariaDB / MySQL langsung (ing format data mentah)
tabel data saiki (ngemot mung status paling anyar kanggo saben piranti)
tabel data sejarah (ngemot kabeh status kanggo siji piranti)
kirim perintah (Acara) sing ditundha menyang piranti
njamin salaman, verifikasi lan konfirmasi
Piranti lunak @City Server padha kanggo saben pangguna lan ora bisa disesuaikan kanggo macem-macem pelanggan.
Kontroler LoRaWAN digabungake karo cloud @City liwat antarmuka HTTP (webhooks) sing kasedhiya ing jaringan / server aplikasi LoRaWAN.
Sawetara jinis jaringan / server aplikasi sing didhukung:
TTN (wektu winates "Ing Udhara" lan jumlah maksimum perintah sing dikirim menyang driver lan ora ndhukung upgrade firmware)
LoraWAN-Stack (Mbukak hosting ing piranti fisik kanthi akses internet).
LoraServer.Io (Mbukak hosting ing piranti fisik kanthi akses internet - mung ngirim data menyang server lan ora ndhukung upgrade firmware)
Cloud @City Cloud kanggo kontrol LoRaWAN dipisahake kanthi cara sing padha karo antarmuka liyane. Iki dibahas ing bab sadurunge.
Antarmuka front-end diwujudake kanthi skrip PHP kanggo ngekstrak data sing disesuaikan saka @City Cloud Database. Nggunakake mekanisme telusuran sing elastis, adhedhasar pitakon SQL asli kanggo matesi data sing dikarepake. Antarmuka nyedhiyakake asil query ing format JSON kanggo dekoding lan pangolahan luwih lanjut kanthi application Aplikasi "Web" Front-end Web.
Antarmuka ngarep asli padha kanggo saben pangguna lan ora bisa disesuaikan kanggo macem-macem pelanggan.
Antarmuka overlay bisa digawe dening staf utawa kerja sama kanggo njamin kustomisasi kanggo pelanggan.
Hak akses pelanggan (menyang Server fisik) diwatesi.
Akses file kanggo direktori "template" (file teks asli - .txt, .js, .css, .html):
nambah, mbusak, ngowahi file HTML murni (Front-End GUI / Pangembangan Antarmuka)
nambah, nyopot, ngowahi file pure murni (GUI Ngarep / Pangembangan Antarmuka lan Algoritma)
nambah, mbusak, ngowahi File CSS murni (Front-End - Tampilan / Tema khusus)
nambah, mbusak, ngowahi file teks template (Front-End GUI)
nambah, mbusak, ngowahi tab, trabasan, link menyang asil data
Hak akses liyane:
Akses lengkap menyang @City Cloud Database MySQL / MariaDB ing ngendi kabeh data piranti disimpen
Akses menyang Layanan Web ditetepake (kapercayan) kanggo pelanggan.
Pelanggan ora diidini ngirim kredensial menyang pihak katelu (sawetara akses asil bisa nyebabake kinerja, stabilitas lan keamanan sistem umume)
Ing kahanan khusus lan panggunaan Dedicated Server sing performa tinggi, akun publik bisa uga disiyapake kanggo ngamati data paling anyar (dudu sejarah).
Pangguna bisa duplikat data menyang server MySQL dhewe lan nganalisis lan ngolah data dhewe, supaya ora mengaruhi kinerja @City Server
iSys - Staf Sistem Cerdas - duwe akses tanpa wates menyang server lengkap kalebu akun root lan akses DB lengkap kanggo pangopènan.
Ing kahanan tartamtu, iSys bisa menehi hak winates kanggo pelanggan (skrip PHP, file) sawise mriksa kode sumber, mbukak tes, yen ora mengaruhi keamanan sistem, stabilitas lan kinerja sakabèhé.
Piranti kita ngemot mikrokontroler lan modul GSM / GPS / GNSS (2G..4G, NBIoT, CATM1) kanggo komunikasi. Microcontroller ngemot bootloader ndhelik kanggo nganyari firmware OTA sing aman. Iki nggawe macem-macem jinis sistem adhedhasar sing padha "Piranti CIoT Smart".
Kontroler Ethernet lan WiFi ngidini komunikasi adhedhasar IP menyang sistem (tanpa ngisi daya transfer data menyang operator GSM). Piranti iki uga ndhelik bootloader lan piranti bisa uga dianyari liwat antarmuka asline. Kanggo WiFi, nduwe upgrade firmware OTA saka server utama
LoRaWAN ngaktifake transmisi data ing jarak sing adoh banget (nganti udakara. 15km). Jangkoan iki gumantung saka kacepetan transmisi data, jumlah data, urbanisasi wilayah kasebut lan efisiensi jalur radio piranti.
Piranti kita kalebu mikrokontroler lan modul LoRaWAN kanggo komunikasi. Mikrokontroler ngemot bootloader sing dienkripsi kanggo nganyari piranti lunak OTA sing aman. Iki ngidini sampeyan nggawe macem-macem jinis sistem "IoT smart device". Piranti kasebut digunakake ing band mbukak ISM tanpa biaya langganan tambahan. Sampeyan kudu nggunakake LoRaWAN Gateways kanggo nutupi kabeh wilayah kanthi akses menyang Internet. Ing gerbang LoRaWAN sing ana ing kisaran piranti (dikonfigurasi kanggo server TTN), bisa dikirim liwat informasi kasebut. Nganyari firmware mbutuhake server LoRaWAN jaringan / aplikasi lan jangkoan komunikasi sing apik.
Ana sawetara opsi kanggo bisnis lan kerjasama:
produk siap impor / ekspor (papan tombol, piranti) - produk pungkasan
ngimpor / ngekspor produk OEM (PCB, kontrol, lsp) - produk menengah, suku cadang
franchise - produksi adhedhasar lisensi kanggo pasar lokal (mung nyedhiyakake mikrokontroler sing diprogram) ing iSys - Merek Sistem Cerdas
Produksi Co - (kaya ing ndhuwur) nanging ing Merek eksternal
Platform @City ndhukung template Front-End sing bisa disesuaikan kanggo visualisasi data, pitakon, watesan lan proses (Data saiki / riwayat):
nggambarake data sing dipilih ing peta (geo-lokalisasi)
nuduhake data lan asil sing dipilih ing tabel
nuduhake data sing dipilih ing diagram bar
nuduhake data sing dipilih ing grafik sejarah
ngekspor data menyang aplikasi pihak katelu lan pangolahan luwih lanjut
fungsi liyane bakal dianyari ing panjaluk individu.
Front-End pangguna bisa diakses liwat IP statis utawa domain pangalihan / subdomain / file DNS yen kasedhiya.
Instalasi Teladan & Demo (Mung diaktifake kanggo calon pelanggan).
Mangga wenehake nalika sampeyan pengin nyoba - kanggo ngaktifake akses publik menyang platform.
Sampeyan bisa mbutuhake IP statis saka komputer remot kanggo ngaktifake komunikasi menyang platform @City.
Kaca utama dibuwang kanthi sengaja kanthi alesan keamanan: http: //% YourIP% / IoT /
Bisa uga diaktifake kanthi individu lan diowahi lan ngemot tautan menyang kabeh layanan sing kasedhiya @City IoT Platform yen dibutuhake
Formulir Utama dimaksudake kanggo nggawe prasetel lan tab anyar: http: //%IP%/IoT/que.php
Iki minangka formulir awal kanggo nggawe asil, tampilan lan tab kanggo saben konfigurasi
Katrangan (Saka ndhuwur lan kiwa menyang tengen)
Ngowahi file CSS Tema Visualisasi kudu ana ing "template / css /" direktori - didaftar kanthi otomatis.
Pilih kolom utama sing katon ing tabel. Iku dianyari kanthi otomatis
Pilih kabeh kolom (kudu diikuti kanthi milih sawetara kanthi manual)
Pilih kabeh kolom (kudu ditututi kanthi batal pilih sawetara kanthi manual)
Iki padha karo kabeh kothak centhang (X)
Tab sing digawe kanthi individu nganggo jeneng lan prasetel (disimpen ing cfg / tabs.cfg file).
File kasebut pancen ngemot jeneng lan URL (dipisahake karo tab char).
Nampilake kabeh kolom sing diwatesi dening Filter Filter.
Lapangan ing tabel:
peta- asil pemetaan ing peta (siji utawa luwih lapangan bisa dipilih)
sejarah - denah sajarah (bisa dipilih siji utawa luwih lapangan)
tab - nampilake tabel (kombinasi lapangan bisa dipilih)
bar - mung siji kolom ditampilake ing grafik batang
Nalika mencet salah sawijining regane, bakal mbukak asil anyar kanthi kolom sing dipilih (kanggo baris saiki).
Nambahake / mbusak Tab kanthi jeneng wis disetel Tab lapangan Mung nggunakake kolom sing dipilih ing baris sing padha karo tabel.
Mencet jeneng lapangan liyane bakal miwiti Visualisasi Data kolom sing dipilih kanggo larik sing dipilih.
Urutan kolom sing ditampilake minangka urutan ing bentuk kolom (nanging tm lapangan mesthi dikirim menyang pungkasan teks). Pesenan iki mung bisa diganti kanthi nyunting langsung paramèter URL (kolom bagean pesenan).
Contone: Setelan Tab karo Pelacakan Aset jeneng lan ngemot peta kanthi wektu lan kacepetan ing peta
Kabeh katrangan sing nuduhake larik ing endi "Map" teks ana ing "Mbukak" kolom
Ketik jeneng "Pelacakan Aset" ing Tab lapangan (tanpa tandha petik)
Priksa manawa kabeh kolom ora dipilih ing baris
pilih tm, gps_speed_km mung saurutan
penet + tombol ngendi ing baris
Peta bisa diluncurake saka MainForm kanthi konfigurasi pra
Inisialisasi peta ditindakake kanthi manual nalika dieksekusi kanthi langsung karo tautan: > http: //%IP%/IoT/maps.php
Pangguna kudu Pilih kabeh kolom (Pencet Batal pilihan Tombol)
Pencet sawetara kothak centhang kanggo kothak sing ditampilake (eg. Ain5 (kanggo level Smog) lan tm (kanggo pangukuran tanggal / wektu)
penet "V" kothak centhang kanggo ndhelikake formulir kothak
penet Nglakokke tombol kanggo mbukak query DB lan nampilake informasi saiki saka kabeh sensor / piranti
Peta kanthi data dianyari sawise 30 detik utawa luwih.
Setelan diterangake saka kiwa menyang tengen (ing gambar ndhuwur).
Tingkat zoom bisa uga diowahi nganggo tombol (+/-) kanggo skala (current_scale * 2 utawa current_scale / 2). Pencet salah siji tombol iki bakal kanthi otomatis ngowahi skala.
Cara liya yaiku pilih Level Zoom ing Zoom Lapangan Combo Box banjur pencet Nglakokke tombol Ing kasus iki kabeh Tampilan / Peta dimuat maneh lan disegarkan (butuh wektu sajrone inisialisasi).
IMEIkolom ngemot ID unik piranti utawa alias Unik kanggo piranti. Setelan gawan yaiku * (tanda bintang) sing nuduhake angka lan geolokasi paling anyar kanggo saben piranti.
Nyetel IMEI menyang nilai liyane, bakal nuduhake data sejarah piranti sing dipilih. Mung duwe arti kanggo sensor seluler lan obah, yen ora asil bakal tumpang tindih ing peta ing posisi sing padha.
Setel posisi tengah peta. Kolom iki disetel menyang posisi kursor nalika tombol mouse dipencet ing peta.
Gaya peta / tema bisa dipilih Map Lapangan ComboBox (contone, Peteng, Grey, Topografi).
Macem-macem tema peta bisa uga duwe level zoom maksimal beda supaya bisa ngetrapake Tema sing tepat kanggo nambah skala peta.
Klausa digunakake kanggo string query tambahan {WHERE part} kanggo MySQL / MariaDB.
Klausa iki ditrapake kanggo nggawe string QUERY lengkap kanggo asil basis data. Iki bisa uga matesi data, wektu lan nilai liyane kanthi matesi jumlah asil. Jeneng lapangan tabel asli (dudu alias) kudu digunakake ing lapangan iki. Contone
gps_speed_km> 10 // kacepetan luwih saka 10km / jam
ain5> 3 // ain5 luwih gedhe tinimbang 3 (ngitung partikel 2.5um - level smog)
gps_speed_km> 10 lan ain6> 5 // kacepetan luwih saka 10km / jam lan ain6 luwih gedhe tinimbang 5 (nyekel jumlah partikel 10um - level asap)
Pencet tombol iki dibutuhake kanggo ngganti setelan, parameter (kajaba pencet +/- tombol).
Peta dimuat wiwit wiwitan karo prasetel anyar.
Peta ora dimuat babar pisan, yen ora ana data sing kasedhiya kanggo pitakon saiki.
Sawise mencet tombol iki, paling ora siji lapangan kudu dipilih kanthi manual kanggo nampilake asil ing peta.
Kothak iki digunakake kanggo nuduhake / ndhelikake pamilih lapangan sing bakal ditampilake.
Kothak iki ngidini ndhelikake kabeh Formulir kajaba ( +/- tombol)
Asil ing peta terus disegarkan lan dianyari kanthi nilai anyar
Hasil Eg Smog (Sensor diinstal ing mobil): Partikel level 2.5um asap (Ain5), Kecepatan (gps_speed_km), Tanggal / Wektu (tm), peta (2 - topografi), level zoom 16,
Klausa endi:
"gps_fix = 3 lan tm> "2019-02-18 00:00:00" lan tm <"2019-02-19 00:00:00" lan gps_speed_km> 0".
// GPS = asil 3D sing bener & tanggal = 2019-02-18 & kacepetan> 0 km / h
Tampilake asil ing tabel.
On "Formulir Utama" penet "meja" item, sawise milih sawetara lapangan kanggo nampilake tabel sing wis diatur
Nalika tabel mbukak saka link http: //%IP%/IoT/que.php? func = tab mbutuhake dhisikan setelan sadurunge.
Sampeyan bisa milih kolom sing bisa dideleng (kanthi pencet "Lapangan sing Katon" ) kothak centhang.
Pencet kabeh kothak sing dibutuhake kanggo kolom sing ditampilake
Pencet kothak "Lapangan sing Katon" kanggo ndhelikake formulir lapangan
Pencet tombol Eksekusi kanggo mbukak query lan tabel tampilan DB
Setelan diterangake saka kiwa menyang tengen (ing gambar).
Kolom sortir padha karo tekanan header kolom.
IMEIkolom ngemot ID unik piranti utawa alias Unik kanggo piranti. Kanthi nilai kosong, nuduhake tabel nilai paling anyar.
Nyetel IMEI menyang nilai liyane, bakal nuduhake data sejarah piranti sing dipilih.
Iki minangka sufiks kanggo string pitakon tambahan MySQL / MariaDB {WHERE part}
Klausa iki dijupuk kanggo nggawe string QUERY lengkap kanggo asil basis data. Iki bisa uga matesi data, wektu lan nilai liyane kanthi matesi jumlah asil. Jeneng lapangan tabel asli (dudu alias) kudu digunakake ing lapangan iki. Contone
gps_speed_km> 10 // kacepetan luwih saka 10km / jam
ain5> 3 // ain5 luwih gedhe tinimbang 3 (ngitung partikel 2.5um - level smog)
gps_speed_km> 10 lan ain6> 5 // kacepetan luwih saka 10km / jam lan ain6 luwih gedhe tinimbang 5 (nyekel jumlah partikel 10um - level asap)
Sawise mencet tombol iki, paling ora siji lapangan kudu dipilih kanthi manual kanggo nampilake asil ing peta.
Pencet tombol iki dibutuhake kanggo ngganti setelan, parameter (kajaba pencet +/- tombol).
Tabel dimuat maneh saka wiwitan kanthi prasetel anyar.
Kothak iki digunakake kanggo nuduhake / ndhelikake pamilih lapangan sing bakal ditampilake.
Asil ing tabel diurutake miturut Urut setting lapangan. Urutan urutan bisa diganti kanthi mencet header baris (sapisan kanggo siji arah kaping pindho kanggo arah liyane).
Sawetara asil ing kolom nyambung menyang layar visualisasi luwih (kode hard).
Nalika nampilake data historis kanggo piranti, mesthine kudu diwatesi supaya ora nampilake informasi riwayat amarga bisa nyebabake kinerja utawa masalah memori.
Bagan bar kudu dileksanakake saka Formulir Utama kanthi mencet kolom siji ing baris "Bar".
Nampilake bar sing diurutake sing dinormalisasi dadi nilai maksimal, ditampilake saka urutan paling dhuwur nganti paling endhek.
Iku migunani kanggo mriksa asil ekstrem kanthi cepet lan njupuk tindakan.
Acara Mouse Over bakal nampilake informasi tambahan kanggo piranti kasebut.
Bagan sejarah bisa diwiwiti saka MainForm nalika pencet kolom sing dipilih ing baris "Sejarah" (kanggo kolom siji).
Kanggo Multiple kolom ing kolom "Sejarah" kolom sing dikepengini kudu dicenthang lan tautan "Sejarah" kudu dipencet ing kolom "Run".
Asil sejarah diwatesi nganti 24 jam + sabanjure 24 jam (kanggo diagram pungkasan sing bakal disegarkan), nalika ora ana watesan sing disiyapake.
Bagan sejarah nalika dibukak saka tautan utama mbutuhake inisialisasi minangka asil liyane, yen mbukak saka tautan tanpa parameter preferensi.
Multiple lapangan bisa dipilih kanggo nampilake macem-macem item. Uga bisa disetel ing Formulir Filter lapangan.
Pencet kabeh kothak sing dibutuhake kanggo kolom sing ditampilake
Pencet kothak "Lapangan sing Katon" kanggo ndhelikake formulir lapangan
Pencet tombol Eksekusi kanggo mbukak query DB lan nampilake tabel
Barang sing dijelasake saka ndhuwur lan saka kiwa nengen (ing gambar).
IMEIkolom ngemot ID unik piranti utawa alias Unik kanggo piranti. Kanthi nilai * (asterix) nuduhake tabel angka paling anyar sing ora ana artine.
Nyetel IMEI menyang nilai liyane, bakal nuduhake data sejarah piranti sing dipilih.
Klausa kanggo matesi asil data MySQL / MariaDB string query tambahan {bagean WHERE}.
Klausa iki ditrapake kanggo nggawe string QUERY lengkap kanggo asil basis data. Iki bisa uga matesi data, wektu lan nilai liyane kanthi matesi jumlah asil. Jeneng lapangan tabel asli (dudu alias) kudu digunakake ing kolom iki lan sintaks SQL sing valid. Contone
gps_speed_km> 10 // kacepetan luwih saka 10km / jam
ain5> 3 // ain5 luwih gedhe tinimbang 3 (ngitung partikel 2.5um - level smog)
gps_speed_km> 10 lan ain6> 5 // kacepetan luwih saka 10km / jam lan ain6 luwih gedhe tinimbang 5 (nyekel jumlah partikel 10um - level asap)
Sawise pencet tombol iki, paling ora siji lapangan kudu dipilih kanthi manual kanggo nampilake asil sejarah.
Pencet tombol iki dibutuhake kanggo ngganti setelan, parameter (kajaba nuduhake kolom utawa panel pitakon). Tabel dimuat maneh saka wiwitan kanthi prasetel anyar.
Kothak iki digunakake kanggo nuduhake / ndhelikake pamilih lapangan sing bakal ditampilake.
Nilai tampilan mouse pointer kanggo pangukuran lan tanggal / wektu.
Fungsi / Browser WWW | Chrome 72 | FireFox 65 | Edge | Opera 58 |
Peta | + | + | + | + |
Sejarah | + | + (*) | + | + |
Bar | + | + | + | + |
Tab | + | + | + | + |
* - Firefox ora ndhukung pemilih tanggal / wektu (kolom teks kudu diowahi kanthi manual nggunakake format wektu tanggal sing tepat).
Internet Explorer ora didhukung (digunakake Edge tinimbang)
Browser web liyane ora dites.
Kaca web adhedhasar file template umum sing ana ing "template" direktori "* .Conto".
Kajaba iku, saben jinis kaca ngemot:
File "* .head" sing nyimpen header kaca (tautan, CSS impor, JavaScript File, lsp. )
File "* .foot" sing nyimpen sikil ing kaca (tautan lsp. )
Tema Visualisasi bisa diganti miturut pilihan pangguna kanthi ngatasi lan ngowahi file CSS. File CSS ana ing "template / css" direktori Tema Kaca Web sing beda bisa digunakake kanggo dioptimalake kanggo eg. cithakan, template SmartPhones, PADs.
Table tampilan - duwe lapangan sing bisa dipilih kanggo milih file CSS kanggo modifikasi lengkap tema (disimpen ing "template / css / tab" direktori).
Map views - tema umum dipilih dening "peta" kothak combo jinis. Kajaba iku, ana file CSS standar "template / css / map.css" sing ngemot sawetara fungsi tambahan kaya asil ndhelikake / pewarnaan adhedhasar regane. Sisa file CSS iki praktis diwatesi kanggo pitakon lan formulir lapangan.
Umume @Kota Platform File PHP kanggo visualisasi ditampa cssparameter kanthi nilai jeneng file kanggo Tema (tanpa ekstensi). File kudu ana ing direktori "template / css" lan jeneng kasebut peka.
Sawetara elemen tampilan Tema dununge langsung ing file located sing ana ing "template / js" direktori
Utama @KotaBandung skrip"@ City.js" ana ing direktori ndhuwur. Ora ana kemungkinan modifikasi ing babagan iki lokasi, nanging skrip bisa disalin menyang "template / js" direktori lan modifikasi ing kana. Panganggone skrip individu mbutuhake nganyari kabeh file header.
Sawetara sensor unik bisa uga mbutuhake fungsi pitungan khusus.
Ora ana kemungkinan nganyari lan njaga macem-macem jinis Piranti Lunak Server @City, Antarmuka PHP ngarep, sing bakal nyebabake akeh masalah, versi, kesalahan.
Cara paling apik lan paling gampang kanggo nggayuh, yaiku nganyari file "overlay" kanggo tampilan sing cocog karo nilai / deskripsi.
Skrip JS asli minangka file teks sing mbukak lan bisa uga diadopsi kanggo kabutuhan pelanggan. Kaya sing wis ditulis ing bab sadurunge, kudu disalin "template / js" direktori ing ngendi pelanggan duwe hak akses kanggo modifikasi.
Aspek teknis ing program saka @KotaBandung sistem ora dadi subyek dokumen iki, nanging pangembang Web sing duwe pengetahuan dhasar babagan HTML lan JS bisa ngatur aplikasi Web Front-end kanggo kabutuhan pelanggan.
@City Database kanthi jeneng "IoT" utawa "* IoT" dipérang ing tabel (ing endi asterix awalan gumantung karo server hosting - yen dibutuhake). DataBase bisa uga diamati ing PHPAdmin (aplikasi web) ing link http: //% IP% / phpmyadmin
Tables Set kanggo saben Piranti (ing pundi * {asterix} yaiku alamat IMEI - ID unik):
"* _t" - token kanggo otorisasi pangguna saiki (ora digunakake kanggo awan Single-Pelanggan)
"* _c" - antrian perintah (Acara) - kanggo dikirim menyang piranti
"*" - kabeh asil status sing diuripake
Tabel liyane:
"ithings_" tabel - ngemot status saiki sing diuripake kanggo kabeh piranti (disalin nalika nganyari salah siji "*" tabel). Struktur saka wicaksono meja meh padha karo "*" tabel "ithings_" duwe kolom tambahan kanggo Alamat Pos lan katrangan.
Tabel "pangguna" diwatesi lan kudu diowahi.
"idx" - indeks
"tm" - tandha wektu otomatis
"dt" - tandha wektu unix
"imei" - alamat piranti unik
"rssi" - Tingkat sinyal RSSI
"rsrp" - Sinyal RSRP
"acara" - nunggu acara sing bakal dikirim menyang controller
"metu1" .. "metu16" - status output sing diuripake
"in1" .. "in16" - status input sing diuripake
"ain1" .. "ain8" - angka ADC sing diurai (RAW)
"sens1" .. "sens8" - nilai sensor sing diowahi (gumantung karo jinis piranti)
"dimm1" .. "dimm8" - angka dimmer sing diurai (gumantung saka jinis piranti)
"int1" .. "int6" - angka counters sing diurai (gumantung saka jinis piranti)
"teks1" .. "teks6" - angka teks sing diurai (gumantung saka jinis piranti)
"titah" - tanggal / wektu nggawe piranti
"pungkasan" - tanggal / wektu pungkasan
"pangguna" - panggunaan mbesuk
"pass" - panggunaan mbesuk
"sn" - gsm serial nr
"status" - status kontrol saiki ora di decode ing format hex
"hash_code" - panggunaan mbesuk
"addr" - alamat piranti cekak
"fwnr" - firmware nr
"dipateni" - piranti dipateni (ora ditindakake)
"gsm_nr" - Nomer gsm CIoT
"vendor" - kode vendor (kanggo franchise / co-produksi)
"zona wektu" - Time Zone diimbangi
"dst" - Gunakake setelan tabungan Saben Dina
"gps_lat" - Latitude GPS
"gps_long" - Bujur GPS
"gps_hdop" - GPS HDOP
"gps_alt" - Altitude GPS
"gps_fix" - Fixation GPS (kudu 3 - kanggo asil sing bener)
"gps_cog" - GPS Cog
"gps_speed_km" - Kacepetan GPS ing [km / jam]
"gps_sat" - satelit GPS ditemokake
"bawana", "negara", "wilayah", "subregion", "subsubregion", "city", "district", "street", "street_nr", "item_nr" - Bidang alamat lan deskripsi pelanggan (!!!! Ora kasedhiya kanggo "*" tabel sajarah)
"log" - data log
Jeneng lapangan penting kanggo nggawe pitakon SQL kanggo nambah fungsi telusuran amarga jeneng asli kudu digunakake ing Pratelan SQL.
Tabel iki minangka antrian acara / prentah kanggo saben piranti lan duwe struktur kaya ing ngisor iki:
"prentah" - prentah kanggo ngirim utawa wis dikirim menyang kontrolir
"dikonfirmasi" - flag konfirmasi yen wis dikirim lan dikonfirmasi
"tanggal" - unix timestamp acara
"dianyari" - flag update otomatis (tanggal / wektu wektu)
Data bisa diakses tanpa aplikasi Web Front-end. Sistem @City ngemot skrip kanthi fungsi level menengah. Asil bali ing format JSON.
http: //%IP%/IoT/que.php? func = devsjson
Query ngasilake kabeh "_ithings" tabel (status saiki kabeh piranti) ing JSON Format:
[{ "negara":"", "kutha":"", "bawana":"", "negara":"", "wilayah":"", "subregion":"", "subsubregion":"", "kutha":"", "kabupaten":"", "dalan":"", "street_nr":"", "item_nr":"", "gps_lat":"0000,0000N", "gps_long":"00000.0000E", "tm":"2019-02-10 12:56:23", "titah":"2019-02-09 18:12:38", "pungkasan":"0000-00-00 00:00:00", "acara":"", "pangguna":"", "nglewati":"", "imei":"351580051067110", "sn":"", "status":"73000200000f360033026800240000002c002c002dffffffffffffff5b63000001c1000001c2000000000000000009250a4f0a760a7a0a750a780a7e0000031d032205fc34029b025c025600460eb305320000", "hash_code":"", "addr":"", "fwnr":"", "dipatèni":"", "gsm_nr":"", "vendor":"", "zona wektu":"", "dst":"", "rssi":"91", "rsrp":"99", "gps_lat":"0000,0000N", "gps_long":"00000.0000E", "gps_hdop":"", "gps_alt":"", "gps_fix":"4", "gps_cog":"", "gps_speed_km":"", "gps_sat":"", "acara":"", "metu1":"0", "metu2":"0", "metu3":"0", "metu4":"0", "metu5":"0", "metu6":"0", "metu7":"0", "metu8":"0", "metu9":"0", "metu10":"1", "metu11":"0", "metu12":"0", "metu13":"0", "metu14":"0", "metu15":"0", "metu16":"0", "in1":"0", "ing2":"0", "ing3":"0", "ing4":"0", "ing5":"0", "ing6":"0", "ing7":"0", "ing8":"0", "ing9":"0", "ing10":"0", "ing11":"0", "ing12":"0", "ing13":"0", "ing14":"0", "ing15":"0", "in16":"0", "ain1":"3894", "ain2":"51", "ain3":"616", "ain4":"36", "aing5":"0", "ain6":"44", "ain7":"44", "ain8":"45", "sens1":"0", "sens2":"0", "sens3":"0", "sens4":"0", "sens5":"0", "sens6":"0", "sens7":"0", "sens8":"0", "dimm1":"255", "dimm2":"255", "dimm3":"255", "dimm4":"255", "dimm5":"255", "dimm6":"255", "dimm7":"255", "dimm8":"255", "int1":"-16776767", "int2":"450", "int3":"", "int4":"", "int5":"", "int6":"0", "teks1":"", "teks2":"", "teks3":"", "teks4":"", "teks5":"", "teks6":"" }]
Data sajarah pitakon saka piranti siji dening IMEI nr:
http: //%IP%/IoT/que.php? func = imeijson & imei = 356345080018095
Amarga kabeh tabel bisa uga ngemot jutaan larik, mula kudu diwatesi karo klausa WHERE supaya ora bisa nggantung server.
Parameter url paramèter tambahan:
func - imeijson
imei - IMEI piranti
lapangan - kolom sing bakal ditampilake ing asil (dhaptar pisah koma)
min - Nilai minimal kanggo lapangan kapisan saka dhaptar
maks - Nilai maksimal kanggo kolom kapisan saka dhaptar
sutawat - lapangan kanggo Urut
tm - kolom kanthi otomatis ditambahake ing asil.
where - ing endi klausa kanggo matangi data
Tuladha:
Kita pengin asil ing ngisor iki
kanggo piranti karo imei=356345080018095
nuduhake lapangan: ain5, ain6, gps_lat, gps_long
lan matesi aing5 ing sawetara ( 1, 10000 ) - kudu dadi lapangan pertama ing dhaptar
lan gps duwe data sing bener (gps_fix = 3)
lan tanggal / wektu (tm) from2019-02-14 23:00:19 to 2019-02-15 00:00:00
String URL sing digawe:
http: //%IP%/IoT/que.php? func =imeijson& imei =356345080018095& lapangan =aing5, ain6, gps_lat, gps_long& min =1& maks =1000& endi =gps_fix = 3 lan tm> "2019-02-14 23:00:19" lan tm <"2019-02-15 00:00:00"
Asil Query:
[{ "aing5":"66","ain6":"68","gps_lat":"5202.7326N","gps_long":"02115.8073E","tm":"2019-02-14 23:04:31" }, { "aing5":"67","ain6":"76","gps_lat":"5202.7328N","gps_long":"02115.8075E","tm":"2019-02-14 23:05:42" }, { "aing5":"63","ain6":"77","gps_lat":"5202.7328N","gps_long":"02115.8074E","tm":"2019-02-14 23:06:05" }, { "aing5":"58","ain6":"77","gps_lat":"5202.7328N","gps_long":"02115.8075E","tm":"2019-02-14 23:06:32" }, { "aing5":"58","ain6":"68","gps_lat":"5202.7328N","gps_long":"02115.8076E","tm":"2019-02-14 23:06:55" }]
Fungsi iki ngasilake data winates saka tabel "_ithings"
http: //%IP%/IoT/que.php? func = fieldjson & field = ain5 & min = 13 & max = 5000
Paramèter:
func - lapanganjson
lapangan - kolom sing bakal ditampilake ing asil - imei lan tm ditambahake kanthi otomatis
min - Nilai minimal kanggo lapangan
maks - Nilai maksimal kanggo lapangan
Kanggo string query ing ndhuwur bakal ngasilake asil saka ain5, imei, tm lapangan:
yen aing5 ana ing jangkoan (13.5000)
Asil Query:
[{"imei":"353080090069142", "tm":"2019-03-14 11:51:01", "aing5":"14" },
{"imei":"356345080018095", "tm":"2019-02-20 09:13:04", "aing5":"115" },
{"imei":"karczew", "tm":"2019-03-07 13:08:22", "aing5":"103" }]