AKE
Скорее всего купили готовые блок wifi bt и по шоглашению нельзя публиковать либы, как с асмом
Да, и это не отменяет то, что я написал. У тех же ребят и либы купили готовые
AKE
Ладно, парни. Не обращайте внимания, шутки всë 😉
Leonid
Скорее всего купили готовые блок wifi bt и по шоглашению нельзя публиковать либы, как с асмом
Ну асм с оговорками доступен, встречался код на гите под esp32 с вставками маш кодов
Leonid
Правда вопрос c wifi/bt это не отменяет
Анатолий
Кто знает как таймеры на esp32 объявлять? компилятор жалуется что таймер не задекларирован
Анатолий
где то ввеху объявление структуры const esp_timer_create_args_t periodic_timer_args = { .callback = &timer_30sec_callback, /* name is optional, but may help identify the timer when debugging */ .name = "timer_30sec" }; этот кусок запускаеися 1 раз при запуске (окончание) esp_timer_handle_t timer_30sec; // название таймера ESP_ERROR_CHECK(esp_timer_create(&periodic_timer_args, &timer_30sec)); // структура , название таймера } //**основной код void timerfunc(uint32_t timersrc) { if (mode_prev!=mode) {if (mode==3) { ESP_ERROR_CHECK(esp_timer_start_periodic(timer_30sec, 30000000)); // 30 секунд }
Slava
О, круто, это в ардуино иде на языке си? Наверно ты это откуда-то позаимствовал? А в оригинале это работало?
Анатолий
О, круто, это в ардуино иде на языке си? Наверно ты это откуда-то позаимствовал? А в оригинале это работало?
это конструктор кода в проекте wifi iot. Полагаю си, точно не ардуино. Плюс в том что мне не нужно возится с базовыми блоками, веб интерфейсом, wifi/ Работает на esp-idf что бы это не значило. Прмер брал тут https://github.com/espressif/esp-idf/blob/73db142403c6e5b763a0e1c07312200e9b622673/examples/system/esp_timer/main/esp_timer_example_main.c
Slava
Понял, вот оказывается где настоящие пацаны пишут, а я всё по старинке в ide через millis(). Спать пошли, всё равно все спят и никто не ответит.
Анатолий
Понял, вот оказывается где настоящие пацаны пишут, а я всё по старинке в ide через millis(). Спать пошли, всё равно все спят и никто не ответит.
Только что проснулся. я уже разобрался) нашел что esp_timer_handle_t timer_30sec; это объявление таймера и следовательно нужно его вынести в начало
SetPf
Только что проснулся. я уже разобрался) нашел что esp_timer_handle_t timer_30sec; это объявление таймера и следовательно нужно его вынести в начало
Объявление хендла таймера только. Это просто 32 битное значение. Оно вроде тут voidptr, но это реализация конкретная. Может и не указателей в теории быть, просто уникальный индефикатор сущности в системе. А вы объявили переменную его хранящую.
SetPf
И соответственно там плюсы и/или с код
Анатолий
SetPf
Мета вопросы опять. Нет не запускал, но опишите проблему мб моможем
Анатолий
Мета вопросы опять. Нет не запускал, но опишите проблему мб моможем
глючит на частоте менее 15герц. Оно в общем то не требуется но как то странно
Анатолий
Как поступать с таймерами? похоже если пытаюсь остановить и удалить несуществующий таймер чип перезагружается, как проверить существование таймера я не нашел
SetPf
Как глючит?
SetPf
Чекали его минимальную частоту? Мб там в счётчике ограничение
Анатолий
Как глючит?
генерирует другие частоты
Анатолий
Чекали его минимальную частоту? Мб там в счётчике ограничение
в документации что я использую таких ограничений не указано
SetPf
https://github.com/espressif/esp-idf/issues/2255
SetPf
Короч если меньше 15 не надо считайте 15 ограничением
Анатолий
https://github.com/espressif/esp-idf/issues/2255
програмисты петухи, либо в документации надо писать либо высчитывать другой предделитель автоматически... я подозревал что то такое
Анатолий
как все-таки быть со счетчиками, если пытаюсь остановить несуществующий счетчик получаю перезагрузку
Анатолий
Разобрался с таймерами, оказывается ESP_ERROR_CHECK занимается перезагрузкой в любой непонятной ситуации убрал его нафиг и все стало хорошо
SetPf
Совет - оставьте и свои дописывайте где надо, особенно в инициализации.
SetPf
Ассерты не всегда нормально стреляют в есп
SetPf
Скорее всего нам в жизни никогда не придётся работать с кодом, который должен исправлять ошибки на ходу. А это значит при любом отклонении поведения код должен максимально быстро грохнутся и вывести ошибку.
Анатолий
Совет - оставьте и свои дописывайте где надо, особенно в инициализации.
я задолбась дописывать обработчик ошибок, разве ч любой непонятной ситуации выдавать статус внутренней ошибки
SetPf
Именно так и делать.
SetPf
Обработки нужны для исправления без общего сбоя. Вам нужно просто грохнутся.
Анатолий
Обработки нужны для исправления без общего сбоя. Вам нужно просто грохнутся.
тут с умом надо подходить однажды из-за такого подхода ракета упала
SetPf
У вас не ракета.
Анатолий
У вас не ракета.
Ракета Ariane 5: ущерб в 8,5 млрд долларов. Все равно с умом надо подходит)
SetPf
Получить моментально грохновшуюсяс ошибкой программу при небольшом отклонении от запланированного поведения это самое лучшее, чего вы будете хотеть при отладке.
SetPf
Это максимально с умом, чем у стоять на одной ноге шатающийся табуретки а потом с умным видом гадать сквозняк подул или табурет поскользнулся
SetPf
Блин, ассерты спасли дни и недели моей жизни.
Alexey
Вот и подарочек от Espressif приехал 😎
Mikhail
Как лучше понизить напряжение автомобильного акб до 1в для adc? Делитель напряжения не сильно будет греться
Anton
в автомобильной сети не обязательно 12в, бывает 14, например. можно делителем, соотно резисторами посчитать, скажем, из расчёта до 20в, два последовательных резистора на 10к и на 200к, снимать напряжение с первого
Alexey
халява?
Ага, перед НГ у них акция была, надо было на почту написать, мол хочу семплы и все
romanetz
Вот и подарочек от Espressif приехал 😎
а я никак забрать не доеду (
Alexey
а я никак забрать не доеду (
Мне курьер принес, как ни странно (и это даже в РФ!)
Н Е К И Б Е Р Л Е О
Два резистора и стабилитрон
https://cxem.net/calc/divider_calc.php
Н Е К И Б Е Р Л Е О
Ништяк калькулятор
Alexey
Как лучше понизить напряжение автомобильного акб до 1в для adc? Делитель напряжения не сильно будет греться
Если нужно мерить напряжение АКБ, то делитель вполне подойдёт. Греться он может от тока, если общее сопротивление двух резисторов будет мало. Но если задаться током делителя около 1мА, то ничего греться не будет.
Niccolo
Всем доброго дня и продуктивной рабочей недели! Я являюсь питонистом, далек от Си и работы с железяками, однако вынужден собрать DHT22 + ESP8266 для сбора данных с последующей выгрузкой на AWS IOT (и еще ряд разных сборок) Я подключился к ESP через Ardruino IDE, подгрузил ряд библиотек для работы с моей платой и датчиком, однако мне так и не удалось считать данные ни одним из примеров. Ниже приведен код, который является последней самостоятельной попыткой, отсюда прошу помощи у любого кто может помочь ситуации. Библиотека DHT sensor library for ESPx. #include "DHTesp.h" // Click here to get the library: http://librarymanager/All#DHTesp #ifdef ESP32 #pragma message(THIS EXAMPLE IS FOR ESP8266 ONLY!) #error Select ESP8266 board. #endif DHTesp dht; void setup() { Serial.begin(9600); Serial.println(); Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F)\tHeatIndex (C)\t(F)"); String thisBoard= ARDUINO_BOARD; Serial.println(thisBoard); // Autodetect is not working reliable, don't use the following line // dht.setup(17); // use this instead: dht.setup(15, DHTesp::DHT22); // Connect DHT sensor to GPIO 17 } void loop() { delay(dht.getMinimumSamplingPeriod()); float humidity = dht.getHumidity(); float temperature = dht.getTemperature(); Serial.print(dht.getStatusString()); Serial.print("\t"); Serial.print(humidity, 1); Serial.print("\t\t"); Serial.print(temperature, 1); Serial.print("\t\t"); Serial.print(dht.toFahrenheit(temperature), 1); Serial.print("\t\t"); Serial.print(dht.computeHeatIndex(temperature, humidity, false), 1); Serial.print("\t\t"); Serial.println(dht.computeHeatIndex(dht.toFahrenheit(temperature), humidity, true), 1); delay(2000); } Данный код компилируется и загружается без проблем только в случае если DHT22 в момент прошивки не подключен, в ином случае при попытке подключения к плате происходит ошибка с таймаутом. После загрузки кода подключаю DHT22, перезагружаю IDE, но вместо данных имею "nan". В коде изменил только количество бод на рекомендуемые и номер GPIO порта. Буду рад любой помощи, заранее спасибо!
Niccolo
Niccolo
Это железяки
Niccolo
Подключение к pin платы происходит через провода female, в интернетах пишут что еще должен быть резистор между data и power проводами, но у меня не голый датчик, а на плате и я предположил что резистор там уже есть. Может нужно все-таки поставить резистор на 10кОм?
Denisio
нужно
Denisio
а хотя я бы посмотрел что там за плата с датчиком
Denisio
найти датащит можно ?
Niccolo
Если это про документацию самого датчика, то с ним при покупке ничего не было, а на сайте магазина выставлена документация стандартного DHT22 без спецификации платы на которой он сидит
Niccolo
гуглинг по серийному номеру тоже не дал ощутимых результатов
Niccolo
Это датчик Waveshare electronics, гляну какая инфа у производителя
Niccolo
Есть несколько примеров соединения с разными платами (к сожалению не с моей), но с ArdruinoUno не упоминается резисторов
Daniil
Какой тип данных имеет шрифт? Как создать массив шрифтов?
romanetz
// Autodetect is not working reliable, don't use the following line // dht.setup(17); // use this instead: dht.setup(15, DHTesp::DHT22); // Connect DHT sensor to GPIO 17 а 15 нога это не JTAG?
romanetz
12 13 14 15 JTAG, емнип
Daniil
Всем доброго дня и продуктивной рабочей недели! Я являюсь питонистом, далек от Си и работы с железяками, однако вынужден собрать DHT22 + ESP8266 для сбора данных с последующей выгрузкой на AWS IOT (и еще ряд разных сборок) Я подключился к ESP через Ardruino IDE, подгрузил ряд библиотек для работы с моей платой и датчиком, однако мне так и не удалось считать данные ни одним из примеров. Ниже приведен код, который является последней самостоятельной попыткой, отсюда прошу помощи у любого кто может помочь ситуации. Библиотека DHT sensor library for ESPx. #include "DHTesp.h" // Click here to get the library: http://librarymanager/All#DHTesp #ifdef ESP32 #pragma message(THIS EXAMPLE IS FOR ESP8266 ONLY!) #error Select ESP8266 board. #endif DHTesp dht; void setup() { Serial.begin(9600); Serial.println(); Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F)\tHeatIndex (C)\t(F)"); String thisBoard= ARDUINO_BOARD; Serial.println(thisBoard); // Autodetect is not working reliable, don't use the following line // dht.setup(17); // use this instead: dht.setup(15, DHTesp::DHT22); // Connect DHT sensor to GPIO 17 } void loop() { delay(dht.getMinimumSamplingPeriod()); float humidity = dht.getHumidity(); float temperature = dht.getTemperature(); Serial.print(dht.getStatusString()); Serial.print("\t"); Serial.print(humidity, 1); Serial.print("\t\t"); Serial.print(temperature, 1); Serial.print("\t\t"); Serial.print(dht.toFahrenheit(temperature), 1); Serial.print("\t\t"); Serial.print(dht.computeHeatIndex(temperature, humidity, false), 1); Serial.print("\t\t"); Serial.println(dht.computeHeatIndex(dht.toFahrenheit(temperature), humidity, true), 1); delay(2000); } Данный код компилируется и загружается без проблем только в случае если DHT22 в момент прошивки не подключен, в ином случае при попытке подключения к плате происходит ошибка с таймаутом. После загрузки кода подключаю DHT22, перезагружаю IDE, но вместо данных имею "nan". В коде изменил только количество бод на рекомендуемые и номер GPIO порта. Буду рад любой помощи, заранее спасибо!
После питона? Да чувак, твои муки только начинаются))))
Niccolo
// Autodetect is not working reliable, don't use the following line // dht.setup(17); // use this instead: dht.setup(15, DHTesp::DHT22); // Connect DHT sensor to GPIO 17 а 15 нога это не JTAG?
Тут я понял что не туда поставил, наверное этот выход для других целей. Могу показать нумерацию портов для V3 но у вас эта информация наверняка есть)
Niccolo
После питона? Да чувак, твои муки только начинаются))))
Наверняка руки=муки (привет автозамена). Для меня это чудный новый мир, я планирую закончить с этой сборкой и уползти в нору из которой вылез)
romanetz
подставь какой-нить другой GPIO
Niccolo
Niccolo
тут для меня много непонятного, но я вижу резистор в цепи
romanetz
типа, 21...22... они вроде свободные
romanetz
ну там по ситуации
Daniil
Наверняка руки=муки (привет автозамена). Для меня это чудный новый мир, я планирую закончить с этой сборкой и уползти в нору из которой вылез)
Сам после питона... Это очень больно, почти все надо руками писать, забудь о методах типо зип, аппенд, реверс...