AKE
AKE
Ладно, парни. Не обращайте внимания, шутки всë 😉
Leonid
Leonid
Правда вопрос c wifi/bt это не отменяет
Анатолий
Кто знает как таймеры на esp32 объявлять? компилятор жалуется что таймер не задекларирован
Slava
Анатолий
где то ввеху объявление структуры
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
О, круто, это в ардуино иде на языке си? Наверно ты это откуда-то позаимствовал? А в оригинале это работало?
Slava
Понял, вот оказывается где настоящие пацаны пишут, а я всё по старинке в ide через millis(). Спать пошли, всё равно все спят и никто не ответит.
SetPf
SetPf
И соответственно там плюсы и/или с код
Анатолий
SetPf
Мета вопросы опять. Нет не запускал, но опишите проблему мб моможем
Анатолий
Как поступать с таймерами? похоже если пытаюсь остановить и удалить несуществующий таймер чип перезагружается, как проверить существование таймера я не нашел
SetPf
Как глючит?
SetPf
Чекали его минимальную частоту? Мб там в счётчике ограничение
Анатолий
SetPf
https://github.com/espressif/esp-idf/issues/2255
SetPf
Короч если меньше 15 не надо считайте 15 ограничением
Анатолий
как все-таки быть со счетчиками, если пытаюсь остановить несуществующий счетчик получаю перезагрузку
Анатолий
Разобрался с таймерами, оказывается ESP_ERROR_CHECK занимается перезагрузкой в любой непонятной ситуации убрал его нафиг и все стало хорошо
SetPf
Совет - оставьте и свои дописывайте где надо, особенно в инициализации.
SetPf
Ассерты не всегда нормально стреляют в есп
SetPf
Скорее всего нам в жизни никогда не придётся работать с кодом, который должен исправлять ошибки на ходу. А это значит при любом отклонении поведения код должен максимально быстро грохнутся и вывести ошибку.
SetPf
Именно так и делать.
SetPf
Обработки нужны для исправления без общего сбоя. Вам нужно просто грохнутся.
Анатолий
SetPf
У вас не ракета.
Анатолий
У вас не ракета.
Ракета Ariane 5: ущерб в 8,5 млрд долларов. Все равно с умом надо подходит)
SetPf
Получить моментально грохновшуюсяс ошибкой программу при небольшом отклонении от запланированного поведения это самое лучшее, чего вы будете хотеть при отладке.
SetPf
Это максимально с умом, чем у стоять на одной ноге шатающийся табуретки а потом с умным видом гадать сквозняк подул или табурет поскользнулся
SetPf
Блин, ассерты спасли дни и недели моей жизни.
Anton
Alexey
Вот и подарочек от Espressif приехал 😎
Mikhail
Как лучше понизить напряжение автомобильного акб до 1в для adc? Делитель напряжения не сильно будет греться
Anton
в автомобильной сети не обязательно 12в, бывает 14, например. можно делителем, соотно резисторами посчитать, скажем, из расчёта до 20в, два последовательных резистора на 10к и на 200к, снимать напряжение с первого
LICHKING
Anton
Denisio
Alexey
халява?
Ага, перед НГ у них акция была, надо было на почту написать, мол хочу семплы и все
Н Е К И Б Е Р Л Е О
romanetz
Mikhail
Н Е К И Б Е Р Л Е О
Ништяк калькулятор
Mikhail
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
@xtx
romanetz
подставь какой-нить другой GPIO
ㅤ
Niccolo
Niccolo
тут для меня много непонятного, но я вижу резистор в цепи
romanetz
типа, 21...22... они вроде свободные
romanetz
ну там по ситуации
Daniil