Arduino+ESP8266+Blynk

olezhan36
Offline
Зарегистрирован: 29.02.2016

Здравствуте.

Нужна помощь. Имею рабочий скетч для ардуино UNO, который выполняет роль термостата, т.е. вкл/выкл нагрузку при достижении определенной температуры (датчик DS18B20). 

К ардуине "прикручены" LCS, энкодер и часики.

Хочу иметь возможность управлять параметрами вкл/выкл реле не только через энкодер, но и удаленно, через интернет.

Мне понравилось приложение Blynk. Есть модуль «ESP8266-12E» под названием «Witty Cloud»

Как допилить скетч для работы с Blynk и esp8266?

Пишут мол пятиминутное дело, но я никак!!!

Какой скетч/проишивку заливать в этом случае в ESP???

Ткните носом или помогите с кодом, пожалуйста.

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

А на сайте блинка посмотреть?

http://docs.blynk.cc/#hardware-set-ups-esp8266-standalone

olezhan36
Offline
Зарегистрирован: 29.02.2016

Ну никак я сам. Ума пока не хватает. Уже два дня пытаюсь разобраться, но тщетно.

Скетч взят отсюда http://arduino.ru/forum/proekty/sutochnyi-termostat-dlya-gazovogo-kotla

 

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

По той ссылке что я дал есть русское руководство даже. Сделайте все что там написано помигайте светодиодиком со смартфона, тогда Вам станет понятнее как переписать Ваш скетч. ESP шьется прям из ардуино иде. Если все равно нет конкретных вопросов то Вам в раздел ищу исполнителя...

olezhan36
Offline
Зарегистрирован: 29.02.2016

мне бы простенький пример как передать значение температуры с ардуины в блинк, изменить температуры вкл/выкл из блинк. А там дочитаю теорию и думаю доделаю свой.

Какой из примеров в библиотеке Blynk рассмотреть? С английским туговато еще:-)

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

Ну вот же по моей ссылке пример даже полный как раз передача температуры http://www.instructables.com/id/ESP8266-12-blynk-wireless-temperature-LM35-sensor/

Да сенсор аналоговый но сути дела это не меняет. Как передать температуру которая уже хранится в переменной там как раз описано.

olezhan36
Offline
Зарегистрирован: 29.02.2016

По указанной ссылке все работает на ESP. И датчики подключены тоже к ESP, и скетч заливается туда же. 

Вот тут я и не понимаю. Как мне подружить ардуино и ESP? Какой скетч куда "заливать"? Может ардуина мне вовсе и не нужна. Все залить на ESP?

Я пробую залить скетч из примера (Вашего) на ардуино,  компилятор ругается на

                  #include <ESP8266WiFi.h>
 
                  compilation terminated.
 
                 exit status 1
                 Ошибка компиляции для платы Arduino/Genuino Uno.
 
Свой скетч тоже не могу залить на ESP, компилятор ругается 
                 #include <avr/eeprom.h>
                  compilation terminated.
 
                 exit status 1
                 Ошибка компиляции для платы NodeMCU 1.0 (ESP-12E Module).

 

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

Конечно ардумна Вам и не нужна. Просто используйте ардуино иде а скетч будет для есп и заливаться будет в есп.

olezhan36
Offline
Зарегистрирован: 29.02.2016

Т.е. ESP  может на 100% заменить ардуину?? 

И со всеми библиотеками может работать и EEPROM есть?

Мне нужно оптимизировать свой скетч для ESP, подключить к ESP LCD I2C, часики, реле, датчики?

Но там логика 3,3В. Реле у меня 5В.

Я себе представлял так: ардуина опрашивает датчики, управляет реле и таймерами, пишет в ЕЕПРОМ и т.д., а ESP будет связующим звеном между ардуино и приложением Blync. Так можно сделать? если да, то прошу опять ткнуть меня носом.

 

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

Ну если хотите поизвращаться тогда соединяете есп и ардуино по сериалу. Ардуиной опрашиваете датчик, полученную температуру по сериалу шлете еспшки, она кладет ее в переменную с которой уже будет блинк работать. В обратну сторону тоже самое. Блинк шлет что-то есп обрабатывает и отправляет по сериалу в ардуинку. Я бы лучше реле запускал через транзистор и все сделал сразу на есп, либо реле найти которое стабильно при 3х вольт срабатывает (кстати, то что у Вас может и срабатывает от 3х вольт стабильно)

Logik
Offline
Зарегистрирован: 05.08.2014

Не заменит ардуину на 100%, в чем-то на 20%, в чемто на 200%. С EEPROM может работать.  Подключить можна все, если выводов хватит. Если нужно работать по сети то писать все на ESP очень верный вариант. Какой нафиг Blync - хуинк?! Знаю есть светодиодом мигает один, он?

olezhan36
Offline
Зарегистрирован: 29.02.2016

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

Я понимаю, что библиотеки для LCD I2C, для датчика температуры, для ЕЕПРОМ для ардуино и ESP одинаковые?

Или они для ESP свои специфические?

olezhan36
Offline
Зарегистрирован: 29.02.2016
При компиляции моего скетча в для ардуино:
Скетч использует 20220 байт (62%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 1300 байт (63%) динамической памяти, оставляя 748 байт для локальных переменных. Максимум: 2048 байт.
Потянет ли такое ESP?
Извиняюсь за возможно глупые вопросы.
Просто обидно будет что-то переделывать, а потом узнать что зря.....
b707
Offline
Зарегистрирован: 26.05.2017

olezhan36 пишет:

Потянет ли такое ESP?

начните с определения кол-ва и типа нужных выводов - с этим могут быть проблемы. А по памяти. ИМХО, там все нормально

olezhan36
Offline
Зарегистрирован: 29.02.2016

Спасибо всем откликнувшимся. Немного разобрался. Буду пробовать оптимизировать код под ESP.

Но первое что я сделал-скомпилировал свой скетч для ESP и вот:

C:\Users\Oleg\Documents\Arduino\libraries\EEPROMEx/EEPROMex.h:29:24: fatal error: avr/eeprom.h: No such file or directory
 
 #include <avr/eeprom.h>
 
                        ^
 
compilation terminated.
 
exit status 1
Ошибка компиляции для платы NodeMCU 1.0 (ESP-12E Module).
Что это значит? (для УНО компилиется без ошибок)
Logik
Offline
Зарегистрирован: 05.08.2014

логично. ESP не AVR

olezhan36
Offline
Зарегистрирован: 29.02.2016

:-)) По мне так Ардиино не AVR,

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

olezhan36
Offline
Зарегистрирован: 29.02.2016

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

Да тут проблемы, у меня на ардуине задействованы 6 аналоговых пинов (из них 3 это 74HC595 для сбрежения цифровых), 5 цифровых (2 из них работают с энкодером по прерыванию).

b707
Offline
Зарегистрирован: 26.05.2017

olezhan36 пишет:

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

проблема в том, что сходу на ваши вопросы может ответить только тот, кто делал ровно тоже. что пытаетесь вы. А шансов на такое - немного. Остальным требуется взять такое же железо и пробовать.

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

olezhan36
Offline
Зарегистрирован: 29.02.2016
Подводим итоги:
1. Либо я заливаю скетч на ESP, к ней "прикручиваю" датчики, реле, экран, часы, энкодер. ESP обменивается с Blynk по WiFi.
2. Либо я все датчики и т.д оставляю на ардуино (как у меня сейчас). К ардуине на RX и TX "вешаю" ESP. Тогда писать два скетча. Один для ардуино, второй для ESP.
 
Вариант1. Мне катастрофически не хватает пинов. ESP не AVR и не все библиотеки  подходят. В часности ЕЕПРОМ. Что-то там нужно                           менять (компилятор  ругает). А я не знаю что.
Вариант2. Как организовать обмен между ESP и Blynk я разобрался. Скетч напишу.
               Как организовать обмен данными между ESP и ардуино? Тут нужен пример. 
 
Неужели ESP не может быть просто шилдом, как "интернет шилд" скажем? Для которого не надо писать скетч? А будет использована просто "прошивка" (не уверен что прошивка!=скетч).
Интрнет шилд меня не устраивает, нужно тянуть провод (а очень! не хотелось)
         
 
Logik
Offline
Зарегистрирован: 05.08.2014

olezhan36 пишет:

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

Понятно. Калека немощный, ну не в смысле руки-ноги, а в умственном плане. А что заставляет лезть в непосильное дело? По задаче на преподов-изуверов не похоже. Жена наверно. Или теща?

b707
Offline
Зарегистрирован: 26.05.2017

olezhan36 пишет:

Неужели ESP не может быть просто шилдом, как "интернет шилд" скажем? Для которого не надо писать скетч? А будет использована просто "прошивка" (не уверен что прошивка!=скетч).

ерунду пишете. Даже для шилдов "с прошивкой" надо писать код для ардуины, который будет с этим шилдом взаимодействовать. А большинство шилдов и вовсе никаких прошивок не имеют - просто железки, и без программирования работы с их периферией использовать вы их не сможете.

ESP может быть подчиненным блоком со своей прошивкой - тогда с ним общаются с помощью "АТ-команд". Но программирование обмена командами, получение и разбор ответов от модема - все равно придется делать.

Поймите, ардуино, несмотря на имидж - отнюдь не ЛЕГО-конструктур для детей. Простым соединением готовых модулей на ардуино можно собрать лишь самые элементарные вещи, типа мигания светодиодом. Все, что сложнее - требует вполне взрослого программирования.