Blynk Server - mrolarik/simple-iot GitHub Wiki
** Blynk** - เป็นแอปพลิเคชันบนโทรศัพท์มือถือ (Mobile Application) สำหรับระบบ Internet of Things (IoT) สามารถติดตั้งได้ทั้งระบบ Android และ ios จึงทำให้สามารถควบคุมการทำงานของบอร์ด ESP8266, Arduino, Raspberry Pi และ SparkFun ได้ผ่านระบบอินเทอร์เน็ต โดยแอปพลิเคชันผู้ใช้สามารถเลือก Widget ที่ต้องการใช้งานมาวางบนหน้าจอโดยที่ทำงานแบบกราฟิก (Graphic Interface) ทำให้สามารถสร้าง dashboard เพื่อควบคุมอุปกรณ์ IoT ได้ง่ายมากขึ้น
ที่มา https://twitter.com/blynk_app
หากติดตั้ง Blynk ลงบนมือถือและทำการสร้าง dashboard จะพบว่าในแต่ละ Widget จะมีค่าคะแนน (Point) ที่ไม่เท่ากัน ดังนั้น การใช้แต่ละ Widget ในการสร้าง dashboard ผู้ใช้จึงมีคะแนนจำกัดทำให้ไม่สามารถสร้าง dashboard ได้ตามความต้องการมากนัก เช่น แอปพลิเคชัน Blynk มีคะแนนให้ 1000 คะแนน Widget การสร้างปุ่มเปิดปิดไฟ อาจใช้คะแนน 200 คะแนน ทำให้เกิดข้อจำกัดในการสร้าง dashboard
วิธีการแก้ไขเรื่องของคะแนนสามารถทำได้โดยติดตั้ง Blynk Server ซึ่งจะทำให้ผู้ใช้มีคะแนนที่ไม่จำกัด สามารถสร้าง dashboard ได้ตามต้องการ
การติดตั้งโปรแกรม Blynk Server
มีขั้นตอนดังต่อไปนี้
ติดตั้งโปรแกรม Java
Blynk Server
พัฒนาโดยใช้ภาษาJava
ดังนั้นเครื่อง Server ที่จะใช้งานจะต้องติดตั้ง Java โดยทำการติดตั้งดังนี้
$ sudo apt-get install oracle-java10-installer
ผลลัพธ์จากการติดตั้ง
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
snap-confine
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
gsfonts-x11 oracle-java10-set-default
Suggested packages:
visualvm ttf-baekmuk | ttf-unfonts | ttf-unfonts-core ttf-kochi-gothic
| ttf-sazanami-gothic ttf-kochi-mincho | ttf-sazanami-mincho
ttf-arphic-uming
The following NEW packages will be installed:
gsfonts-x11 oracle-java10-installer oracle-java10-set-default
0 upgraded, 3 newly installed, 0 to remove and 182 not upgraded.
Need to get 39.1 kB of archives.
After this operation, 229 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://th.archive.ubuntu.com/ubuntu xenial/universe amd64 gsfonts-x11 all 0.24 [7,314 B]
Get:2 http://ppa.launchpad.net/linuxuprising/java/ubuntu xenial/main amd64 oracle-java10-installer amd64 10.0.2-1~linuxuprising+2 [29.1 kB]
Selecting previously unselected package oracle-java10-installer.
(Reading database ... 253649 files and directories currently installed.)
Preparing to unpack .../oracle-java10-installer_10.0.2-1~linuxuprising+2_amd64.deb ...
Unpacking oracle-java10-installer (10.0.2-1~linuxuprising+2) ...
Processing triggers for hicolor-icon-theme (0.15-0ubuntu1) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu5.2) ...
Processing triggers for bamfdaemon (0.5.3~bzr0+16.04.20180209-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
...
using default oracle-java10-installer wgetrc settings for it.
Downloading Oracle Java 10...
--2018-08-01 17:49:27-- http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.tar.gz
Resolving download.oracle.com (download.oracle.com)... 23.35.251.176
Connecting to download.oracle.com (download.oracle.com)|23.35.251.176|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://edelivery.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.tar.gz [following]
--2018-08-01 17:49:31-- https://edelivery.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.tar.gz
Resolving edelivery.oracle.com (edelivery.oracle.com)... 104.90.226.191, 2600:1417:4f:18f::2d3e, 2600:1417:4f:181::2d3e
Connecting to edelivery.oracle.com (edelivery.oracle.com)|104.90.226.191|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.tar.gz?AuthParam=1533190751_54b29311e0c55105ba5ebbcdeaf2b235 [following]
--2018-08-01 17:49:32-- http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.tar.gz?AuthParam=1533190751_54b29311e0c55105ba5ebbcdeaf2b235
Connecting to download.oracle.com (download.oracle.com)|23.35.251.176|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 354870097 (338M) [application/x-gzip]
Saving to: ‘jdk-10.0.2_linux-x64_bin.tar.gz’
0K ........ ........ ........ ........ 9% 3.91M 78s
32768K ........ ........ ........ ........ 18% 4.04M 69s
65536K ........ ........ ........ ........ 28% 3.86M 62s
98304K ........ ........ ........ ........ 37% 4.00M 53s
131072K ........ ........ ........ ........ 47% 4.07M 45s
163840K ........ ........ ........ ........ 56% 3.93M 37s
196608K ........ ........ ........ ........ 66% 3.78M 29s
229376K ........ ........ ........ ........ 75% 4.00M 21s
262144K ........ ........ ........ ........ 85% 3.80M 13s
294912K ........ ........ ........ ........ 94% 3.87M 5s
327680K ........ ........ .. 100% 3.95M=86s
2018-08-01 17:50:59 (3.92 MB/s) - ‘jdk-10.0.2_linux-x64_bin.tar.gz’ saved [354870097/354870097]
Download done.
Removing outdated cached downloads...
update-alternatives: using /usr/lib/jvm/java-10-oracle/bin/appletviewer to provide /usr/bin/appletviewer (appletviewer) in auto mode
update-alternatives: using /usr/lib/jvm/java-10-oracle/bin/idlj to provide /usr/bin/idlj (idlj) in auto mode
update-alternatives: using /usr/lib/jvm/java-10-oracle/bin/jaotc to provide /usr/bin/jaotc (jaotc) in auto mode
...
update-alternatives: using /usr/lib/jvm/java-10-oracle/bin/jcontrol to provide /usr/bin/jcontrol (jcontrol) in auto mode
update-binfmts: warning: current package is oracle-java9, but binary format already installed by openjdk-8
Oracle JDK 10 installed
#####Important########
To set Oracle jdk10 as default, install the "oracle-java10-set-default" package.
E.g.: sudo apt install oracle-java10-set-default.
Selecting previously unselected package oracle-java10-set-default.
(Reading database ... 253677 files and directories currently installed.)
Preparing to unpack .../oracle-java10-set-default_10.0.2-1~linuxuprising+2_amd64.deb ...
Unpacking oracle-java10-set-default (10.0.2-1~linuxuprising+2) ...
Selecting previously unselected package gsfonts-x11.
Preparing to unpack .../gsfonts-x11_0.24_all.deb ...
Unpacking gsfonts-x11 (0.24) ...
Processing triggers for fontconfig (2.11.94-0ubuntu1.1) ...
Setting up oracle-java10-set-default (10.0.2-1~linuxuprising+2) ...
Setting up gsfonts-x11 (0.24) ...
- เมื่อติดตั้งเสร็จเรียบร้อยให้พิมพ์คำสั่ง
java --version
เพื่อตรวจสอบเวอร์ชันของ java
$ java --version
java 10.0.2 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)
ติดตั้ง Blynk Server
- ดาวน์โหลดไฟล์ Blynk Server ได้จากเว็บไซต์ https://github.com/blynkkk/blynk-server/releases/download/v0.39.4/server-0.39.4-java8.jar
- จากนั้นคัดลอก (copy) ไฟล์ไปไว้ในโฟลเดอร์ที่ต้องการ จากตัวอย่างได้ดาวน์โหลดไฟล์เก็บไว้ในโฟลเดอร์
Downloads
- สร้างโฟลเดอร์ชื่อ
blynkserver
เพื่อใช้สำหรับเก็บ log file โดยพิมพ์คำสั่งดังต่อไปนี้
$ cd
$ mkdir blynkserver
จากทั้งหมดข้างต้น เป็นการเตรียมความพร้อมในการทำงานของ Blynk Server จากนั้นสามารถใช้งาน Blynk Server ได้ดังนี้
การทำงานของ Blynk Server
- หากต้องการให้ Blynk Server ทำงานต้องเปิด Terminal และพิมพ์คำสั่งดังต่อไปนี้
$ java -jar /home/ubuntu/Downloads/server-0.39.4-java8.jar -dataFolder /home/ubuntu/blynkserver/
โดย
-jar
/home/ubuntu/Downloads/server-0.39.4-java8.jar คือตำแหน่งที่จัดเก็บไฟล์ Blynk Server ซึ่งเป็น .jar ไฟล์-dataFolder
/home/ubuntu/blynkserver/ คือตำแหน่งที่ใช้จัดเก็บ Data และ Log File
เมื่อรันคำสั่งข้างต้น จะปรากฎดังต่อไปนี้
Blynk Server 0.39.5-SNAPSHOT successfully started.
All server output is stored in folder '/home/ubuntu/logs' file.
Your Admin url is https://127.0.1.1:9443/admin
Your Admin login email is [email protected]
Your Admin password is admin
จากคำสั่งเบื้องต้นแสดงว่า Blynk Server พร้อมสำหรับการทำงาน
เปิด Web Browser
- จากนั้นให้เปิดเว็บบราวเซอร์และพิมพ์ที่
url
ดังนี้
https://127.0.1.1:9443/admin
- หากต้องการเปลี่ยนจาก
127.0.1.1
เป็น ip address ของเครื่อง Server สามารถค้นหาหมายเลข ip address ดังนี้
$ ifconfig
...
eno1 Link encap:Ethernet HWaddr f4:6d:04:2c:c2:15
inet addr:10.33.1.20 Bcast:10.33.1.255 Mask:255.255.255.0
inet6 addr: fe80::2c6f:2539:4c1b:fbcd/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28226238 errors:0 dropped:0 overruns:0 frame:0
TX packets:10334003 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13174871541 (13.1 GB) TX bytes:3593987093 (3.5 GB)
Interrupt:18 Memory:fb600000-fb620000
- จากนั้นที่ Web Browser ให้เปลี่นที่ url เป็น
https://10.33.1.20:9443/admin
- ทั้งนี้ Blynk Server ทำงานบนโปรโตคอล
https
หากพิมพ์http
จะทำให้ไม่สามารถเข้าหน้าเว็บไซต์ของ Blynk ได้ - จากนั้นให้กรอก
Email address
และPassword
สุดท้ายแล้วให้คลิกที่ปุ่มSign in
- โดยที่
Email address
คือ[email protected]
และpassword
คือadmin
- หากหมายเลข ip address ที่ใช้งานเป็นหมายเลข ip address จริงสามารถที่จะเข้าถึงได้จากทุกมุมโลง ดังนั้น Blynk Server ของเราก็สามารถเข้าถึงได้จากทุกมุมโลกเช่นกัน
ยกเลิกการทำงานของ Blynk Server
การยกเลิกการทำงานของ Blynk Server สามารถทำได้โดยกลับไปที่หน้า Terminal ที่รันคำสั่ง java -jar /home/ubuntu/Downloads/server-0.39.4-java8.jar -dataFolder /home/ubuntu/blynkserver/
จากนั้นให้กด ctrl+c
เพื่อยกเลิกการทำงาน ดังต่อไปนี้
$ ctrl + c
Catch shutdown hook.
Stopping servers...
Shutting down Hardware SSL server...
Shutting down HTTP API and WebSockets server...
Shutting down HTTPS API, WebSockets and Admin server...
Shutting down Mqtt hardware server...
Stopping scheduler...
Closing all sockets...
Stopping Transport Holder...
Stopping aggregator...
Stopping BlockingIOProcessor...
Stopping DBManager...
Saving user profiles...
Done.
รายละเอียดเพิ่มเติม