Управляем ардуиной через интернет

doom369
Offline
Зарегистрирован: 13.05.2015

Добрый день. Сброс происходит только если вы нажимаете кнопку "старт". Для проектов в статусе "running" сброса не происходит.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

у меня еще вопрос. насколько понял из есп в программе можно управлять цветом в программе на смартфоне. прошу объяснить на примере gauge и labeled value. простое условие что то вроде этого

if(val<50) gauge(v1, red); // красный
else gauge(v1, default); // цвет по умолчанию. но можно и конкретный написать если нет цвета по умолчанию который в программе настроен для этой gauge

 

doom369
Offline
Зарегистрирован: 13.05.2015
jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

спасибо. но по названию не догадаешься что это для этого)))

Reliable_Bob
Offline
Зарегистрирован: 23.10.2016
 

Доброго времени.

Обращаюсь к разработчику.

В примере скетча, в строке 48, в слове Serial1 нужно убрать единицу. Иначе выдает ошибку. 

Без единицы работает норм.

doom369
Offline
Зарегистрирован: 13.05.2015

Здравствуйте. Вы все сделали как написано в интсрукции? 

"Firmware version 1.0.0 (AT v0.22) is needed." ?
Reliable_Bob
Offline
Зарегистрирован: 23.10.2016
 

Вот инфа:

AT+GMR

AT version:0.50.0.0(Sep 18 2015 20:55:38)
SDK version:1.4.0
compile time:Sep 18 2015 21:46:52
 

И еще, связь рвется постоянно с сервером...

 
jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

связь рвется потому что в лупе что то тормозит есп. поставь несколько раз в код 

Blynk.run();

в разных местах. у самого такое было

Reliable_Bob
Offline
Зарегистрирован: 23.10.2016
 

В лупе только

 Blynk.run();
 timer.run();

Я новичек в теме...

Подскажи в "в разных местах", это  в лупе или вообще в коде?

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а как часто у тебя запускается твоя функция? 

Reliable_Bob
Offline
Зарегистрирован: 23.10.2016

Вот код целиком:

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
#include <SimpleTimer.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 10
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).



char auth[] = "11111";

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

// Hardware Serial on Mega, Leonardo, Micro...
#define EspSerial Serial

// or Software Serial on Uno, Nano...
//#include <SoftwareSerial.h>
//SoftwareSerial EspSerial(2, 3); // RX, TX

// Your ESP8266 baud rate:
#define ESP8266_BAUD 115200

ESP8266 wifi(&EspSerial);

int pin =5;
int relaypin =12;
float tempDS;

WidgetLED led5(V5); //register to virtual pin 5
WidgetLED led12(V12); //register to virtual pin 5
WidgetLED led20(V20); 
SimpleTimer timer;

void adj()
{
if (digitalRead(pin)==HIGH)
  {
     if (tempDS < 25)
           { 
            digitalWrite (relaypin,HIGH); 
             led12.off();  
           }
             else
             {
              digitalWrite (relaypin,LOW);
              led12.on();
             }
  }
       else
        {
          digitalWrite (relaypin,HIGH); 
          led12.off();
        }

}

void Arm()
{
if (digitalRead(pin)==HIGH)
   {led5.on();  
   }
    else
    {led5.off();
    }
 DS18B20.requestTemperatures(); // Polls the sensors
 tempDS = DS18B20.getTempCByIndex(0); // Gets first probe on wire in lieu of by address
 Blynk.virtualWrite(1, tempDS);    

 if (Blynk.connect())
    {led20.on();
    }
    else
    {led20.off();  
    }
adj();
}

  

void setup()
{
  // Set console baud rate
  Serial.begin(9600);
  delay(10);
  // Set ESP8266 baud rate
  EspSerial.begin(ESP8266_BAUD);
  delay(10);
  Blynk.begin(auth, wifi, ssid, pass);
  pinMode (pin, OUTPUT);
  
  DS18B20.begin();
  timer.setInterval(1500L, Arm); // Temperature sensor polling interval (1500L = 1.5 seconds)
 
}

void loop()
{
  
  Blynk.run();
  timer.run();
}
 
 
jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

измерение температуры занимает 750мс  только ожидание без самого считывания. нужно считывание переделывать. на форуме давал я и другие примеры. ищи

Reliable_Bob
Offline
Зарегистрирован: 23.10.2016
 

С постоянным обрывом связи разобрался. Пришлость снизить скорость передачи данных шилда ESP8266-01 до 9600

Однако повторюсь.

Обращаюсь к разработчику.

В примере скетча, в строке 48, в слове Serial1 нужно убрать единицу. Иначе выдает ошибку. 

Без единицы работает норм.

Ошибка возникает при компиляции. Ошибка находится в примере. Надо бы исправить, дабы люди не наступали на грабли.

Или поправьте меня если я не прав...

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Reliable_Bob пишет:

 

С постоянным обрывом связи разобрался. Пришлость снизить скорость передачи данных шилда ESP8266-01 до 9600

Однако повторюсь.

Обращаюсь к разработчику.

В примере скетча, в строке 48, в слове Serial1 нужно убрать единицу. Иначе выдает ошибку. 

Без единицы работает норм.

Ошибка возникает при компиляции. Ошибка находится в примере. Надо бы исправить, дабы люди не наступали на грабли.

Или поправьте меня если я не прав...

Вы, вообще-то читали, что написано по приведенной Вами ссылке?

Reliable_Bob
Offline
Зарегистрирован: 23.10.2016

[/quote]

Вы, вообще-то читали, что написано по приведенной Вами ссылке?

[/quote]

Да, конечно читал. Даже вроде не по диагонали.

Что Вы имеете ввиду?

Или Вы имеете ввиду что Serial1 не для UNO?
 
andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Вообще-то - да.

В этом коде используется два последовательных порта: один для связи с консолью, другой - для связи с модулем, что непосредственно видно из:

void setup()
{
  // Set console baud rate
  Serial.begin(9600);
  delay(10);
  // Set ESP8266 baud rate
  EspSerial.begin(ESP8266_BAUD);
  delay(10);

  Blynk.begin(auth, wifi, ssid, pass);
}

Причем, отдельно указано, что:

Цитата:

* It is also recommended to use Hard Serial.
* If you want to use SoftSerial, you can change ESP baud rate.

Очевидно, что в Uno второго аппаратного Serial нет.

Reliable_Bob
Offline
Зарегистрирован: 23.10.2016
 

Да. Согласен. Мой косяк. Прошу простить мою невнимательность.

safari
Offline
Зарегистрирован: 02.02.2015

Обновилось приложение под IOS. Проблему с крешем на iphone 5S так и не решили :(

Прямо слов нет. Я ведь предлагал помощь в тестировании. И опыт имеется и желание.

От злости поставил параллельно блинку NODE-RED.

Тестировал пару недель, и вы знаете. Понял что нафиг не нужен мне этот блинк с таким подходом разработчиков.

На ноде всё можно сделать гораздо больше и интереснее, чем на локальном блинк сервере. При желании даже можно повторить визуально все виджеты блинка.

doom369
Offline
Зарегистрирован: 13.05.2015

Здравствуйте. Сейчас как раз занимаемся багофиксами на iOS. Я понимаю, что Вам хочется побыстрее получить решение именно Вашей проблемы, мы делаем все возможное при нашем ограниченном ресурсе. Ближайшие 3 релиза будут исключително с багофиксами. Скоро пофиксим.

doom369
Offline
Зарегистрирован: 13.05.2015

@safari вот только что пофиксили и ваш креш. Через пару дней будет апдейт.

safari
Offline
Зарегистрирован: 02.02.2015

Спасибо большое. Буду ждать. Прошу прощения за излишнюю эмоциональность.

Reliable_Bob
Offline
Зарегистрирован: 23.10.2016
 

Доброго времени.

Скажите, а не планируется ли в экспортируемый из History Graph cvs файл, кроме измеренных значений добавлять еще и дату и время получения этих значений?

Этого очень не хватает.

Без даты и времени данные просто бесполезны. Ни график построить ни проанализировать невозможно...

doom369
Offline
Зарегистрирован: 13.05.2015

Добрый день. Там есть зачение и дата. Детальней тут https://github.com/blynkkk/blynk-server#raw-data-storage

Reliable_Bob
Offline
Зарегистрирован: 23.10.2016
 

Огромное спасибо. Разобрался.

doom369
Offline
Зарегистрирован: 13.05.2015

@safari есть апдейт с фиксом креша, проверьте пожалуйста работает ли у Вас.

safari
Offline
Зарегистрирован: 02.02.2015

Да, теперь не падает, виджеты добавляются. Спасибо большое.

Чуть позже проверю изменение свойств виджетов.

safari
Offline
Зарегистрирован: 02.02.2015

Дмитрий. У меня к Вам вопрос/предложение. Нельзя ли у виджетов-кнопок сделать переключатель на инверсную логику?

Дело в том, что у некоторых контроллеров (например ESP) встроенный светодиод включается на OFF а выключается на ON. Тоже самое с синими модулями релюшек. 

Речь идет об аппаратных пинах. С программными, понятное дело, проблем нет.

doom369
Offline
Зарегистрирован: 13.05.2015

Для андроида уже сделали. Для иОС будет через неделю-две.

safari
Offline
Зарегистрирован: 02.02.2015

Круто!

Прям научились мысли мои читать :)

macros
Offline
Зарегистрирован: 07.11.2016

Нашел баг на андроиде за 6 часов график давления линия убывающая, а за день прямая:

на айосе оба графика правильные

vb
Offline
Зарегистрирован: 15.09.2016

Тут на русском и подробно все описано http://ngin.pro/arduino/180-prostoy-veb-server-s-pomoschyu-arduino-i-esp8266.html

doom369
Offline
Зарегистрирован: 13.05.2015

Только что залили новый апдейт с поддержкой мультидевайсов и новым виджетом картой для Андроида. Больше инфы тут http://community.blynk.cc/t/new-android-release-2-0-0/9904

esa
Offline
Зарегистрирован: 27.06.2015

Добрый день

У меня несколько вопросов:

1.BLYNK_CONNECTED () - процедура, которая выполняется, когда уст-во, например esp8266, соединиться с облаком. А есть процедура, котороая выполнялась при соединении(открывании) приложения на телефоне?

2.У меня esp8266 каждые 10 сек. отправляет пакеты, а можно данный интервал увеличить?

Спасибо

Reliable_Bob
Offline
Зарегистрирован: 23.10.2016

esa пишет:

Добрый день

У меня несколько вопросов:

1.BLYNK_CONNECTED () - процедура, которая выполняется, когда уст-во, например esp8266, соединиться с облаком. А есть процедура, котороая выполнялась при соединении(открывании) приложения на телефоне?

2.У меня esp8266 каждые 10 сек. отправляет пакеты, а можно данный интервал увеличить?

Спасибо

А я бы добавил близкий по теме вопрос.

А есть ли в приложении инструмент, с помощью которого я бы в приложении мог видеть подключена моя железка к облаку или нет?

Или только всплывающие сообщения о дисконнекте при запуске проекта?

doom369
Offline
Зарегистрирован: 13.05.2015

"А есть процедура, котороая выполнялась при соединении(открывании) приложения на телефоне?"

Нет. Но скоро будет - https://github.com/blynkkk/blynk-library/issues/240.

"У меня esp8266 каждые 10 сек. отправляет пакеты, а можно данный интервал увеличить?"

Да. https://github.com/blynkkk/blynk-library/blob/master/src/Blynk/BlynkConfig.h#L32

"А есть ли в приложении инстструмент, с помощью которого я бы в приложении мог видеть подключена моя железка к облаку или нет?"

Пока нету. Но тожу будет добавлено скоро.

esa
Offline
Зарегистрирован: 27.06.2015

doom369 пишет:

Нет. Но скоро будет - https://github.com/blynkkk/blynk-library/issues/240.

Ссылка битая.

doom369
Offline
Зарегистрирован: 13.05.2015

https://github.com/blynkkk/blynk-library/issues/240

точка почему-то добавилась.

Reliable_Bob
Offline
Зарегистрирован: 23.10.2016

Доброго времени.

Такая проблема...

Имеется NodeMCU с АТ прошивкой v1.5.1, датчик освещенности(сухой контакт) и BMP180.

Код:

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
#include <Wire.h>
#include <Adafruit_BMP085.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] zzzzzzzzzzzzzzzzzzzzzzzzz";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Blynk";
char pass[] = "12345678";
int pin =13;
int boil;

WidgetLED ledOn(V13);
Adafruit_BMP085 bmp;
SimpleTimer timer;

// Keep this flag not to re-sync on every reconnection
bool isFirstConnect = true;

void boilon()
{
  if (digitalRead(pin)==HIGH)
  {
    boil=0;
    ledOn.off();
  }
  else {
    boil=100;
    ledOn.on();
  }
  Blynk.virtualWrite(14, boil);
}
BLYNK_CONNECTED() {
  if (isFirstConnect) {
    Blynk.syncAll();
  }
  // You can also update individual virtual pins like this:
  //Blynk.syncVirtual(V3, V6, V1);
  isFirstConnect = false;
  
}
 void bmp180 () { 
  int temp = bmp.readPressure();
  int pres = bmp.readTemperature(); 
  Blynk.virtualWrite(V22, pres /133.3);
  Blynk.virtualWrite(V23, temp*0.1);
   
}

void setup()
{
  Serial.begin(9600);
  pinMode(pin,INPUT);
  Blynk.begin(auth, ssid, pass);
 
  timer.setInterval(1000L, boilon);
  timer.setInterval(5000L, bmp180);
}

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

После загрузки плата уходит в циклический ребут. В мониторе порта вижу следующее:

$nµґрbGCэH>lдэь[322] Connecting to Blynk
[1325] Connected to WiFi
[1325] IP: 192.168.1.119
[1325]
    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ v0.4.1 on NodeMCU

[5001] Connecting to blynk-cloud.com:8442
[5273] Ready (ping: 1ms).

Exception (0):
epc1=0x40106d49 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

ctx: cont
sp: 3ffefd10 end: 3ffeff20 offset: 01a0

>>>stack>>>
3ffefeb0:  0000ffff 00ffff00 3ffeebd4 4020481a  
3ffefec0:  00000000 00000001 3ffeebd4 40204870  
3ffefed0:  3ffeead4 00000001 3ffeebd4 40202ab3  
3ffefee0:  3ffeead4 00000001 3ffeead8 402043c1  
3ffefef0:  3fffdad0 00000000 3ffeeee4 4020355d  
3ffeff00:  3fffdad0 00000000 3ffeeee4 402050d0  
3ffeff10:  feefeffe feefeffe 3ffeef00 40100718  
<<<stack<<<
ЖеЦФ1§Њ:Ґя[341] Connecting to Blynk
[1344] Connected to WiFi
[1344] IP: 192.168.1.119
[1344]
    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ v0.4.1 on NodeMCU

[5001] Connecting to blynk-cloud.com:8442
[5171] Ready (ping: 1ms).

Exception (0):
epc1=0x40106d49 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

ctx: cont
sp: 3ffefd10 end: 3ffeff20 offset: 01a0

>>>stack>>>
3ffefeb0:  0000ffff 00ffff00 3ffeebd4 4020481a  
3ffefec0:  00000000 00000001 3ffeebd4 40204870  
3ffefed0:  3ffeead4 00000001 3ffeebd4 40202ab3  
3ffefee0:  3ffeead4 00000001 3ffeead8 402043c1  
3ffefef0:  3fffdad0 00000000 3ffeeee4 4020355d  
3ffeff00:  3fffdad0 00000000 3ffeeee4 402050d0  
3ffeff10:  feefeffe feefeffe 3ffeef00 40100718  
<<<stack<<<
Если закомментировать  void bmp180, то программа работает.

Понимаю, что проблема в двух строках:

int temp = bmp.readPressure();
int pres = bmp.readTemperature();

Подскажите пожалуйста, где я накосячил?

 
doom369
Offline
Зарегистрирован: 13.05.2015

Тут не подскажу. Лучше к нам на форум. Там много кто может помочь.

Reliable_Bob
Offline
Зарегистрирован: 23.10.2016
 

Спасибо за приглашение. А там только на английском можно создавать посты или на русском тоже можно?

doom369
Offline
Зарегистрирован: 13.05.2015

На английском. Для русского есть этот :).

safari
Offline
Зарегистрирован: 02.02.2015

@Reliable_Bob

Проблема с bmp, он у вас не работает=> при опросе скетч валится. В библиотеке bmp есть код его инициализации в setup(), который вы пролюбили :)

  if (!bmp.begin())
      Serial.println("Could not find a valid BMP085 sensor, check wiring!");

safari
Offline
Зарегистрирован: 02.02.2015

спрашивайте сюда, чем можем, так сказать :)

safari
Offline
Зарегистрирован: 02.02.2015

@doom369

я так понял, локальный сервер обновлять надо?

doom369
Offline
Зарегистрирован: 13.05.2015

Для мультидевайсов? - да. Кстати мы еще выкатиил апдейт по иОС с креш фиксами и кнопкой с inverted state.

safari
Offline
Зарегистрирован: 02.02.2015

да, я уже обновил, всё что можно. андроид стал ругаться на обновление сервера и тупить. так я узнал про 20 версию.

в связи с чем у меня такой вопрос:

pi@raspberrypi:~ $ sudo ps -aux | grep java
root       513  0.0  0.0   1912   404 ?        Ss   21:10   0:00 /bin/sh -c java -jar /home/pi/server-0.20.1.jar -dataFolder /home/pi/Blynk -serverConfig /home/pi/Blynk/server.properties
root       522 14.0  5.9 366856 55948 ?        Sl   21:10   0:43 java -jar /home/pi/server-0.20.1.jar -dataFolder /home/pi/Blynk -serverConfig /home/pi/Blynk/server.properties
pi        1094  0.0  0.2   4280  1948 pts/0    S+   21:15   0:00 grep --color=auto java
pi@raspberrypi:~ $

почему два процесса висят после ребута? раньше был один. запускаю через crontab, как в мануале написано.

при этом, всё вроде работает...

doom369
Offline
Зарегистрирован: 13.05.2015

Не знаю, Наверное как-то 2 раза стригирелся скрипт. И если произошла ошибка при старте то сервер должен убитьва себя. Я проверю.

safari
Offline
Зарегистрирован: 02.02.2015

посмотрел внимательно и добавил в crontab & в конце строки (раньше не было), вроде один процесс теперь остался.

стесняюсь спросить, что это было и зачем там этот амперсенд?

doom369
Offline
Зарегистрирован: 13.05.2015

The function of ‘&‘ is to make the command run in background. 

safari
Offline
Зарегистрирован: 02.02.2015

ох, чёрт, действительно, чё-то я затупил :)

не понятно, только как она без этого выживала? сама себя перезапускала как-то?