Планы такие - сейчас делаем шаринг дашбордов. Это будет первая платная фича. Потом доделываем сенсоры телеофна - джпс, акселерометр и тд. А дальше будем смотреть куда двигатся. Вероятней всего в сторону корпоративного сектора и производителей железяк.
Для мейкеров приложение вероятней всего останется почти полностью бесплатным.
Что-то с терминалом небольшие заминки возникли... Вот такой кусочек кода дописал в скетч терминала в loop:
if (Serial.available())
terminal.println(char(Serial.read()));
Открываю монитор порта на компе и коннекчусь прогой в телефоне... Отправляю любой символ из терминала телефона - в монитор порта приходит "Hey! I got a new message!" (нахрена так и не понял, почему бы зеркалку не сделать и кстати как ее сделать???), ну ладно, теперь наоборот шлю с сериала компа "Privet"...на терминале телефона болт... Снова шлю любой символ с телефона на комп... И тут то вылетает сначала мой Privet, а затем и отправленный символ... Я так понял, что терминал это единственное, через что можно задавать значения переменным в прорамме, а тут пока никак...
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SimpleTimer.h>
#define ONE_WIRE_BUS 2
WidgetLED led1(5);
WidgetLED led2(6);
int tempC=0;
int tempC2=0;
int tempC3=0;
int tempC4=0;
SimpleTimer timer;
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress Thermometer1 = {
0x28, 0xFF, 0x62, 0x09, 0x64, 0x14, 0x03, 0x47 }; // адрес датчика внутр. основ. водогрея
DeviceAddress Thermometer2 = {
0x28, 0xFF, 0xC2, 0x2A, 0x64, 0x14, 0x03, 0x8C }; //адрес датчика внутр. вспомогат. водогрея
DeviceAddress Thermometer3 = {
0x28, 0xFF, 0xD3, 0x00, 0x64, 0x14, 0x03, 0x56 }; //адрес датчика выход. основ. водогрея
DeviceAddress Thermometer4 = {
0x28, 0xFF, 0x01, 0x1B, 0x64, 0x14, 0x03, 0x27 }; //адрес датчика выход. вспомогат. водогрея
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "c4938127d9a2434b9a15203bb596ce78";
IPAddress server_ip (192, 168, 0, 10);
// Mac address should be different for each device in your LAN
byte arduino_mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
IPAddress arduino_ip ( 192, 168, 0, 2);
IPAddress dns_ip ( 8, 8, 8, 8);
IPAddress gateway_ip (192, 168, 0, 1);
IPAddress subnet_mask(255, 255, 255, 0);
WidgetTerminal terminal(7);
void sendUptime()
{
sensors.requestTemperatures();
tempC = sensors.getTempC(Thermometer1);
tempC2 = sensors.getTempC(Thermometer2);
tempC3 = sensors.getTempC(Thermometer3);
tempC4 = sensors.getTempC(Thermometer4);
Blynk.virtualWrite(V1, tempC);
Blynk.virtualWrite(V2, tempC2);
Blynk.virtualWrite(V3, tempC3);
Blynk.virtualWrite(V4, tempC4);
if (digitalRead(28)==LOW){
led1.off();
}
else led1.on();
if (digitalRead(29)==HIGH){
led2.off();
}
else led2.on();
}
BLYNK_WRITE(V7)
{
BLYNK_LOG("Hey! I got a new message!");
// Send it back
terminal.print("I got:");
terminal.write(param.getBuffer(), param.getLength());
terminal.println();
// Ensure everything is sent
terminal.flush();
}
void setup()
{ timer.setInterval(1000L, sendUptime);
sensors.begin();
sensors.setResolution(Thermometer1, 10);
sensors.setResolution(Thermometer2, 10);
sensors.setResolution(Thermometer3, 10);
sensors.setResolution(Thermometer4, 10);
Serial.begin(9600);
Blynk.begin(auth, "cloud.blynk.cc", 8442, arduino_ip, dns_ip, gateway_ip, subnet_mask, arduino_mac);
terminal.println(F("Blynk v" BLYNK_VERSION ": Device started"));
terminal.flush();
}
void loop()
{
Blynk.run();
timer.run();
if (Serial.available())
terminal.println(char(Serial.read()));
}
Я может где-то и навертел лишнего, но тут led1 и led2 начинают работать не сразу после подключения, после пары тырканий кнопкой... И вот есть тут этот флэш, также как и проблема описанная выше)).. Каким кодом считать данные с терминала??? Записать terminal.print, а считать?
Плюнул на юсб, возможно дело в преобразователе (ch341) или конфигурации сети. Подключил через шилд. Вопросы такие. раз в сутки (не всегда) коммуникация зависает, ресет спасает, можно ли это решить вашими внутренними средствами? (простую внутреннюю презагрузку то раз в сутки я могу сделать сам)
Вопрос2 Горизонтальный слайдер (движек резистора) есть, можно ли его сделать вертикальным?
Ммм, то есть железка полностью не отвечает? Даж не знаю, еще не было у нас такого. Что за борда? У нас есть авторестарт если потрелся конекшн, но елси подвисает само железо... То врятли можно что-то сделать. Разве что как вариант самому в коде останавливать блинк и перезапускать (елси проблема действительно в Блинке).
Я не знаю борда виснет или конекшн. Лампочки моргают на w5100 но на телефоне пишет что ю ардуино из нот ин нетворк. У меня классика arduinoUNO+shieldW5100.
Ну вот у меня дуинка сидит с w5100 уже 4-5 дней на блинке и пока без проблем... Хочу все же дублировать веб-страничкой попытаться, но пока не доберусь никак... andrikll попробуй сутки посидеть на веб-страничке, а не на блинке... Так вычислишь проблему.
Я отсюда начинал http://zelectro.cc/Ethernet_shield_W5100 ... А вообще, если Вы еще не имели опыт с HTML и Вам это особо и не надо, то по-началу придется перелопатить много че...
Попробуйте взять самую последнюю версию библиотеки из гитхаба. Кнопка "Download ZIP". И сообщите результат.
Добрый день! Тоже осваиваю blynk. Отличная идея и реализация, но столкнулся с аналогичной проблемой умирает железка.
Железо uno + 5100. Ардуиновский веб-сервер живет отлично (да и вообще другие приложения всегда жили отлично). А блинк отваливается через 5...500 секунд.
Данные отправляются внутри функции sendUptime, которая инициализируется timer.setInterval(2000, sendUptime);
void sendUptime()
{
humidity = dht.getHumidity();
temperature = dht.getTemperature();
if (led1.getValue())
led1.off();
else
led1.on();
Blynk.virtualWrite(1, temperature);
Blynk.virtualWrite(2, humidity);
Serial.println(counter++);
}
Основной цикл
void loop()
{
Blynk.run();
timer.run();
}
Там же внутри sendUptime идет отправка в ком-порт для контроля. В какой-то момент все просто останавливается.... и тишина...
[0] Getting IP...
[1520] My IP: 192.168.1.109
0
[5001] Connecting to cloud.blynk.cc:8442
[5316] Ready (ping: 127ms).
1
2
3
4
5
6
7
8
9
Приложение андроид говорит что ардуина не в сети.
Попробовал работать от внешнего БП - проблема сохраняется. Попробовал на рабочем состоянии передергивать изернет - не виснет. В общем, пока не удалось однозначно выявить, после чего все останавливается...
В приложении виджет WidgetLED led1(0); - телефоне моргает виртуальный светодиод если связь есть
Вообще изначально - было только управление светодиодом на ардуинке кнопкой с андроида. Обнаружил, что через какое-то время управление светодиодом отваливается. Ну и начал дебажить своими средствами...
#define BLYNK_DEBUG // Optional, this enables lots of prints
#define BLYNK_PRINT Serial
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#include "DHT.h"
#include <SimpleTimer.h> // here is the SimpleTimer library
DHT dht; // датчик температуры и влажности
SimpleTimer timer; // Create a Timer object called "timer"!
int counter;
WidgetLED led1(0);
char auth[] = "ррр";
float humidity;
float temperature;
void setup()
{
Serial.begin(9600);
Blynk.begin(auth);
dht.setup(2); // data pin 2
timer.setInterval(2000, sendUptime); // Here you set interval (1sec) and which function to call
}
void sendUptime()
{
humidity = dht.getHumidity();
temperature = dht.getTemperature();
if (led1.getValue())
led1.off();
else
led1.on();
Blynk.virtualWrite(1, temperature);
Blynk.virtualWrite(2, humidity);
Serial.println(counter++);
}
void loop()
{
Blynk.run();
timer.run();
}
Сократил код до тестового минимума - ардуина отсылает моргающий светодиод с частотой 1Гц
#define BLYNK_DEBUG // Optional, this enables lots of prints
#define BLYNK_PRINT Serial
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#include <SimpleTimer.h> // here is the SimpleTimer library
SimpleTimer timer; // Create a Timer object called "timer"!
int counter;
WidgetLED led1(0);
char auth[] = "f";
void setup()
{
Serial.begin(9600);
Blynk.begin(auth);
timer.setInterval(500, sendUptime); // Here you set interval (1sec) and which function to call
}
void sendUptime()
{
if (led1.getValue())
led1.off();
else
led1.on();
Serial.println(counter++);
}
void loop()
{
Blynk.run();
timer.run();
}
Софт на андроиде даже не запускаю - т.е. включаю ардуину, смотрю лог. Подключилась к серверу, начала передавать на сервер данные. Через некоторое время - зависает. Вот окончание лога.
У меня все отлично работает. Но есть одно отличие от Вашего скетча. Доплнительный while.
void setup()
{
Serial.begin(9600); // See the connection status in Serial Monitor
Blynk.begin(auth);
while (Blynk.connect() == false) {
// Wait until connected
}
}
Доброго дня! Пока мои эксперименты не привели к желаемому результату (т.е. к отсутствию зависаний). Я сам склоняюсь к тому, что лажает изернет-шилд (жаль, нет возможности заменить железо). Уже проверил все - частоты работы проца, изернет-шилда, напряжения питания.
Сейчас мой код такой (это ваш стандартный пример PushData, в который я добавил прерывание и вывод лога):
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#include <SimpleTimer.h>
#include <MsTimer2.h>
char auth[] = "";
int cnt, int_cnt;
boolean output = HIGH;
SimpleTimer timer;
void flash() {
digitalWrite(8, output);
output = !output;
Serial.print("int=");
Serial.println(int_cnt++);
}
void setup()
{
Serial.begin(115200); // See the connection status in Serial Monitor
pinMode(8, OUTPUT);
MsTimer2::set(1000, flash); // 500ms period
MsTimer2::start();
Blynk.begin(auth);
while (Blynk.connect() == false){
}
timer.setInterval(1000L, sendUptime);
}
void sendUptime()
{
Blynk.virtualWrite(V5, millis() / 1000);
Serial.println(cnt++);
}
void loop()
{
Blynk.run(); // Initiates Blynk
timer.run(); // Initiates SimpleTimer
}
Прерывание вставил для того, чтобы попытаться опеределить, живет ли хоть что-то вообще.
В результате на ком-порте вижу такой лог (это момент "зависания", когда приложение blynk на адроид перестает получать данные от платы):
446
int=517
447
int=518
448
int=519
int=520
int=521
int=522
т.е. плата успешно прожила примерно 8 минут, а потом блинк "упал". светодиод в прерывании моргает, но loop() не "бегает" и блинк не отвечает (внутри loop тоже пробовал вставлять моргающий светодиод).
Пробовал избавиться от timer.run() - результат тот же.
Я не знаю, что у меня уникально - железо или что-то приходящее по сети... Изернет-шилд до этого не был замечен в подобном поведении. Но blynk у меня стабильно не работает. И судя по форуму, есть как минимум еще один похожий случай.
Ну я так понял что у всех все ок =). Очень много работы. Локализировать нету времени. Седлали недавно HTTP API, Web Sockets, шаринг, возможность получить стейт с сервера и много чего другого. Сейчас работаем над возможностью более гибкой кастомизации виджетов.
плата успешно прожила примерно 8 минут, а потом блинк "упал". светодиод в прерывании моргает, но loop() не "бегает" и блинк не отвечает
Вероятно потому что Serial.print(); рекурсивно вызывается.
Скажу сраз, проблему решил.
На текущий момент плата успешно живет уже 3 недели. Поняв, что хоть я и не один такой, но как такового решения нет, я начал копать. Копал полтора месяца. Снифферил шарком обмены по сети, докапался до самых глубин, регистров 5100, стеков и протоколов.... ничего не помогало!!! 5100 вела себя просто странно!!! она подвисала в while при считывания окончания отправки пакета
При этом даже аппаратный ресет не выводил ее из ступора (не работал DHCP, и на фиксированных IP адресах тоже не работал), только перезапуск питания.
К счастью, пришла к этому моменту новая заказанная плата изернет-шилда, которую заказал еще в октябре.... И все стало хорошо!
В общем что конкретно не так с тем шилдом - я так и не знаю. Похоже на какие-то проблемы с самой имс. В общем-то осадочек остался....
На новом шилде тестовая апликуха живет уже 3 недели и успешно шлет данные о температуре в доме на смартфон. пока обдумываю концепцию сигнализации-мониторинга дома.
Так что пользуясь случаем хочу сказать спасибо авторам в лице doom369 !!!
Хочу реализовать проект: «сигнализация на даче». Будет связка arduina + w5100. Интернет по модему 3g+роутер. Какой будет суточный трафик в «спокойном» (пару раз зайти через blynk) режиме?
Есть у меня датчик температуры (lm35). Я его «вешаю» на А0. Далее показания с датчика перевожу в наглядный вид, т.е.
float t = analogRead (0);
t = t * 5 / 1023 * 100;
В приложение Blynk, создаю проект, в нем виджет «value display». Указываю pin – a0 и включаю связку 0-1024. Запускаю проект и мне выдается 50 (реальная и по формуле 24). А как мне передать t = t * 5 / 1023 * 100; Или надо делать через виртуальные пины?
3. есть в проекте кнопка подвесил на D13. При запуске проекта кнопка - off, а диод (d13) горит. После того, как я несколько раз понажимаю кнопку все синхринизируется. Как можно сделать, чтоб при запуске проекта все автоматом синхранизировалось?
1. Среднее блинк сообщение 5 байт хидер + тело. Например если шлете температуру 36.00 на пин V1, то 1 сообщение 15 байт . Сколько Вы таких сообщений пошлете зависит от вас. + пинг 5 байт каждые 5 сек если железка онлайн.
2. Надо делать через виртуальные. Немногие показания можно считывать сразу с аналоговых пинов.
3. Тоже через виртуал пин. Если горит диод и кнопка должна быть загоревшейся (кнопка на V1) при старте железки - то нужно на старте сделать :
Blynk.virtualWrite(V1, digitalRead(D13));
это псевдокод. не гарантирую что он сразу заработает. но идею Вы поняли
С таймером понятно, я сам указываю интервал через какое время запускать процедуру, а у BLYNK_WRITE () {} и BLYNK_READ () {} какая переодичность (аналогично loop)?
doom369, на данном форуме нет личной переписки, а своими вопросами (для многих они простые, дуратские, дублирующие и т.п.) я не хочу "мусорить" тему. Подскажите какими средствами я могу с вами переписываться для консультации? Мой эл. адрес esa@pochta.ru
Я планирую на arduino сделать проект "сигнализация на даче". Которая по событиям с датчиков (движения, температуры и т.п.) будет отправлять смс мне на телефон. В телефоне у меня установлено приложение tasker, с помощью которого я отслеживаю приход смс от сигнализации и далее tasker выполняет сценарий, котрорый я запрограммировал. В сценарии tasker я хотел бы включить запуск конкретного (в дальнейшим надеюсь их будет много) Blynk-проекта. Реальная задача или нет?
И еще не могли бы вы подробнее рассказать о виджите "timer"?
PS. У меня вчера произошел какой то баг. Создал несколько проектов для тренировок, несколько виджитов, ни чего сложого и в какой то момент при запуске приложения blynk меня попросили заного аввторизироваться. Я ввел логин и пароль и ...... ни одного проекта нет.
Я точно знаю, что проекты сам не удалял. У вас на практике были такие случаи? Как я могу себя обезопасить (резервные копии проектов и т.п.)?
Планы такие - сейчас делаем шаринг дашбордов. Это будет первая платная фича. Потом доделываем сенсоры телеофна - джпс, акселерометр и тд. А дальше будем смотреть куда двигатся. Вероятней всего в сторону корпоративного сектора и производителей железяк.
Для мейкеров приложение вероятней всего останется почти полностью бесплатным.
Что-то с терминалом небольшие заминки возникли... Вот такой кусочек кода дописал в скетч терминала в loop:
Открываю монитор порта на компе и коннекчусь прогой в телефоне... Отправляю любой символ из терминала телефона - в монитор порта приходит "Hey! I got a new message!" (нахрена так и не понял, почему бы зеркалку не сделать и кстати как ее сделать???), ну ладно, теперь наоборот шлю с сериала компа "Privet"...на терминале телефона болт... Снова шлю любой символ с телефона на комп... И тут то вылетает сначала мой Privet, а затем и отправленный символ... Я так понял, что терминал это единственное, через что можно задавать значения переменным в прорамме, а тут пока никак...
После записи надо делать flush(). Тут есть пример https://github.com/blynkkk/blynk-library/blob/master/examples/Widgets/Terminal/Terminal.ino
После записи надо делать flush(). Тут есть пример https://github.com/blynkkk/blynk-library/blob/master/examples/Widgets/Terminal/Terminal.ino
Ну вот мой полный скетч:
Я может где-то и навертел лишнего, но тут led1 и led2 начинают работать не сразу после подключения, после пары тырканий кнопкой... И вот есть тут этот флэш, также как и проблема описанная выше)).. Каким кодом считать данные с терминала??? Записать terminal.print, а считать?
В примере что я скинул - есть пример считыванния из терминал-виджета. Посмотрите внимательно. Там есть 2 способа.
А тут пропущен флаш.
if (Serial.available()) {
terminal.println(char(Serial.read()));
terminal.flush();
}
А используя blynk уже не получится на w5100 одновременно выводить свою веб-станичку как раньше?
Плюнул на юсб, возможно дело в преобразователе (ch341) или конфигурации сети. Подключил через шилд. Вопросы такие. раз в сутки (не всегда) коммуникация зависает, ресет спасает, можно ли это решить вашими внутренними средствами? (простую внутреннюю презагрузку то раз в сутки я могу сделать сам)
Вопрос2 Горизонтальный слайдер (движек резистора) есть, можно ли его сделать вертикальным?
>> раз в сутки (не всегда) коммуникация зависает
Ммм, то есть железка полностью не отвечает? Даж не знаю, еще не было у нас такого. Что за борда? У нас есть авторестарт если потрелся конекшн, но елси подвисает само железо... То врятли можно что-то сделать. Разве что как вариант самому в коде останавливать блинк и перезапускать (елси проблема действительно в Блинке).
вертикальный слайдер будет сделан позже.
>>А используя blynk уже не получится на w5100 одновременно выводить свою веб-станичку как раньше?
По логике можно, если там можно открывать пару портов, то почему нет.
Я не знаю борда виснет или конекшн. Лампочки моргают на w5100 но на телефоне пишет что ю ардуино из нот ин нетворк. У меня классика arduinoUNO+shieldW5100.
Попробуйте взять самую последнюю версию библиотеки из гитхаба. Кнопка "Download ZIP". И сообщите результат.
Ну вот у меня дуинка сидит с w5100 уже 4-5 дней на блинке и пока без проблем... Хочу все же дублировать веб-страничкой попытаться, но пока не доберусь никак... andrikll попробуй сутки посидеть на веб-страничке, а не на блинке... Так вычислишь проблему.
Подробнее плиз, со ссылкой!
Подробнее плиз, со ссылкой!
Я отсюда начинал http://zelectro.cc/Ethernet_shield_W5100 ... А вообще, если Вы еще не имели опыт с HTML и Вам это особо и не надо, то по-началу придется перелопатить много че...
Попробуйте взять самую последнюю версию библиотеки из гитхаба. Кнопка "Download ZIP". И сообщите результат.
Добрый день! Тоже осваиваю blynk. Отличная идея и реализация, но столкнулся с аналогичной проблемой умирает железка.
Железо uno + 5100. Ардуиновский веб-сервер живет отлично (да и вообще другие приложения всегда жили отлично). А блинк отваливается через 5...500 секунд.
Данные отправляются внутри функции sendUptime, которая инициализируется timer.setInterval(2000, sendUptime);
Основной цикл
Там же внутри sendUptime идет отправка в ком-порт для контроля. В какой-то момент все просто останавливается.... и тишина...
[0] Getting IP...
Приложение андроид говорит что ардуина не в сети.
Попробовал работать от внешнего БП - проблема сохраняется. Попробовал на рабочем состоянии передергивать изернет - не виснет. В общем, пока не удалось однозначно выявить, после чего все останавливается...
Как можно поискать решение проблемы?
Забыл дописать. Включил дебаг - вот лог "типового" зависания (38, 39 и тд - это мой счетчик, 0,5Гц)
Вот нет сейчас возможности проверить у меня... Может работы на сервере у них... Автора бы сюда
А какие виджеты есть у Вас в приложении? И какие у них настройки? Они ведь в режиме PUSH у вас работают (Имею в виду эту штуку)?
В приложении виджет WidgetLED led1(0); - телефоне моргает виртуальный светодиод если связь есть
Вообще изначально - было только управление светодиодом на ардуинке кнопкой с андроида. Обнаружил, что через какое-то время управление светодиодом отваливается. Ну и начал дебажить своими средствами...
А Можно полный код?
Сократил код до тестового минимума - ардуина отсылает моргающий светодиод с частотой 1Гц
Софт на андроиде даже не запускаю - т.е. включаю ардуину, смотрю лог. Подключилась к серверу, начала передавать на сервер данные. Через некоторое время - зависает. Вот окончание лога.
Ок спасибо. Будем проверять у себя. Библиотека кстати последняя? 0.3.1?
У меня все отлично работает. Но есть одно отличие от Вашего скетча. Доплнительный while.
В базовом примере оно кстати есть.
Доброго дня! Пока мои эксперименты не привели к желаемому результату (т.е. к отсутствию зависаний). Я сам склоняюсь к тому, что лажает изернет-шилд (жаль, нет возможности заменить железо). Уже проверил все - частоты работы проца, изернет-шилда, напряжения питания.
Сейчас мой код такой (это ваш стандартный пример PushData, в который я добавил прерывание и вывод лога):
Прерывание вставил для того, чтобы попытаться опеределить, живет ли хоть что-то вообще.
В результате на ком-порте вижу такой лог (это момент "зависания", когда приложение blynk на адроид перестает получать данные от платы):
446
int=517
447
int=518
448
int=519
int=520
int=521
int=522
т.е. плата успешно прожила примерно 8 минут, а потом блинк "упал". светодиод в прерывании моргает, но loop() не "бегает" и блинк не отвечает (внутри loop тоже пробовал вставлять моргающий светодиод).
Пробовал избавиться от timer.run() - результат тот же.
Я не знаю, что у меня уникально - железо или что-то приходящее по сети... Изернет-шилд до этого не был замечен в подобном поведении. Но blynk у меня стабильно не работает. И судя по форуму, есть как минимум еще один похожий случай.
Буду признателен если Вы поможете разобраться.
Что то тема "заснула", не уже ли ни кого не затронул проект
Когда планируется выход русифицированной версии приложения на андройд и инструкция (документация) по blynk?
Ну я так понял что у всех все ок =). Очень много работы. Локализировать нету времени. Седлали недавно HTTP API, Web Sockets, шаринг, возможность получить стейт с сервера и много чего другого. Сейчас работаем над возможностью более гибкой кастомизации виджетов.
Наверное я один такой непонятлевый. С цифровыми и аналоговыми пинами я более менее понял, а вот с виртуальными ....... -(((
Да и с виджатами есть проблема, особено с таймером. Кстати на Вашем сайте, ссылка на пример с виджитом таймер, выводит на пример с виджитом кнопки.
Я всего второй день, как познакомился с данным проектом, надеюсь, что осилю его.
Скажу сраз, проблему решил.
На текущий момент плата успешно живет уже 3 недели. Поняв, что хоть я и не один такой, но как такового решения нет, я начал копать. Копал полтора месяца. Снифферил шарком обмены по сети, докапался до самых глубин, регистров 5100, стеков и протоколов.... ничего не помогало!!! 5100 вела себя просто странно!!! она подвисала в while при считывания окончания отправки пакета
При этом даже аппаратный ресет не выводил ее из ступора (не работал DHCP, и на фиксированных IP адресах тоже не работал), только перезапуск питания.
К счастью, пришла к этому моменту новая заказанная плата изернет-шилда, которую заказал еще в октябре.... И все стало хорошо!
В общем что конкретно не так с тем шилдом - я так и не знаю. Похоже на какие-то проблемы с самой имс. В общем-то осадочек остался....
На новом шилде тестовая апликуха живет уже 3 недели и успешно шлет данные о температуре в доме на смартфон. пока обдумываю концепцию сигнализации-мониторинга дома.
Так что пользуясь случаем хочу сказать спасибо авторам в лице doom369 !!!
>>Т ак что пользуясь случаем хочу сказать спасибо авторам в лице doom369 !!!
Спасибо!
>>С цифровыми и аналоговыми пинами я более менее понял, а вот с виртуальными ....... -(((
Воспринимайте виртуальные пины как функции, которые вы можете вызывать из приложения.
а каким шилдом предпочтительнее использовать для обмена arduino и blynk?
1. w5100 (http://ru.aliexpress.com/item/Ethernet-Shield-W5100-R3-Network-Expansion...)
2. ens28j60 (http://ru.aliexpress.com/item/ENC28J60-LAN-Ethernet-Network-Board-Module...)
3. esp8266 (http://ru.aliexpress.com/item/New-Remote-ESP8266-Wireless-Module-Stable-...)
На Ваш вкус. Мы все поддерживваем. С W5100 - проще всего запустится. С esp8266 тяжелее всего =). (Ну судя по отзывам)
doom369, нужная ваша консультация
float t = analogRead (0);
t = t * 5 / 1023 * 100;
В приложение Blynk, создаю проект, в нем виджет «value display». Указываю pin – a0 и включаю связку 0-1024. Запускаю проект и мне выдается 50 (реальная и по формуле 24). А как мне передать t = t * 5 / 1023 * 100; Или надо делать через виртуальные пины?
3. есть в проекте кнопка подвесил на D13. При запуске проекта кнопка - off, а диод (d13) горит. После того, как я несколько раз понажимаю кнопку все синхринизируется. Как можно сделать, чтоб при запуске проекта все автоматом синхранизировалось?
1. Среднее блинк сообщение 5 байт хидер + тело. Например если шлете температуру 36.00 на пин V1, то 1 сообщение 15 байт . Сколько Вы таких сообщений пошлете зависит от вас. + пинг 5 байт каждые 5 сек если железка онлайн.
2. Надо делать через виртуальные. Немногие показания можно считывать сразу с аналоговых пинов.
3. Тоже через виртуал пин. Если горит диод и кнопка должна быть загоревшейся (кнопка на V1) при старте железки - то нужно на старте сделать :
Blynk.virtualWrite(V1, digitalRead(D13));
это псевдокод. не гарантирую что он сразу заработает. но идею Вы поняли
2. Надо делать через виртуальные. Немногие показания можно считывать сразу с аналоговых пинов.
А в каком месте я могу слать значение для виртуального пина (Blynk.virtualWrite(V1, t)) в loop () или BLYNK_WRITE (V1)
А вообще, что это за BLYNK_WRITE () {} и BLYNK_READ () {} ?
Спасибо
В лупе нельзя. Можно через таймер. можно через BLYNK_READ(V1) смотрите на базовые примеры. там все есть.
>>А вообще, что это за BLYNK_WRITE () {} и BLYNK_READ () {} ?
Ну это как геттеры и сеттеры.
С таймером понятно, я сам указываю интервал через какое время запускать процедуру, а у BLYNK_WRITE () {} и BLYNK_READ () {} какая переодичность (аналогично loop)?
Они обрабатываются в лупе. Но срабатывают только из приложения.
doom369, на данном форуме нет личной переписки, а своими вопросами (для многих они простые, дуратские, дублирующие и т.п.) я не хочу "мусорить" тему. Подскажите какими средствами я могу с вами переписываться для консультации? Мой эл. адрес esa@pochta.ru
Спасибо, за помощь и за данный проект.
Эта тема для ответов и создавалась. Так что не стесняйтесь =).
Я планирую на arduino сделать проект "сигнализация на даче". Которая по событиям с датчиков (движения, температуры и т.п.) будет отправлять смс мне на телефон. В телефоне у меня установлено приложение tasker, с помощью которого я отслеживаю приход смс от сигнализации и далее tasker выполняет сценарий, котрорый я запрограммировал. В сценарии tasker я хотел бы включить запуск конкретного (в дальнейшим надеюсь их будет много) Blynk-проекта. Реальная задача или нет?
И еще не могли бы вы подробнее рассказать о виджите "timer"?
PS. У меня вчера произошел какой то баг. Создал несколько проектов для тренировок, несколько виджитов, ни чего сложого и в какой то момент при запуске приложения blynk меня попросили заного аввторизироваться. Я ввел логин и пароль и ...... ни одного проекта нет.
Я точно знаю, что проекты сам не удалял. У вас на практике были такие случаи? Как я могу себя обезопасить (резервные копии проектов и т.п.)?
Спасибо.
По таскеру - думаю да. Много людей его используют с Блинком. Как именно я не знаю. Сам не использую.
По багу - у вас последняя версия? иОС, Андроид?
По багу - у вас последняя версия? иОС, Андроид?
Вчера была предпоследняя (сегодня обновился), андроид
Ну такая бага была. Вроде уже не должно было бы быть. Проекты хранятся автоматом на сервере и не должны пропадать как Вы понимаете =).
А про виджит "timer" можете по подробнее расказать?
Сколько будет стоить шаринг через 30 дней? Плата за одни проект или за все? Платит один пользователь или все кто пользуется?
Я правильно понял, что шаринг проект - это одни проект, которым могут пользоваться несколько пользователей android & ios?
Ну таймер триггерит событие HIGH на старт и LOW на стоп в конкретное время указанное в виджете.
Ну платных фич в ближайшие пару мес не будет. Нету времени на это. Так что пока можете не переживать.
Да. только они не могут его редактировать. Это для случая, когда надо дать управление, например жене и чтобы она ничего не поламала =).
Посадил я таймер на v5. Далее прописал:
таймер не включается/выключается. Диод горит/гаснит
должно быть BLYNK_WRITE
BLYNK_READ - для виджетов у которых есть FrequencyReading.