Hayk
1
всем привет. у меня есть проект для отправки даных на платформу blynk․ но я незнаю как настроить virtual pin для палучения даных val и val1.
/**********Library**********/
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <GyverEncoder.h>
#include <EEPROM.h>
/***********Blynk***********/
#define BLYNK_TEMPLATE_ID "+"
#define BLYNK_TEMPLATE_NAME "+"
#define BLYNK_AUTH_TOKEN "+"
#define BLYNK_PRINT Serial //Прокомментируйте это, чтобы отключить печать и сэкономить место ;)
char ssid[] = "Sil";
char pass[] = "mushex077petr";
//не менять версию библятеки (версия 1.2.0) !!!!!!!
/********Blynk timer********/
BlynkTimer timer;
void myTimerEvent() // Эта функция ежесекундно отправляет время безотказной работы Arduino на виртуальный вывод 2.
{
// Вы можете отправить любое значение в любое время.
// Пожалуйста, не отправляйте более 10 значений в секунду.
Blynk.virtualWrite(V2, millis() / 1000);
}
/***********Ky-040**********/
#define CLK_PIN 23
#define DT_PIN 22
#define CLK_PIN1 21
#define DT_PIN1 19
Encoder enc(CLK_PIN, DT_PIN);
Encoder enc1(CLK_PIN1, DT_PIN1);
int val = 0;
int val1 = 0;
/************Rele***********/
#define Rele_1 12 //GV
#define Rele_3 13 //GN
#define Rele_2 2 //MV
#define Rele_4 4 //MN
void setup()
{
delay(1500);
Serial.begin(9600);
pinMode(Rele_1, OUTPUT);
pinMode(Rele_2, OUTPUT);
pinMode(Rele_3, OUTPUT);
pinMode(Rele_4, OUTPUT);
digitalWrite(Rele_1, LOW);
digitalWrite(Rele_2, LOW);
digitalWrite(Rele_3, LOW);
digitalWrite(Rele_4, LOW);
digitalWrite(Rele_1, HIGH);
digitalWrite(Rele_2, HIGH);
digitalWrite(Rele_3, HIGH);
digitalWrite(Rele_4, HIGH);
/////////////////-Blynk-///////////////
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
// Настройте функцию, которая будет вызываться каждую секунду
timer.setInterval(1000L, myTimerEvent);
/////////////////////////////////////
enc.setType(TYPE2);
enc1.setType(TYPE2);
}
void loop()
{
Blynk.run();
timer.run();
enc.tick();
enc1.tick();
if (enc.isTurn()) {
if (enc.isRight()) {
val+=0.5;
if (val > 100) {
val = 100;
}
}
if (enc.isLeft()) {
val-=0.5;
if (val < 0) {
val = 0;
}
}
//Serial.print("Ky-1...");
//Serial.println(val);
}
Blynk.virtualWrite(V1, val);
if (enc1.isTurn()) {
if (enc1.isRight()) {
val1+=0.5;
if (val1 > 100) {
val1 = 100;
}
}
if (enc1.isLeft()) {
val1-=0.5;
if (val1 < 0) {
val1 = 0;
}
}
//Serial.print("Ky-2...");
//Serial.println(val1);
}
Blynk.virtualWrite(V3, val1);
}
что тут надо изменить ???
Hayk
3
Спосибо за ответ папробаю и напешу
блогадарю зо ответ @PeteKnight
Hayk
4
/**********Library**********/
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <GyverEncoder.h>
#include <EEPROM.h>
/***********Blynk***********/
#define BLYNK_TEMPLATE_ID ""
#define BLYNK_TEMPLATE_NAME ""
#define BLYNK_AUTH_TOKEN ""
#define BLYNK_PRINT Serial //Прокомментируйте это, чтобы отключить печать и сэкономить место ;)
char ssid[] = "Sil";
char pass[] = "mushex077petr";
//не менять версию библятеки (версия 1.2.0) !!!!!!!
/********Blynk timer********/
BlynkTimer timer;
void myTimerEvent() // Эта функция ежесекундно отправляет время безотказной работы Arduino на виртуальный вывод 2.
{
// Вы можете отправить любое значение в любое время.
// Пожалуйста, не отправляйте более 10 значений в секунду.
Blynk.virtualWrite(V2, millis() / 1000);
}
/***********Ky-040**********/
#define CLK_PIN 23
#define DT_PIN 22
#define CLK_PIN1 21
#define DT_PIN1 19
Encoder enc(CLK_PIN, DT_PIN);
Encoder enc1(CLK_PIN1, DT_PIN1);
int val = 0;
int val1 = 0;
/************Rele***********/
#define Rele_1 12 //GV
#define Rele_3 13 //GN
#define Rele_2 2 //MV
#define Rele_4 4 //MN
void setup()
{
delay(1500);
Serial.begin(9600);
pinMode(Rele_1, OUTPUT);
pinMode(Rele_2, OUTPUT);
pinMode(Rele_3, OUTPUT);
pinMode(Rele_4, OUTPUT);
digitalWrite(Rele_1, LOW);
digitalWrite(Rele_2, LOW);
digitalWrite(Rele_3, LOW);
digitalWrite(Rele_4, LOW);
digitalWrite(Rele_1, HIGH);
digitalWrite(Rele_2, HIGH);
digitalWrite(Rele_3, HIGH);
digitalWrite(Rele_4, HIGH);
/////////////////-Blynk-///////////////
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
// Настройте функцию, которая будет вызываться каждую секунду
timer.setInterval(1000L, myTimerEvent);
/////////////////////////////////////
enc.setType(TYPE2);
enc1.setType(TYPE2);
timer.setInterval(1000L,val);
timer.setInterval(1000L,val1);
}
void sensorDataSend()
{
Blynk.virtualWrite(V1, val);
Blynk.virtualWrite(V3, val1);
}
void loop()
{
Blynk.run();
timer.run();
enc.tick();
enc1.tick();
if (enc.isTurn()) {
if (enc.isRight()) {
val ++;//=0.5;
if (val > 100) {
val = 100;
}
}
if (enc.isLeft()) {
val --; //=0.5;
if (val < 0) {
val = 0;
}
}
//Serial.print("Ky-1...");
//Serial.println(val);
//Blynk.virtualWrite(V1, val);
}
if (enc1.isTurn()) {
if (enc1.isRight()) {
val1++;//=0.5;
if (val1 > 100) {
val1 = 100;
}
}
if (enc1.isLeft()) {
val1--;//=0.5;
if (val1 < 0) {
val1 = 0;
}
}
//Serial.print("Ky-2...");
//Serial.println(val1);
//Blynk.virtualWrite(V3, val1);
}
}
я провельно сделол
I assume you’ve already discovered that it won’t compile because you don’t have functions called val
and val1
And you already know that it won’t complied with v1.3.0 of the Blynk library because these lines of code aren’t at the top of your sketch…
Pete.
Hayk
6
вот так я сделол но он не показывает дание от val и val1
/**********Library**********/
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <GyverEncoder.h>
#include <EEPROM.h>
/***********Blynk***********/
#define BLYNK_TEMPLATE_ID
#define BLYNK_TEMPLATE_NAME
#define BLYNK_AUTH_TOKEN
#define BLYNK_PRINT Serial //Прокомментируйте это, чтобы отключить печать и сэкономить место ;)
char ssid[] = "Sil";
char pass[] = "mushex077petr";
//не менять версию библятеки (версия 1.2.0) !!!!!!!
/********Blynk timer********/
BlynkTimer timer;
void myTimerEvent() //Эта функция ежесекундно отправляет время безотказной работы Arduino на виртуальный вывод 2.
{
Blynk.virtualWrite(V2, millis() / 1000);
}
/***********Ky-040**********/
#define CLK_PIN 23
#define DT_PIN 22
#define CLK_PIN1 21
#define DT_PIN1 19
Encoder enc(CLK_PIN, DT_PIN);
Encoder enc1(CLK_PIN1, DT_PIN1);
int val = 0;
int val1 = 0;
/************Rele***********/
#define Rele_1 12 //GV
#define Rele_3 13 //GN
#define Rele_2 2 //MV
#define Rele_4 4 //MN
void sensorDataSend()
{
Blynk.virtualWrite(V1, val);
Blynk.virtualWrite(V3, val1);
}
void setup()
{
delay(1500);
Serial.begin(9600);
pinMode(Rele_1, OUTPUT);
pinMode(Rele_2, OUTPUT);
pinMode(Rele_3, OUTPUT);
pinMode(Rele_4, OUTPUT);
digitalWrite(Rele_1, LOW);
digitalWrite(Rele_2, LOW);
digitalWrite(Rele_3, LOW);
digitalWrite(Rele_4, LOW);
digitalWrite(Rele_1, HIGH);
digitalWrite(Rele_2, HIGH);
digitalWrite(Rele_3, HIGH);
digitalWrite(Rele_4, HIGH);
/////////////////-Blynk-///////////////
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
// Настройте функцию, которая будет вызываться каждую секунду
timer.setInterval(1000L, myTimerEvent);
enc.setType(TYPE2);
enc1.setType(TYPE2);
}
void loop()
{
Blynk.run();
timer.run();
enc.tick();
enc1.tick();
if (enc.isTurn()) {
if (enc.isRight()) {
val ++;
if (val > 100) {
val = 100;
}
}
if (enc.isLeft()) {
val --;
if (val < 0) {
val = 0;
}
}
}
if (enc1.isTurn()) {
if (enc1.isRight()) {
val1++;
if (val1 > 100) {
val1 = 100;
}
}
if (enc1.isLeft()) {
val1--;
if (val1 < 0) {
val1 = 0;
}
}
}
//Blynk.virtualWrite(V1, val);
//Blynk.virtualWrite(V3, val1);
sensorDataSend(); // Send val and val1 data to Blynk app
}
что я делаю нетак
You can’t have this in your void loop, it will flood the server.
Your sensorDataSend
function has to be called with a BlynkTimer. I’d also add some serial print commands into sensorDataSend
too.
Is the uptime on pin V2 being displayed correctly?
Why haven’t you moved these three lines to the top of your sketch?…
Pete.
Hayk
8
да это правельно я сделол
Спосиба за ответ пайду паробаю
Hayk
9
Я исправил его но даные не ведны
/**********Library**********/
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <GyverEncoder.h>
#include <EEPROM.h>
char ssid[] = "Sil";
char pass[] = "mushex077petr";
//не менять версию библятеки (версия 1.2.0) !!!!!!!
/********Blynk timer********/
BlynkTimer timer;
void myTimerEvent() //Эта функция ежесекундно отправляет время безотказной работы Arduino на виртуальный вывод 2.
{
Blynk.virtualWrite(V2, millis() / 1000);
}
/***********Ky-040**********/
#define CLK_PIN 23
#define DT_PIN 22
#define CLK_PIN1 21
#define DT_PIN1 19
Encoder enc(CLK_PIN, DT_PIN);
Encoder enc1(CLK_PIN1, DT_PIN1);
int val = 0;
int val1 = 0;
/************Rele***********/
#define Rele_1 12 //GV
#define Rele_3 13 //GN
#define Rele_2 2 //MV
#define Rele_4 4 //MN
void setup()
{
delay(1500);
Serial.begin(9600);
pinMode(Rele_1, OUTPUT);
pinMode(Rele_2, OUTPUT);
pinMode(Rele_3, OUTPUT);
pinMode(Rele_4, OUTPUT);
digitalWrite(Rele_1, LOW);
digitalWrite(Rele_2, LOW);
digitalWrite(Rele_3, LOW);
digitalWrite(Rele_4, LOW);
digitalWrite(Rele_1, HIGH);
digitalWrite(Rele_2, HIGH);
digitalWrite(Rele_3, HIGH);
digitalWrite(Rele_4, HIGH);
/////////////////-Blynk-///////////////
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
// Настройте функцию, которая будет вызываться каждую секунду
timer.setInterval(1000L, myTimerEvent);
enc.setType(TYPE2);
enc1.setType(TYPE2);
}
void sensorDataSend()
{
enc.tick();
enc1.tick();
if (enc.isTurn()) {
if (enc.isRight()) {
val +=1;
if (val > 100) {
val = 100;
}
}
if (enc.isLeft()) {
val -=1;
if (val < 0) {
val = 0;
}
}
}
if (enc1.isTurn()) {
if (enc1.isRight()) {
val1+=1;
if (val1 > 100) {
val1 = 100;
}
}
if (enc1.isLeft()) {
val1-=1;
if (val1 < 0) {
val1 = 0;
}
}
}
Blynk.virtualWrite(V1, val);
Blynk.virtualWrite(V3, val1);
sensorDataSend(); // Send val and val1 data to Blynk app
}
void loop()
{
Blynk.run();
timer.run();
//Blynk.virtualWrite(V1, val);
//Blynk.virtualWrite(V3, val1);
}
I think you’ve broken it completely now.
sensorDataSend
will never be called, and even if it is it will go into an endless loop because it just keeps calling itself.
And now you’ve delete the Blynk firmware configuration entirely.
Pete.