Это мой первый опыт работы с ESP, не подскажете в какой последовательности загружать файлы из архива 1 пост. Открыл проект в IDE а там несколько вкладок. Какие настройки arduino ide выбирать, я имею в виду память 4 (1spiffs) или 4 (3spiffs), какую частоту. У меня плата nodemcu V3 Lua
@fsergei70 в архиве не бинарник прошивки, а скетч для Arduino IDE. Разархивируйте все файлы в папку проекта и открывайте с помощью IDE. Она сама всё откроет правильно. Потом компилируйте и заливайте в есп.
SES,
1. Если светится вверху, то это включенный будильник, внизу - включенный WiFi.
2. А зачем его держать включенным, если он нужен только для синхронизации времени, один раз в день. Как никак но эфир засоряет.
3. А что такое системные часы? Этот код я так понял синхронизирует время по NTP, а для этого необходим постоянно включенный WIFi (см.п.2). Точности DS3231 с головой хватает, даже синхронизация раз в день излишняя.
Одновременно в живую изучал что такое микроконтроллеры и с чем их едят, и пытался сделать что нибудь нужное.
Делюсь "Как есть" тем что у меня получилось.
. Будильники сейчас управляют 3-мя реле. пины реле прописываются в массиве alarm_pin
. За место одного из реле можно подключить пассивный Бузер, номер реле за место которого потключен Бузер прописывается в константе buzzer
. Добавлен MQTT
. Можно читать через MQTT и отображать на табло погоду с уличного датчика
. Можно транслировать через MQTT температуру с внутреннего датчика
. Можно управлять реле через MQTT
. WiFi сейчас подключен постоянна из за MQTT
Примечание: Топик управления реле является префиксом, т.е. чтобы например включить третье реле нужно будет послать в топик ESP8266/Clock/RELAY_3 1 , а что бы выключить 0.
Для второго реле топик будет оканчиваться /RELAY_2 , и /RELAY_1 для первого реле...
ps Что то доделывать или править под чьи то желания, я не буду. Без обид...
Одновременно в живую изучал что такое микроконтроллеры и с чем их едят, и пытался сделать что нибудь нужное.
Делюсь "Как есть" тем что у меня получилось.
. Будильники сейчас управляют 3-мя реле. пины реле прописываются в массиве alarm_pin
. За место одного из реле можно подключить пассивный Бузер, номер реле за место которого потключен Бузер прописывается в константе buzzer
. Добавлен MQTT
. Можно читать через MQTT и отображать на табло погоду с уличного датчика
. Можно транслировать через MQTT температуру с внутреннего датчика
. Можно управлять реле через MQTT
. WiFi сейчас подключен постоянна из за MQTT
ps Что то доделывать или править под чьи то желания, я не буду. Без обид...
@Xakep
Библиотеку Time-master установил, спасибо, но пошли другие ошибки по добавлению библиотек, их установил ну вот последняя вылезла:
E:\Arduino\libraries\AzureIoTHubMQTTClient\src\AzureIoTHubMQTTClient.cpp:210:31: error: 'jsonBuffer' was not declared in this scope
StaticJsonBuffer<200> jsonBuffer;
^
exit status 1
Ошибка компиляции для платы NodeMCU 1.0 (ESP-12E Module).
Не думал что такая запара с компиляцией в Arduino IDE!
Я это предвидел, и по этому перезалил свой архив.
В нем приложил библиотеки Time-master и pubsubclient-master ...
А вот свою папку E:\Arduino\libraries\AzureIoTHubMQTTClient перемести пока куда нибуть в другое место, что бы они не конфликтовали с pubsubclient-master .
Я это предвидел, и по этому перезалил свой архив.
В нем приложил библиотеки Time-master и pubsubclient-master ...
А вот свою папку E:\Arduino\libraries\AzureIoTHubMQTTClient перемести пока куда нибуть в другое место, что бы они не конфликтовали с pubsubclient-master .
Настоящая запара с компиляцией из исходников к которым приложен только Readme.txt и в котором написано всего две строчки -
make
make install
....
Hi Valdemar2005.
Congratulations for the project.
I would like to do this watch too but I have problems with compilation of the program.
I tried to compile by Arduino IDE 1.8.5 and I receive such errors:
In file included from c:\documents and settings\administrador\configurações locais\dados de aplicativos\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\utility:68:0,
from c:\documents and settings\administrador\configurações locais\dados de aplicativos\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\algorithm:60,
from C:\Documents and Settings\Administrador\Configurações locais\Dados de aplicativos\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:254,
from C:\DOCUME~1\ADMINI~1\CONFIG~1\Temp\arduino_build_996479\sketch\Clock5web.ino.cpp:1:
c:\documents and settings\administrador\configurações locais\dados de aplicativos\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\c++config.h:429:30: fatal error: bits/cpu_defines.h: No such file or directory
#include <bits/cpu_defines.h>
^
compilation terminated.
exit status 1
Erro compilando para a placa Generic ESP8266 Module
As I try to compile with Arduino IDE 1.6.7 I get other errors:
Usando a biblioteca ESP8266WiFi na versão 1.0 na pasta: C:\Users\STANLEY\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\libraries\ESP8266WiFi
Usando a biblioteca ESP8266WebServer na versão 1.0 na pasta: C:\Users\STANLEY\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\libraries\ESP8266WebServer
Usando a biblioteca EEPROM na versão 1.0 na pasta: C:\Users\STANLEY\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\libraries\EEPROM
Usando a biblioteca Time-master na versão 1.5 na pasta: C:\Program Files (x86)\Arduino\libraries\Time-master
Usando a biblioteca Wire na versão 1.0 na pasta: C:\Users\STANLEY\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\libraries\Wire
Usando a biblioteca ESP8266HTTPUpdateServer na versão 1.0 na pasta: C:\Users\STANLEY\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\libraries\ESP8266HTTPUpdateServer
Usando a biblioteca Ticker na versão 1.0 na pasta: C:\Users\STANLEY\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\libraries\Ticker
exit status 1
'set_buf_scroll' was not declared in this scope
Arduino 1.6.7 and 1.8.5 installed on separate computers.
I am a beginner and I do not know what to do. You could help me ?
It is possible for you to generate a * .bin file so that it can be loaded by
FLASH DOWNLOAD TOOLS or other similar?
Одновременно в живую изучал что такое микроконтроллеры и с чем их едят, и пытался сделать что нибудь нужное.
Делюсь "Как есть" тем что у меня получилось.
. Будильники сейчас управляют 3-мя реле. пины реле прописываются в массиве alarm_pin
. За место одного из реле можно подключить пассивный Бузер, номер реле за место которого потключен Бузер прописывается в константе buzzer
. Добавлен MQTT
. Можно читать через MQTT и отображать на табло погоду с уличного датчика
. Можно транслировать через MQTT температуру с внутреннего датчика
. Можно управлять реле через MQTT
. WiFi сейчас подключен постоянна из за MQTT
Примечание: Топик управления реле является префиксом, т.е. чтобы например включить третье реле нужно будет послать в топик ESP8266/Clock/RELAY_3 1 , а что бы выключить 0.
Для второго реле топик будет оканчиваться /RELAY_2 , и /RELAY_1 для первого реле...
ps Что то доделывать или править под чьи то желания, я не буду. Без обид...
Clock5web_My:199:21: error: 'MQTT' does not name a type
Clock5web_My:199:34: error: expected unqualified-id before '&' token
Clock5web_My:199:34: error: expected ')' before '&' token
Clock5web_My:199:36: error: expected initializer before 'pub'
ntp:35:20: error: 'IPAddress' was not declared in this scope
ntp:35:31: error: 'timeServerIP' was not declared in this scope
ntp:62:20: error: variable or field 'sendNTPpacket' declared void
ntp:62:20: error: 'IPAddress' was not declared in this scope
ntp:62:31: error: 'address' was not declared in this scope
In file included from C:\Users\Р?лья\Documents\Arduino\Clock5web_My\Clock5web_My.ino:34:0:
Clock5web.h:66:43: error: 'time_t getNtpTime(IPAddress&)' redeclared as different kind of symbol
time_t getNtpTime( IPAddress &timeServerIP);
^
ntp:35:8: error: previous declaration of 'time_t getNtpTime'
C:\Users\Р?лья\Documents\Arduino\Clock5web_My\ntp.ino: In function 'bool get_ntp_time()':
ntp:19:57: error: 'getNtpTime' cannot be used as a function
C:\Users\Р?лья\Documents\Arduino\Clock5web_My\ntp.ino: In function 'time_t getNtpTime(IPAddress&)':
ntp:35:43: error: 'time_t getNtpTime(IPAddress&)' redeclared as different kind of symbol
ntp:35:8: error: previous declaration of 'time_t getNtpTime'
Несколько библиотек найдено для "PubSubClient.h"
Используется: C:\Program Files (x86)\Arduino\libraries\pubsubclient-master
Не используется: C:\Users\Илья\Documents\Arduino\libraries\ESP8266_Microgear
Не используется: C:\Users\Илья\Documents\Arduino\libraries\CMMC_MQTT_Connector
Несколько библиотек найдено для "TimeLib.h"
Используется: C:\Users\Илья\Documents\Arduino\libraries\Time-master
Не используется: C:\Users\Илья\Documents\Arduino\libraries\Time
Не используется: C:\Program Files (x86)\Arduino\libraries\Time-master
Не используется: C:\Users\Илья\Documents\Arduino\libraries\Time
Не используется: C:\Program Files (x86)\Arduino\libraries\Time-master
Не используется: C:\Users\Илья\Documents\Arduino\libraries\Time
Не используется: C:\Program Files (x86)\Arduino\libraries\Time-master
Не используется: C:\Users\Илья\Documents\Arduino\libraries\Time
Не используется: C:\Program Files (x86)\Arduino\libraries\Time-master
exit status 1
'MQTT' does not name a type
Сергей, здравствуйте. Я немного не понял как добавить функцию в скетч. Не могли бы вы сделать пример с запуском сервере и этим куском кода, чтобы было понятно, что и куда ставить!
Вы бы очень помогли мне. Заранее спасибо!
//-------------------------------------------------------------- handleGPIO
void handleGPIO()
{
serv_ms = millis(); // это для внутреннего использования в программе часов
digitalWrite( relay_GPIO, !digitalRead (relay_GPIO)); // меняем состояния Пина на противоположенное
DEBUG_MSG( "Set GPIO%d %d\n", relay_GPIO, digitalRead (relay_GPIO)); // отладочный вывод
HTTP.send(200, "text/html", ""); //посылка ответа сервера
}
добавить например в конец void handleTime() перед
str += html_end();
Сам код кнопки в http:
кажется всё. Тогда на странице Время внизу будет кнопка GPIO для вызова JavaScript, который отправляет запрос на сервер esp, который вызывает обработчик страницы, а уже он переключает пин relay_GPIO.
Сергей, здравствуйте. Я немного не понял как добавить функцию в скетч. Не могли бы вы сделать пример с запуском сервере и этим куском кода, чтобы было понятно, что и куда ставить!
Вы бы очень помогли мне. Заранее спасибо!
@MrRites давайте вы попробуете сделать все точно как написано. А уж если что то будет непонятно или не получаться, то задавайте вопросы конкретно. На мой взгляд описано максимально подробно, больше добавить мне нечего.
Если вопрос именно про функцию, то прямо так как написано и добавляете. Вместе со слешами. Копируете и вставляете в файл web.ino в конец функций.
@MrRites давайте вы попробуете сделать все точно как написано. А уж если что то будет непонятно или не получаться, то задавайте вопросы конкретно. На мой взгляд описано максимально подробно, больше добавить мне нечего.
Если вопрос именно про функцию, то прямо так как написано и добавляете. Вместе со слешами. Копируете и вставляете в файл web.ino в конец функций.
Извините, что неконкретно задал вопрос. Дело в том, что я делаю другой проект и мне необходимо загрузить в файловую систему ESP страничку (HTML, CSS, JavaScript), создать кнопку на странице и опрашивать ее на нажатие, при этом она не должна быть ссылкой. После нажатия на кнопку, условно говоря, должен загореться светодиод. Как я понял, по вашему примеру это возможно.
Лично у меня, когда я пытался разобраться с этим сам, не удалось связать код ESP и HTML страницу которая находится в файловой системе.
В вашем примере, я понимаю, будет необходимо добавить еще несколько строк для определения функции, но я не знаю какие. Не могли бы вы мне подсказать как это сделать. Если вам,к конечно не сложно.
Заранее спасибо, хорошего дня!