Blynk已经被官方回收不再开源

参考来源 https://github.com/blynkkk/blynk-server/

大部分适用于X86/64/ARM的linux平台

文中所用的实际环境和材料

  • Ubuntu:16.04 (X86/64),ARM和Windows说明请看这里
  • Blynk:0.41.12
  • 单片机:esp8266

1. 下载服务器包

地址:https://github.com/blynkkk/blynk-server/releases

下载

具体的目录和路径自己安排,这里是:/home/BlynkServer

sudo wget https://github.com/blynkkk/blynk-server/releases/download/v0.41.12/server-0.41.12.jar

解压

sudo tar zxvf server-0.41.12.jar


2. 安装依赖库

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update -q
sudo apt install -y openjdk-11-jdk

如果不成功,如下操作(安装包换成JAVA8版本):

sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

如果出现apt-add-repository找不到命令无法安装则先运行:

sudo apt-get install software-properties-common


3.HTTP/S API的端口转发

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 9443


4.在启用QR生成(不需要二维码分享的可以省略)

sudo apt-get install libxrender1


5.快速设置服务器

保证你目前是使用 java 11

运行

java -version

输出提示

java version "11"

单片机硬件默认端口是:"8080" ,客户端端口为:"9443" (SSL port)

运行参数:

java -jar server-0.41.12.jar -dataFolder /path

例如:

java -jar /home/ubuntu/blynk/server-0.41.6.jar -dataFolder /home/ubuntu/blynk

其中:/home/ubuntu/blynk是存放server-0.41.6.jar的路径,-dataFolder是指定存放数据的参数


6.开启在开机时自动运行

:编辑/etc/rc.local文件,然后加入一下命令语句:

运行:sudo nano /etc/rc.local

java -jar /home/pi/server-0.41.12-java8.jar -dataFolder /home/pi/Blynk &

如果发现开机没有成功启动服务器,则可以:

运行sudo crontab -e

在加入下面语句

java -jar /home/pi/server-0.41.12-java8.jar -dataFolder /home/pi/Blynk &

保存后结束即可

附一段使用ESP8266(NodeMCU\D1 mini)的测试代码,上传至单片机后通过串口观察是否连接成功即可:

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "YourAuthToken";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "YourNetworkName";
char pass[] = "YourPassword";

void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin((auth, ssid, pass,"chrisxs.top", 8080);
  //如果Blynk.begin不可以,尝试一下代码
  //Blynk.config(auth, ssid, pass,"chrisxs.top", 8080);
  //Blynk.config(auth, ssid, pass, IPAddress(192,168,1,100), 8080);如果你没有域名,或者使用的是内外

  //一般情况都是使用Blynk.begin
  //Blynk.begin(auth, ssid, pass);

  //官方服务器链接
  //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);

  //如果你没有域名,或者使用的是内网IP
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
}

void loop()
{
  Blynk.run();
}

一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。