Blynk local server on Windows

Supot Sae-Ea
Sep 21, 2017 · 5 min read

แบบใช้เองในบ้านนะ ไม่ได้ตั้งค่าเรื่อง SSL

สิ่งแรกที่ทำให้ผมปิดโปรแกรม Blynk ก็จำนวน Enery เริ่มต้นนี่แหละ ให้มาแค่ 10,000 วาง widget ไม่กี่ตัวก็หมดซะแล้ว ซื้อเพิ่มก็ได้ที่เรียกว่า Energy Pack เหมือนเหรียญใน Line ราคาก็ไม่รู้นะว่าแพงหรือป่าว x1000 ก็ 0.99 USD สูงสุดในการซื้อแต่ละครัั้ง x28,000 อยู่ที่ 19.99 USD

ทีนี้ก็ไม่รู้ว่าใจดีหรืออย่างไร Blynk ก็ให้สามารถสร้าง Blynk Server ได้เอง ความหมายคือ ไม่ต้องเชื่อมต่อกับ Blynk Server หลัก ให้แอปหันมาเชื่อมต่อกับ Blynk Server Local ก็คือเครื่องของเรานั่นแหละ

สิ่งที่ต้องการก็คือ

ติดตั้ง JDK (Java Development Kit)

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

ติ๊กที่ Accept License Agreement ก่อน ไม่งั้นไม่ให้โหลด เลือกเอาว่าเป็น Windows x86 หรือ windows x64

ได้ไฟล์มาก็ติดตั้งไปตามท้องเรื่องเลย

สร้างโฟลเดอร์เพื่อบรรจุไฟล์ต่างๆ

Download ไฟล์ server เก็บไว้ในโฟลเดอร์ที่สร้างไว้

https://github.com/blynkkk/blynk-server/releases/download/v0.27.1/server-0.27.1.jar

สร้างไฟล์ server.properties เก็บไว้ในโฟลเดอร์ที่สร้างไว้

#hardware mqtt port
hardware.mqtt.port=8440
#hardware ssl port
hardware.ssl.port=8441
#hardware plain tcp/ip port
hardware.default.port=8442
#http and web sockets port
http.port=8080
#https and web sockets port
https.port=9443
#application ssl port
app.ssl.port=8443
#address to bind to. by default bounded to all interfaces
listen.address=
#by default server uses embedded in jar cert to simplify local server installation.
#WARNNING DO NOT USE THIS CERTIFICATES ON PRODUCTION OR IN WHERE ENVIRNOMENTS REAL SECURITY REQUIRED.
#provide either full path to files either use '.' for specifying current directory. For instance "./myfile.crt"
server.ssl.cert=
server.ssl.key=
server.ssl.key.pass=
#by default System.getProperty("java.io.tmpdir")/blynk used
data.folder=
#folder for logs.
logs.folder=./logs
#log debug level. trace|debug|info|error. Defines how precise logging will be.
log.level=info
#maximum number of devices allowed per account
user.devices.limit=25
#maximum number of tags allowed per account
user.tags.limit=100
#defines maximum allowed number of user dashboards. Needed to limit possible number of tokens.
user.dashboard.max.limit=100
#defines maximum allowed widget size in KBs as json string.
user.widget.max.size.limit=20
#user is limited with 100 messages per second.
user.message.quota.limit=100
#maximum allowed number of notification queue. Queue responsible for processing email, pushes, twits sending.
#Because of performance issue - those queue is processed in separate thread, this is required due
#to blocking nature of all above operations. Usually limit shouldn't be reached.
notifications.queue.limit=5000
#Number of threads for performing blocking operations - push, twits, emails, db queries.
#Recommended to hold this value low unless you have to perform a lot of blocking operations.
blocking.processor.thread.pool.limit=6
#this setting defines how often we can send mail/tweet/push or any other notification. Specified in seconds
notifications.frequency.user.quota.limit=15
#this setting defines how often we can send webhooks. Specified in miliseconds
webhooks.frequency.user.quota.limit=1000
#this setting defines how big could be response for webhook GET request. Specified in kbs
webhooks.response.size.limit=72
#maximum size of user profile in kb's
user.profile.max.size=128
#number of strings to store in terminal widget
terminal.strings.pool.size=25
#number of strings to store in map widget
map.strings.pool.size=25
#number of strings to store in lcd widget
lcd.strings.pool.size=6
#maximum number of rows allowed
table.rows.pool.size=100
#period in millis for saving all user DB to disk.
profile.save.worker.period=60000
#period in millis for saving stats to disk.
stats.print.worker.period=60000
#specifies maximum period of time when hardware socket could be idle. After which
#socket will be closed due to non activity. In seconds. Default value 15 if not provided.
#leave it empty for infinity timeout
hard.socket.idle.timeout=15
#enable DB
enable.db=false
#enable raw data storage to DB
enable.raw.db.data.store=false
#size of async logger ring buffer. should be increased for loads >2-3k req/sec
async.logger.ring.buffer.size=2048
#initial amount of energy
initial.energy=10000000
#ADMINISTRATION SECTIONadmin.rootPath=/admin#used for reset password page and certificate generation.
#by default current server IP is taken. could be replaced with more friendly hostname.
#it is recommended to override this property with your server IP to avoid possible problems of host resolving
#server.host=test.blynk.cc
#email used for certificate registration, could be omitted in case you already specified it in mail.properties
#contact.email=
#network interface to determine server's current IP.
#only the first characters of the interface's name are needed.
#the default setting eth will use the first ethX interface found (i.e. eth0)
net.interface=eth
#comma separated list of administrator IPs. allow access to admin UI only for those IPs.
#you may set it for 0.0.0.0/0 to allow access for all.
#you may use CIDR notation. For instance, 192.168.0.53/24
allowed.administrator.ips=0.0.0.0/0,::/0
# default admin name and password. that will be created on initial server start
admin.email=admin@blynk.cc
admin.pass=admin
#comma separated list of users allowed to create accounts. leave it empty if no restriction required.
allowed.users.list=

ทดลองใช้งาน

เปิด command.com แบบ administrator ก่อนอื่นก็ไปที่โฟลเดอร์ที่เก็บไฟล์ต่างๆไว้ แล้วพิมพ์คำสั่ง

java -jar server-0.27.1.jar -dataFolder /Path

จะพบปัญหาว่าไม่พบโปรแกรม java ซึ่งต้องไปกำหนด path ในส่วนของ system ซึ่งจะไม่สอนในที่นี้ ให้ไปหาว่า java ติดตั้งไว้ที่ เช่น

C:\Program Files\Java\jdk1.8.0_144\bin

ให้พิมพ์เพิ่มนำหน้าคำว่า java เป็น

"C:\Program Files\Java\jdk1.8.0_144\bin\java" -jar server-0.27.1.jar -dataFolder /Path

สังเกตุว่าได้ใส่ “ “ คร่อมไว้ด้วย เพราะชื่อ path มีช่องว่าง

มาดูผลกัน

เปิดโปรแกรม Blynk และ Logout เพื่อจะเข้าไปใช้ Server ของเรา

ไปที่ Create New Account

กดที่รูปสามจุด เพื่อเข้าไปตั้งค่า server

ปรับให้ได้ตามรูป เปลี่ยน 192.168.1.7 เป็น IP ของเครื่องของเรา กดปุ่ม OK

E-mail และ Password ตามชอบ ตามด้วย Sign Up

สร้าง Project

โอ้โห Energy 10,000,000

ดูเนื้อหาในไฟล์ server.properties ว่า Energy 10,000,000 มาได้ยังไง

หมายเหตุ NodeMCU ต่อเข้ากับพอร์ท 8442

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade