Обсуждаем развертываение и настройку локального сервера Blynk
https://github.com/blynkkk/blynk-server
https://github.com/blynkkk/blynk-server
да вроде нетТема мертва?
А проблема то в чем?В общем настроить blynk через облако и поморгать лампочками, проблемы не составило. А вот настроить локальный сервер что то не получается
Делал так:
1. Скачал исходник с гитхаба "server-0.11.2"
2. Установил на джаву и запустил сервер через CMD "
java -jar server-0.11.2.jar -dataFolder /path
"
3. Порадовался сообщению "Blynk Server successfully started."
4. Далее в преложении на смарте настроил подключение к серверу по IP (ip адрес ПК на котором запустил сервер и порт 8443)
5. Зашел на сервер, только почему то с логином и паролем с которыми регистрировался в облаке, не понимаю он что при заходе на локальный сервер подтягивает данные авторизации из облака?
По карайней мере если отключить локальный сервер, то приложение уже не заходит или напротив заходит если обрубить интернет.
Всё удалось.Я так понимаю не у кого так и не удалось запустить локальный сервер Blynk, опять тухлая тема...
Да. И в конфигах сервера прописывать имя и пароль.У меня локальный сервер запустился, но при вводе пароля в приложении Blynk пишет, что не верное имя пользователя или пароль. К облачному серверу с этим паролем коннектится нормально.
Подскажите, для локального сервера надо новый аккаунт создавать?
А подскажите, плз, подробнее порядок действий, по шагам, к каких файлах и что прописывать надо для локального сервера.Да. И в конфигах сервера прописывать имя и пароль.
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <BlynkSimpleUserDefined.h>
#include <DHT.h>
#include <SPI.h>
#include <SimpleTimer.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "9f6b50ad57894fe7b3fd07035c17f8b1";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "mvn77_home";
char pass[] = "";
IPAddress server_ip (192, 168, 0, 254);
// Mac address should be different for each device in your LAN
byte arduino_mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
IPAddress device_ip (192, 168, 0, 80);
IPAddress dns_ip ( 8, 8, 8, 8);
IPAddress gateway_ip (192, 168, 0, 1);
IPAddress subnet_mask(255, 255, 255, 0);
#define DHTPIN 2 // What digital pin we're connected to
// Uncomment whatever type you're using!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21 // DHT 21, AM2301
DHT dht(DHTPIN, DHTTYPE);
SimpleTimer timer;
// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// You can send any value at any time.
// Please don't send more that 10 values per second.
Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);
}
void setup()
{
Serial.begin(9600);
// Setup WiFi network
WiFi.config(device_ip, gateway_ip, subnet_mask);
WiFi.begin(ssid, pass);
dht.begin();
Blynk.begin(auth, server_ip, 8442 );
Blynk.connect();
// Setup a function to be called every second
timer.setInterval(1000L, sendSensor);
}
void loop()
{
Blynk.run(); // Initiates Blynk
timer.run(); // Initiates SimpleTimer
}
while(Blynk.connect() == false) {// Setup WiFi network
WiFi.config(device_ip, gateway_ip, subnet_mask);
WiFi.begin(ssid, pass);
dht.begin();
Blynk.begin(auth, server_ip, 8442 );
Blynk.connect();
[/code]
while(Blynk.connect() == false) {
Blynk.begin(auth, "_ESSID_", "password_wifi", IPAddress(192,168,0,1));
delay(3000);
}
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <BlynkSimpleUserDefined.h>
#include <DHT.h>
#include <SPI.h>
#include <SimpleTimer.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "9f6b50ad57894fe7b3fd07035c17f8b1";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "mvn77_home";
char pass[] = "";
IPAddress server_ip (192, 168, 0, 254);
// Mac address should be different for each device in your LAN
byte arduino_mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
IPAddress device_ip (192, 168, 0, 80);
IPAddress dns_ip ( 8, 8, 8, 8);
IPAddress gateway_ip (192, 168, 0, 1);
IPAddress subnet_mask(255, 255, 255, 0);
#define DHTPIN 2 // What digital pin we're connected to
// Uncomment whatever type you're using!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21 // DHT 21, AM2301
DHT dht(DHTPIN, DHTTYPE);
SimpleTimer timer;
// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// You can send any value at any time.
// Please don't send more that 10 values per second.
Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);
}
void setup()
{
Serial.begin(9600);
// Setup WiFi network
while(Blynk.connect() == false) {
Blynk.begin(auth, "_ESSID_", "password_wifi", IPAddress(192,168,0,254));
delay(3000);
}
Blynk.connect();
// Setup a function to be called every second
timer.setInterval(1000L, sendSensor);
}
void loop()
{
Blynk.run(); // Initiates Blynk
timer.run(); // Initiates SimpleTimer
}
In file included from D:\Temp\arduino_modified_sketch_919716\sketch_dec26a.ino:4:0:
C:\Users\mvn77\Documents\Arduino\libraries\Blynk\src/BlynkSimpleUserDefined.h:77:34: error: conflicting declaration 'BlynkTransportUserDefined _blynkTransport'
static BlynkTransportUserDefined _blynkTransport;
Если скетч не секретны скинь пожалуйста - а то уже мозг взорвался лопатить примеры что бы это чудо запустить.
// DS18B20_1 - Arduino
//
// Continually measures temperatures at three points using the Dallas DS18B20 on three
// separate Arduino pins.
//
// Uses the parasitic power mode
//
// Displays to a serial LCD operating at 9600 baud.
//
// Arduino Board DS18B20
//
// +5 VDC
// |
// 4.7K
// 8 ---------------- |----- 2 (DQ) Note that terms 1 and 3 are grounded.
//
// 7 ---- same as above
// 6 ---- same as above
//
// Tx ---------------------------- To Serial LCD (LCD #117)
//
// copyright, Peter H Anderson, Baltimore, MD, May 5, '07
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
int n, dev_channel[2] = {0, 2}, _1W_Pin;
char auth[] = "00000000000000000000000000000000"; //
IPAddress myip;
char myIpString[24];
void setup()
{
// int n, dev_channel[2] = {0, 2}, _1W_Pin;
Serial.begin(250000);
while(Blynk.connect() == false) {
Blynk.begin(auth, "ESSID", "password", IPAddress(192,168,0,1));
delay(3000);
Serial.print(".");
}
myip = WiFi.localIP();
sprintf(myIpString, "%d.%d.%d.%d", myip[0], myip[1], myip[2], myip[3]);
for (n=0; n<2; n++)
{
_1W_Pin = dev_channel[n];
digitalWrite(_1W_Pin, LOW);
pinMode(_1W_Pin, INPUT);
}
}
BLYNK_WRITE(V2) // There is a Widget that WRITEs data to V1
{
// r = param[0].asInt(); // get a RED channel value
// Serial.print("\nSLIDER 1: ");
// Serial.println(r);
// lcd.setCursor(14,1);
// lcd.print(" ");
// lcd.print(r);
// lcd.print(" ");
}
void loop()
{
int HighByte, LowByte, TReading, SignBit, Tc_100, Whole, Fract;
Blynk.run(); // Initiates Blynk
for (n=0; n<2; n++)
{
_1W_Pin = dev_channel[n];
OneWireReset(_1W_Pin);
OneWireOutByte(_1W_Pin, 0xcc, 0);
OneWireOutByte(_1W_Pin, 0x44, 1);
OneWireReset(_1W_Pin);
OneWireOutByte(_1W_Pin, 0xcc, 0);
OneWireOutByte(_1W_Pin, 0xbe, 0);
LowByte = OneWireInByte(_1W_Pin);
HighByte = OneWireInByte(_1W_Pin);
TReading = (HighByte << 8) + LowByte;
SignBit = TReading & 0x8000;
if (SignBit)
{
TReading = (TReading ^ 0xffff) + 1;
}
Tc_100 = (6 * TReading) + TReading / 4;
Whole = Tc_100 / 100;
Fract = Tc_100 % 100;
if(n)Blynk.virtualWrite(V0, Whole);
else Blynk.virtualWrite(V1, Whole);
Serial.print(Whole);
Serial.print(".");
if (Fract < 10)
{
Serial.print("0");
}
Serial.println(Fract);
delay(1000);
}
}
void OneWireReset(int _1W_Pin)
{
digitalWrite(_1W_Pin, LOW);
pinMode(_1W_Pin, OUTPUT);
delayMicroseconds(500);
pinMode(_1W_Pin, INPUT);
delayMicroseconds(500);
}
void OneWireOutByte(int _1W_Pin, byte d, byte strong)
{
byte n;
for(n=8; n!=0; n--)
{
if ((d & 0x01) == 1)
{
digitalWrite(_1W_Pin, LOW);
pinMode(_1W_Pin, OUTPUT);
delayMicroseconds(5);
pinMode(_1W_Pin, INPUT);
delayMicroseconds(60);
}
else
{
digitalWrite(_1W_Pin, LOW);
pinMode(_1W_Pin, OUTPUT);
delayMicroseconds(60);
pinMode(_1W_Pin, INPUT);
}
d=d>>1;
}
if(strong)
{
digitalWrite(_1W_Pin, HIGH);
pinMode(_1W_Pin, OUTPUT);
//delay(1000);
pinMode(_1W_Pin, INPUT);
digitalWrite(_1W_Pin, LOW);
}
}
byte OneWireInByte(int _1W_Pin)
{
byte d, n, b;
for (n=0; n<8; n++)
{
digitalWrite(_1W_Pin, LOW);
pinMode(_1W_Pin, OUTPUT);
delayMicroseconds(5);
pinMode(_1W_Pin, INPUT);
delayMicroseconds(5);
b = digitalRead(_1W_Pin);
delayMicroseconds(50);
d = (d >> 1) | (b<<7);
}
return(d);
}