None
:)
Ну вообще нужно более менее отлаженное решение, для мини продакшена
Andy
Ну вообще нужно более менее отлаженное решение, для мини продакшена
Вы хотите заказную разработку для производства?
None
Вы хотите заказную разработку для производства?
Хотим отлаженное решение, которое будет идти в составе рабочей станции (ПК)
None
Возможно что то можно будет доделать
romanetz
Под заббикс уже написали
romanetz
Поищи на гитхабе, я находо
romanetz
Находил
romanetz
И gsm на еспхе в смски тоже умеет
None
Под заббикс уже написали
Мне кажется заббикс слишком громоздко для этого, по моему мнению. Модуль должен быть автономен сам по себе, получать адрес в сети, и все данные и настройки показывать через веб панель
Andy
Все таки Arduino это больше учебный и домашний проект. В производство лучше использовать инструменты от вендора - esp-idf. Но если все таки хотите использовать Arduino, то тщательно проверяйте библиотеки, Unit тестирование и прочие приемы повышения качества кода.
Daniil
У меня в проекте куча функций, их ведь можно вынести в отдельный файл.h Что гуглить, чтоб понять, как сделать? А то я сделал не зная и он мне странные ошибки начал выдавать
Resident
У меня в проекте куча функций, их ведь можно вынести в отдельный файл.h Что гуглить, чтоб понять, как сделать? А то я сделал не зная и он мне странные ошибки начал выдавать
Простой способ, работающий, но совершенно ни разу не правильный (не соответствует догматам C/C++): Выделяем часть кода в отдельный файл, укладываем рядом со скетчем, а потом в том месте скетча, где оно должно находиться, вставляем конструкцию #include "имя нашего файла с выделенными кусками кода". Препроцессор еще до компиляции врежет содержимое дополнительного файла в скетч в том самом месте, где находится директива #include Вариант второй, более правильный: Выделяем часть кода, содержащую требуемые функции в отдельный файл. При этом данные функции не должны использовать никаких функций, переменных и классов из основного файла программы. Требование необязательное, но его несоблюдение потребует построения дополнительных связей в виде объявления переменных из другого модуля как extern, описания прототипов функций и создает излишнюю сложность связей кода и серьезно осложняет повторное использование кода. Короче говоря, лучше без крайней необходимости так не делать. файлу даем какое-нибудь имя и расширение .cpp. Например, file.cpp. Делаем второй файл с прототипами функций, которые будут использоваться в основном файле программы. Даем ему то же имя, но другое расширение - .h Выкладываем получившиеся два файла в папку со скетчем. добавляем в начало скетча строку #include "имя получившегося файла с расширением.h" Сверхпростой и в общем-то бессмысленный пример. Допустим, что в наш файл была выделена функция function, имеющая параметром int и возвращающая int. Файл с функцией file.cpp: Код (Text): int function(int i) { return(i); } Файл с прототипом функции file.h: Код (Text): int function(int); Скетч (test.ino): Код (Text): #include "file.h" setup() { Serial.begin(9600); } loop() { Serial.println(function(millis()%2)); } Вариант третий, еще более правильный. То, что получилось во втором варианте копируется в папку с библиотеками в подпапку с именем, которое совпадает с именем файла с функциями без расширения. А еще лучше, оформляется в архив, как библиотека, чтобы было просто ее устанавливать в IDE. PS. Arduino IDE не содержит вменяемых средств для работы с проектами, содержащими более одного файла. Она умеет по факту только открывать уже готовый такой проект, показывая все его файлы (они должны все лежать в одной папке) во вкладках, и подключать к проекту внешние библиотеки. Так что придется делать все это расчленение во внешнем текстовом редакторе, укладывая результаты в папку со скетчем, а потом уже открывать его в Arduino IDE. Если же делается библиотека (вариант три) то файлы библиотеки придется всегда править чем-то внешним по отношению к Arduino IDE.
Daniil
Простой способ, работающий, но совершенно ни разу не правильный (не соответствует догматам C/C++): Выделяем часть кода в отдельный файл, укладываем рядом со скетчем, а потом в том месте скетча, где оно должно находиться, вставляем конструкцию #include "имя нашего файла с выделенными кусками кода". Препроцессор еще до компиляции врежет содержимое дополнительного файла в скетч в том самом месте, где находится директива #include Вариант второй, более правильный: Выделяем часть кода, содержащую требуемые функции в отдельный файл. При этом данные функции не должны использовать никаких функций, переменных и классов из основного файла программы. Требование необязательное, но его несоблюдение потребует построения дополнительных связей в виде объявления переменных из другого модуля как extern, описания прототипов функций и создает излишнюю сложность связей кода и серьезно осложняет повторное использование кода. Короче говоря, лучше без крайней необходимости так не делать. файлу даем какое-нибудь имя и расширение .cpp. Например, file.cpp. Делаем второй файл с прототипами функций, которые будут использоваться в основном файле программы. Даем ему то же имя, но другое расширение - .h Выкладываем получившиеся два файла в папку со скетчем. добавляем в начало скетча строку #include "имя получившегося файла с расширением.h" Сверхпростой и в общем-то бессмысленный пример. Допустим, что в наш файл была выделена функция function, имеющая параметром int и возвращающая int. Файл с функцией file.cpp: Код (Text): int function(int i) { return(i); } Файл с прототипом функции file.h: Код (Text): int function(int); Скетч (test.ino): Код (Text): #include "file.h" setup() { Serial.begin(9600); } loop() { Serial.println(function(millis()%2)); } Вариант третий, еще более правильный. То, что получилось во втором варианте копируется в папку с библиотеками в подпапку с именем, которое совпадает с именем файла с функциями без расширения. А еще лучше, оформляется в архив, как библиотека, чтобы было просто ее устанавливать в IDE. PS. Arduino IDE не содержит вменяемых средств для работы с проектами, содержащими более одного файла. Она умеет по факту только открывать уже готовый такой проект, показывая все его файлы (они должны все лежать в одной папке) во вкладках, и подключать к проекту внешние библиотеки. Так что придется делать все это расчленение во внешнем текстовом редакторе, укладывая результаты в папку со скетчем, а потом уже открывать его в Arduino IDE. Если же делается библиотека (вариант три) то файлы библиотеки придется всегда править чем-то внешним по отношению к Arduino IDE.
Спасибо большое
romanetz
Все таки Arduino это больше учебный и домашний проект. В производство лучше использовать инструменты от вендора - esp-idf. Но если все таки хотите использовать Arduino, то тщательно проверяйте библиотеки, Unit тестирование и прочие приемы повышения качества кода.
Рассматривайте их как фреймворк Не скажу относительно пользовательских библиотек, но в коде из esp32-arduino ничего криминального не увидел Вы же не требуете юнит тестов от .NET, скажем
Sid
Простой способ, работающий, но совершенно ни разу не правильный (не соответствует догматам C/C++): Выделяем часть кода в отдельный файл, укладываем рядом со скетчем, а потом в том месте скетча, где оно должно находиться, вставляем конструкцию #include "имя нашего файла с выделенными кусками кода". Препроцессор еще до компиляции врежет содержимое дополнительного файла в скетч в том самом месте, где находится директива #include Вариант второй, более правильный: Выделяем часть кода, содержащую требуемые функции в отдельный файл. При этом данные функции не должны использовать никаких функций, переменных и классов из основного файла программы. Требование необязательное, но его несоблюдение потребует построения дополнительных связей в виде объявления переменных из другого модуля как extern, описания прототипов функций и создает излишнюю сложность связей кода и серьезно осложняет повторное использование кода. Короче говоря, лучше без крайней необходимости так не делать. файлу даем какое-нибудь имя и расширение .cpp. Например, file.cpp. Делаем второй файл с прототипами функций, которые будут использоваться в основном файле программы. Даем ему то же имя, но другое расширение - .h Выкладываем получившиеся два файла в папку со скетчем. добавляем в начало скетча строку #include "имя получившегося файла с расширением.h" Сверхпростой и в общем-то бессмысленный пример. Допустим, что в наш файл была выделена функция function, имеющая параметром int и возвращающая int. Файл с функцией file.cpp: Код (Text): int function(int i) { return(i); } Файл с прототипом функции file.h: Код (Text): int function(int); Скетч (test.ino): Код (Text): #include "file.h" setup() { Serial.begin(9600); } loop() { Serial.println(function(millis()%2)); } Вариант третий, еще более правильный. То, что получилось во втором варианте копируется в папку с библиотеками в подпапку с именем, которое совпадает с именем файла с функциями без расширения. А еще лучше, оформляется в архив, как библиотека, чтобы было просто ее устанавливать в IDE. PS. Arduino IDE не содержит вменяемых средств для работы с проектами, содержащими более одного файла. Она умеет по факту только открывать уже готовый такой проект, показывая все его файлы (они должны все лежать в одной папке) во вкладках, и подключать к проекту внешние библиотеки. Так что придется делать все это расчленение во внешнем текстовом редакторе, укладывая результаты в папку со скетчем, а потом уже открывать его в Arduino IDE. Если же делается библиотека (вариант три) то файлы библиотеки придется всегда править чем-то внешним по отношению к Arduino IDE.
Пс вроде в 1.9 должны решить
SetPf
Ммм никто не видал С++ библиотеки строк статичных?
Null
https://www.opennet.ru/opennews/art.shtml?num=54191
Aler
Коллеги, а почему мак может перестать видеть контроллеры для прошивки? Пропал usb-serial порт
Aler
Пробовал Arduino IDE, ESPHome-Flasher
Aler
(esp8266)
Resident
(esp8266)
Драйверы, перезарпускался?
Aler
даже ставил повторно
Anonymous
👻hi
romanetz
даже ставил повторно
А что dmesg говорит?
Aler
решил просто с настолки пс, потом разберусь с макбуком
Aler
Может кто подсказать как правильно подключить к WS2815 DI чтобы две ленты были идентичные
Aler
я попробовал просто параллельно, но оно не хочет работать
Юрий
Кто подскажет, где в esp-idf изменить скорость загрузки, по умолчанию подставляет 460800, раньше менял в idf.py, сейчас по другому.
Ivansuper
Кто подскажет, где в esp-idf изменить скорость загрузки, по умолчанию подставляет 460800, раньше менял в idf.py, сейчас по другому.
Ну вообще всегда работала команда: idf.py -p COM1 -b 921600 flash (COM1 это пример, как и скорость)
Юрий
Ну вообще всегда работала команда: idf.py -p COM1 -b 921600 flash (COM1 это пример, как и скорость)
Я через eclipse работаю, по командной строке вопросов нет, а тут автоматом все запускается
Ivansuper
А, ну тут ты не уточнил : )
Ivansuper
В эклипсе должны быть команды в настройках интеграции
Ivansuper
Детальнее не подскажу, ибо терпения не хватило настроить эклипс
Юрий
Перекопал все, раньше находил где изменить в файле, потом все поменялось
Andy
Кто подскажет, где в esp-idf изменить скорость загрузки, по умолчанию подставляет 460800, раньше менял в idf.py, сейчас по другому.
Действительно че-то поменяли, убрали возможность задать CONFIG_ESPTOOLPY_BAUD_OTHER_VAL, можно самому kconfig сделать
Andy
Возможно этим счас и займусь для развлечения :)
Юрий
Да я и раньше "в лоб" делал😁, нужно обычно один раз поменять
Andy
Да я и раньше "в лоб" делал😁, нужно обычно один раз поменять
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/kconfig.html#config-esptoolpy-baud
Юрий
Спасибо, посмотрю
Юрий
Да, я как раз дошел до этого файла, в SDK config у меня не отображается скорость записи, только скорость монитора, видимо нужно обновляться
Andy
Кто подскажет, где в esp-idf изменить скорость загрузки, по умолчанию подставляет 460800, раньше менял в idf.py, сейчас по другому.
Вообщем по умолчанию скорость задается в esp-idf/tools/idf_py_actions/serial_ext.py в описании переменной ESPBAUD
Юрий
🔥спасибо большое!
SetPf
Здравствуйте. А выполнить хард ребут возможно из кода? Уже обсуждали как то выше, но чет ни к чему не пришли.
Indr1x
управляя любым gpio через транзистор прижимать reset будет считаться "из кода"? )
SetPf
Нет =)
SetPf
Не знаю, может сегфолт самому себе устраивать?
SetPf
Или он тоже будет софт? (не пробовал)
Stanislav
Всем привет. Подскажите - не пойму как сделать. Нужно "нажать" тактовую кнопку на увлажнителе воздуха. Для этого приобрел оптопару на микросхеме TLP281-4, но не пойму как с помощью нее закоротить контакты кнопки на 1 секунду. Планирую оптопару подключить в wemos d1 mini. Вопрос в следующем для работы оптопары необходимо чтобы к контактам HGND и HVCC были подключено питание? Можно ли как-то с помощью этой оптопары замыкать и размыкать один провод? Хотел делать по этому примеру -https://soltau.ru/index.php/themes/arduino/item/567-kak-podklyuchit-optoizolyator-k-arduino
SetPf
какую конкртено?
Конкретно я сталкивался с УАРТ - давно тут жопой горел. А сейчас, пусть и не так мерзко с вайфаем. Вайфай при резете не дисконнектится. Не то что бы с этим нельзя совладать... но это левые действия, которые не то что бы нужны и которые надо описывать и делать. Тем более не хочу еще об что нибудь долбануться в будущем.
SetPf
Все таки выполняя резет устройства, ожидаешь что оно таки зарезетится. =\
SetPf
Я на самом деле не оч пониманию нафига так сделали.
Andy
https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf
Stanislav
Про замыкание-размыкания провода , грубо - одной самой по себе. нет. С дополнительными компонентами да.
Может есть какой готовый модуль для ардуинки? Чтобы с одной стороны ардуинка, с другой провод с разрывом
SetPf
Мне по сути надо просто подпаять 2 провода к ногам кнопки и замыкать из на пару секунд и потом размыкать - вот и все. Может для этих целей лучше подойдет твердотелое реле?
От реализации кнопки зависит. В дешевых устройствах кнопка может быть "силовая" и попросту замыкать питание на нагрузку. А может быть и цифровая и тогда теоретически можно. Может быть аналоговое упоротство какое то, тогда надо смотреть...
Andy
А можно ли как-то это понять визуально или через замеры? Или только из схемы понятно? Может такое реле подойдет - https://aliexpress.ru/item/32880595456.html ?
Модель увлажнителя какая? Может есть в гугле сервисная схема. Или еще лучше не гадать, а поставить электромеханическое реле
SetPf
А можно ли как-то это понять визуально или через замеры? Или только из схемы понятно? Может такое реле подойдет - https://aliexpress.ru/item/32880595456.html ?
ну попробуйте внутрянку сфоткать и померяйте что на кнопке когда отпущена и когда нажата. Относительно земли.