@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


1. Pambuka.

@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.

1.1 Jinis piranti sing didhukung.

Platform @City IoT darmabakti kanggo ngetutake produk iSys.PL



1.2. Jinis produk sing didhukung.

@City (eCity) Cloud IoT Platform minangka macem-macem sistem ukuran kanggo produk IP IoT (diarani bebarengan @Kota Hardware utawa Piranti CioT ):


1.3. Protokol komunikasi sing didhukung

Platform @City IoT ndhukung protokol komunikasi ing ngisor iki:

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


1.4. Teknologi Komunikasi Piranti sing didhukung

Platform @City IoT ndhukung:


Platform @City IoT khusus kanggo piranti / simpul:


1.5. @City Cloud Server

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


Sawetara jinis VPS ana gumantung:


Welasan server darmabakti ana gumantung:


Platform @City IoT khusus kanggo siji konsumen:


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.

1.5.1. Gerbang server lan komunikasi

Komunikasi @City Server diwujudake adhedhasar aplikasi level rendah kanggo maksimalisasi kinerja.

Fitur utama aplikasi @City Server yaiku:

Piranti lunak @City Server padha kanggo saben pangguna lan ora bisa disesuaikan kanggo macem-macem pelanggan.

1.5.2 Integrasi HTTP LoRaWAN

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.

1.5.3. Antarmuka ngarep-mburi

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.

1.5.3. Hak akses server

Hak akses pelanggan (menyang Server fisik) diwatesi.

Akses file kanggo direktori "template" (file teks asli - .txt, .js, .css, .html):

Hak akses liyane:


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é.


1.6. Piranti sing cerdas

1.6.1. CIoT - piranti GSM

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


1.6.3. BAS, BMS, IoT - Piranti Ethernet lan WiFi


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


1.6.2. IoT - Piranti LoRaWAN

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.

1.7. Opsi Bisnis menyang Bisnis (B2B)


Ana sawetara opsi kanggo bisnis lan kerjasama:

2. @City IoT Fungsi Platform

Platform @City ndhukung template Front-End sing bisa disesuaikan kanggo visualisasi data, pitakon, watesan lan proses (Data saiki / riwayat):


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.


3. Kaca Utama

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


4. Formulir Utama

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)

4.1. Header

4.1.1. Link Ngarep - (mbukak tabel asil nyata)

4.1.2. "X" kothak centhang - mbukak / nutup Formulir Query

4.1.3. "V" kothak centhang - mbukak / nutup Formulir Fields

4.1.4. Ikon grafis - tautan menyang asil visualisasi (bisa diowahi)


4.2. Formulir:

4.2.1. "X" kothak centhang - mbukak / nutup kabeh Formulir Query

4.2.2. CSS - Pilih Tema Visualisasi

Ngowahi file CSS Tema Visualisasi kudu ana ing "template / css /" direktori - didaftar kanthi otomatis.

4.2.3. Lapangan sing Katon kothak centhang - nuduhake / ndhelikake Daftar Filter Kolom

4.2.4. Tab: Jeneng Tab kanggo nambah utawa mbusak

4.2.5. Tambah / Copot Tombol - Nambah utawa mbusak tab kanthi jeneng ing Tab lapangan

4.2.6. Pilih Inti Tombol

Pilih kolom utama sing katon ing tabel. Iku dianyari kanthi otomatis

4.2.7. Pilih kabeh Tombol

Pilih kabeh kolom (kudu diikuti kanthi milih sawetara kanthi manual)

4.2.7. Pilih Kabeh Tombol

Pilih kabeh kolom (kudu ditututi kanthi batal pilih sawetara kanthi manual)

4.2.8. Singidaken Filter - Singidaken kabeh Formulir

Iki padha karo kabeh kothak centhang (X)

4.2.9. Nglakokke Tombol - Owahi setelan paramèter

4.2.10. "V" kothak centhang - kolom show / filter dhuwur.


4.3. Tab

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


4.4. Isi Tabel

Nampilake kabeh kolom sing diwatesi dening Filter Filter.


Lapangan ing tabel:

4.4.1. Mbukak - jinis asil tampilan

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


4.4.2. Salin (+/- link)

Nambahake / mbusak Tab kanthi jeneng wis disetel Tab lapangan Mung nggunakake kolom sing dipilih ing baris sing padha karo tabel.


4.4.3. Tautan Cell Tabel

Mencet jeneng lapangan liyane bakal miwiti Visualisasi Data kolom sing dipilih kanggo larik sing dipilih.


4.5. Pesenan Data


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


4.6. Tuladhane

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

  1. Ketik jeneng "Pelacakan Aset" ing Tab lapangan (tanpa tandha petik)

  2. Priksa manawa kabeh kolom ora dipilih ing baris

  3. pilih tm, gps_speed_km mung saurutan

  4. penet + tombol ngendi ing baris






5. Peta

Peta bisa diluncurake saka MainForm kanthi konfigurasi pra


5.1. Initialisasi Peta

Inisialisasi peta ditindakake kanthi manual nalika dieksekusi kanthi langsung karo tautan: > http: //%IP%/IoT/maps.php


  1. Pangguna kudu Pilih kabeh kolom (Pencet Batal pilihan Tombol)

  2. Pencet sawetara kothak centhang kanggo kothak sing ditampilake (eg. Ain5 (kanggo level Smog) lan tm (kanggo pangukuran tanggal / wektu)

  3. penet "V" kothak centhang kanggo ndhelikake formulir kothak

  4. penet Nglakokke tombol kanggo mbukak query DB lan nampilake informasi saiki saka kabeh sensor / piranti

  5. Peta kanthi data dianyari sawise 30 detik utawa luwih.


5.2. Setelan Pilihan kanggo pitakon

Setelan diterangake saka kiwa menyang tengen (ing gambar ndhuwur).

5.2.1. Ubah skala MAP (Tingkat Zoom)

  1. 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.

  2. 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).

5.2.2. IMEI (Pilih Lapangan Piranti)

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.


5.2.3. Lon, Lat (Bidang koordinat Bujur, Latitude)

Setel posisi tengah peta. Kolom iki disetel menyang posisi kursor nalika tombol mouse dipencet ing peta.


5.2.4. Ubah Gaya MAP (Tema)

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.


5.2.5. KANA Klausa

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

  1. gps_speed_km> 10 // kacepetan luwih saka 10km / jam

  2. ain5> 3 // ain5 luwih gedhe tinimbang 3 (ngitung partikel 2.5um - level smog)

  3. gps_speed_km> 10 lan ain6> 5 // kacepetan luwih saka 10km / jam lan ain6 luwih gedhe tinimbang 5 (nyekel jumlah partikel 10um - level asap)


5.2.6. Nglakokke (Jalanake Tombol Pitakon)

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.

5.2.7. Pilih kabeh (Copot kabeh kolom saka pitakon)

Sawise mencet tombol iki, paling ora siji lapangan kudu dipilih kanthi manual kanggo nampilake asil ing peta.


5.2.8. "V" Kothak (Bukak / Tutup Formulir Lapangan)

Kothak iki digunakake kanggo nuduhake / ndhelikake pamilih lapangan sing bakal ditampilake.


5.2.9. "X" Kothak (Tampilake / Ndhelikake Formulir Query)

Kothak iki ngidini ndhelikake kabeh Formulir kajaba ( +/- tombol)


Asil ing peta terus disegarkan lan dianyari kanthi nilai anyar

5.3. Tuladhane

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



6. Tampilake Asil ing Tabel

Tampilake asil ing tabel.

On "Formulir Utama" penet "meja" item, sawise milih sawetara lapangan kanggo nampilake tabel sing wis diatur




6.1. Initialisasi tabel

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.



  1. Pencet kabeh kothak sing dibutuhake kanggo kolom sing ditampilake

  2. Pencet kothak "Lapangan sing Katon" kanggo ndhelikake formulir lapangan

  3. Pencet tombol Eksekusi kanggo mbukak query lan tabel tampilan DB


6.2. Setelan Pilihan kanggo pitakon

Setelan diterangake saka kiwa menyang tengen (ing gambar).

6.2.1. Urut - ngurutake lapangan lan supaya munggah / mudhun

Kolom sortir padha karo tekanan header kolom.

6.2.2. DB / IMEI - Pilih Piranti

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.


6.2.3. CSS - pilih gaya (Tema Visualisasi)

6.2.4. Lapangan sing Katon - Tampilake / Ndhelikake Formulir Fields

6.2.5. Mbusak Kosong - Aja nampilake kolom kosong

6.2.6. "X" Kothak (Tampilake / Ndhelikake Formulir Query)

6.2.7. Endi Klausa (kanggo watesan data)

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

  1. gps_speed_km> 10 // kacepetan luwih saka 10km / jam

  2. ain5> 3 // ain5 luwih gedhe tinimbang 3 (ngitung partikel 2.5um - level smog)

  3. gps_speed_km> 10 lan ain6> 5 // kacepetan luwih saka 10km / jam lan ain6 luwih gedhe tinimbang 5 (nyekel jumlah partikel 10um - level asap)


6.2.8. Pilih Inti Tombol (Aktifake lapangan sing paling umum)


6.2.9. Pilih kabeh Tombol (Copot kabeh kolom saka pitakon)

Sawise mencet tombol iki, paling ora siji lapangan kudu dipilih kanthi manual kanggo nampilake asil ing peta.


6.2.10. Nglakokke (Jalanake Tombol Pitakon)

Pencet tombol iki dibutuhake kanggo ngganti setelan, parameter (kajaba pencet +/- tombol).

Tabel dimuat maneh saka wiwitan kanthi prasetel anyar.



6.2.11. "V" Kothak (Bukak / Tutup Formulir Lapangan)

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.


7. Grafik Bar.

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.


8. Grafik Sejarah.

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.

8.1. Initialisasi denah Sejarah


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.




  1. Pencet kabeh kothak sing dibutuhake kanggo kolom sing ditampilake

  2. Pencet kothak "Lapangan sing Katon" kanggo ndhelikake formulir lapangan

  3. Pencet tombol Eksekusi kanggo mbukak query DB lan nampilake tabel


8.2. Setelan Pilihan kanggo Grafik Sejarah

Barang sing dijelasake saka ndhuwur lan saka kiwa nengen (ing gambar).

8.2.1. IMEI - (Pilih Piranti kanggo nampilake data sejarah)

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.

8.2.2. Min - matesi nilai minimal lapangan pertama

8.2.3. Max - matesi nilai maksimal kolom kapisan

8.2.4. "V" - Tampilake / Ndhelikake Formulir Fields

8.2.5. Saka: Nyetel tanggal / wektu minimal (*)

8.2.6. Kanggo: nyetel tanggal / wektu tanggal maksimal (*)

8.2.7. "X" Kothak (Tampilake / Ndhelikake Formulir Query)

8.2.8. "Endi" Klausa

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

  1. gps_speed_km> 10 // kacepetan luwih saka 10km / jam

  2. ain5> 3 // ain5 luwih gedhe tinimbang 3 (ngitung partikel 2.5um - level smog)

  3. gps_speed_km> 10 lan ain6> 5 // kacepetan luwih saka 10km / jam lan ain6 luwih gedhe tinimbang 5 (nyekel jumlah partikel 10um - level asap)


8.2.9. Pilih kabeh Tombol (Copot kabeh kolom saka pitakon)

Sawise pencet tombol iki, paling ora siji lapangan kudu dipilih kanthi manual kanggo nampilake asil sejarah.


8.2.10. Nglakokke (Jalanake Tombol Pitakon)

Pencet tombol iki dibutuhake kanggo ngganti setelan, parameter (kajaba nuduhake kolom utawa panel pitakon). Tabel dimuat maneh saka wiwitan kanthi prasetel anyar.

8.2.11. "V" Kothak (Bukak / Tutup Formulir Lapangan)

Kothak iki digunakake kanggo nuduhake / ndhelikake pamilih lapangan sing bakal ditampilake.


8.3. Bar Varian: (mung nampilake data sing kasedhiya)



8.4. Suwine varian (kanthi data sing padha):



Nilai tampilan mouse pointer kanggo pangukuran lan tanggal / wektu.

9. Kompatibilitas browser web


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.



10. Kustomisasi Tema

Kaca web adhedhasar file template umum sing ana ing "template" direktori "* .Conto".

Kajaba iku, saben jinis kaca ngemot:

  1. File "* .head" sing nyimpen header kaca (tautan, CSS impor, JavaScript File, lsp. )

  2. 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.

11. Nganyari Algoritma


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.


12. Struktur Basis Data


@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):

Tabel liyane:



12.1. Struktur tabel "ithings_" lan "*"

12.2. Printah piranti (Acara) antrian tabel "* _c" - struktur


Tabel iki minangka antrian acara / prentah kanggo saben piranti lan duwe struktur kaya ing ngisor iki:



12.3. Ngakses asil saka basis data - Tingkat Tengah (Maca Data)


Data bisa diakses tanpa aplikasi Web Front-end. Sistem @City ngemot skrip kanthi fungsi level menengah. Asil bali ing format JSON.


12.3.1. Entuk status saiki kabeh piranti

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":"" }]

12.3.2. Goleki data Sejarah kanggo Piranti kasebut

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" }]

12.3.3. Goleki dhaptar piranti - kolom siji saka status saiki kanthi watesan

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" }]