А
Ну ладно. Я уж думал он пилит свою хуйню
Max
Прикольно, но у меня на сях написано
https://core.telegram.org/bots/features#keyboards
Ruslan
Биты посчитай и нам расскажи
Ivan
Всем привет! Помогите, пожалуйста в следующей проблеме. Мне нужно выполнить команду при неверном значении сервера client.begin("mserver.lan", net); Т.е. отловить ошибку 30056][E][WiFiGeneric.cpp:1578] hostByName(): DNS Failed for mserver1.lan Когда у меня не может подключиться к серверу. Пробовал по try catch, но не получилось (
Скорее возвращает что-то типа true или фалс?
Ivan
Скорее возвращает что-то типа true или фалс?
Там void везде ( void begin(Client &_client); void begin(const char _hostname[], Client &_client) { this->begin(_hostname, 1883, _client); } void begin(const char _hostname[], int _port, Client &_client) { this->begin(_client); this->setHost(_hostname, _port); } void begin(IPAddress _address, Client &_client) { this->begin(_address, 1883, _client); } void begin(IPAddress _address, int _port, Client &_client) { this->begin(_client); this->setHost(_address, _port); }
Ivan
Скорее возвращает что-то типа true или фалс?
У меня есть вот такое с булевым значением if (!client.connected()) { connect(); } Кажется, его нужно было поместить в setup(), а не main().
Ivan
Не знаю как в ардуино, в нормальных фреймворках есть события для вашего случая. Что-то типа timeout error, может и в ардуино такое есть
Там и случается событие hostByName() DNS Failed for mserver1.lan из фреймворка ESP. Я уж хотел разбираться с этим фреймворком.
Andy
Там и случается событие hostByName() DNS Failed for mserver1.lan из фреймворка ESP. Я уж хотел разбираться с этим фреймворком.
Тогда их и надо обрабатывать https://docs.espressif.com/projects/esp-idf/en/v4.4.4/esp32/api-reference/network/esp_netif.html
Но он в loop() меня не пускает поэтому
Кто кого не пускает в луп?
Ivan
А че это за класс такой. Как он называется?
Это из библиотеки MQTTClietn.h https://github.com/256dpi/arduino-mqtt?utm_source=platformio&utm_medium=piohome
Ivan
Кто кого не пускает в луп?
Срабатывает событие, порождающее эти записи в логах и у меня не происходят команды, которые прописаны в loop(). Но это я разобрался.
Ivan
Моя задача такова: если у меня сменился сервер "mserver.lan", то по ArduinoOTA нужно иметь возможность перепрошить плату.
Metall
Добрый вечер всем. Кто нибудь пробовал подключить есп8266 к апи gismeteo.ru?
Добрый вечер всем. Кто нибудь пробовал подключить есп8266 к апи gismeteo.ru?
Че там подключать. Обычный апи. Токен получаешь и юзаешь. Вне зависимости от платформы
Metall
Это понятно, не нашел в описании как получить прогноз на 3 дня
Metall
Вида температура ночь/день/осадки
Dmitry
Всем доброго времени суток! Такой вопрос, подскажите пожалуйста по своему опыту: Есть ESP32 нужно каждые 5 минут опрашивать прибор и отправлять данные через SIM800, опрос и отправка не проблема всё сделано, а вот с 5 минутами есть проблема: внешний RTC не использую, сделал на таймере 0м,синхронизация времени с GSM сети всё чотко работает, НО иногда что-то происходит с таймером и всё отваливается, не срабатывает его прерывание хотя Loop крутится. WatchDog не помогает потому что он при перезагрузки не сбрасывает регистры таймера. 2й вариант сделал на mills, вроде работает, но мне кажется это не совсем правильное и надежное решение. Подскажите варианты куда смотреть. Спасибо!!
Ivan
Моя задача такова: если у меня сменился сервер "mserver.lan", то по ArduinoOTA нужно иметь возможность перепрошить плату.
Кажется, я нашел приемлемое решение Выходить из цикла, помещенного в setup(), сразу после client.begin() и по успешному завершению ArduinoOTA.handle(), а до этого попробовать подключиться к серверу 10 раз.
Кажется, я нашел приемлемое решение Выходить из цикла, помещенного в setup(), сразу после client.begin() и по успешному завершению ArduinoOTA.handle(), а до этого попробовать подключиться к серверу 10 раз.
Я ниче не понял про какой ты цикл. Вижу тут есть метод называется connected, который возвращает тру или фалс в зависимости от того подключен он или нет
Типа такого
Пока клиент не подключен - обрабатывать оту? Интересно
Ivan
Пока клиент не подключен - обрабатывать оту? Интересно
А у меня OTA стартует раньше отдельной функцией - она же подключается к wi-fi
Че-то колхозом ардуиновским попахивает
Выведи оту в отдельную таску что-ли
А то че-то ота, вифи, мктт, лошади. Все смешалось
Ivan
Че-то колхозом ардуиновским попахивает
Мне надо еще учиться (( Так хотя бы работает, подключается к wi-fi, отдает по MQTT и обновляется по OTA. А что значит "в отдельную таску?". Разъясни, если не сложно.
Ivan
https://www.freertos.org/a00125.html
Так это freeRTOS надо применять со всеми вытекающими. Но учту.
Ivan
Так у тебя и так freertos
Всмысле - потому что использую ESP-фреймворк?
Всмысле - потому что использую ESP-фреймворк?
Потому что arduino на esp32 на базе esp-idf, а esp-idf на базе фриртос
Anton
Потому что arduino на esp32 на базе esp-idf, а esp-idf на базе фриртос
> arduino на esp32 на базе esp-idf, спорно. раньше гдето так и было... сейчас спорно
Anton
но фриртос там есть, безусловно
> arduino на esp32 на базе esp-idf, спорно. раньше гдето так и было... сейчас спорно
В смысле где-то так и было если оно и является его надстройкой, правда со своими врапперами в том числе?
Anton
В смысле где-то так и было если оно и является его надстройкой, правда со своими врапперами в том числе?
судя по прочитанному в арудино-есп, они много всего переписали напрямую, обойдя идф
Anton
я ещё удивлялся от чего в ардуино-есп пропала фраза про совместимость с определёнными версиями идф
судя по прочитанному в арудино-есп, они много всего переписали напрямую, обойдя идф
Тем не менее esp-idf там есть и оно на нем базируется. А значит колить их функции ты можешь без вопросов. То что они там насрали в свои ардуиновские врапперы - другое дело
Anton
дигиталрайт не обёртка над гпио_сет_левел
про имплементацию
Он определенно быстрее
дигиталрайт не обёртка над гпио_сет_левел
Попробуй код смотреть. Полезный навык. А то что ты говоришь - это мы тут обсуждали. Была такая хуйня на reddite. Там местами перепутал человек вывод
Anton
и даже не картинками
и даже не картинками
А это не картинка. Это я тебе из файла показал скриншот с гитхаба
Быстрый метод это писать GPIO.out_w1ts вот сюда напрямую
Anton
А это не картинка. Это я тебе из файла показал скриншот с гитхаба
вижу... хм, ладно, возможно с прямым углом спутал... но откуда то ж я помнил реализацию дигитал райта через out_w1ts...
А
Быстро-не быстрый вопрос: для передачи данных по вайфай (в ОБЕ стороны) обязательно ли использовать серийный порт? Суть: есть модуль, который уже сидит на первом юарте. Esp8266 nodemcu
Правда причем тут вифи и серийный порт
А
Правда причем тут вифи и серийный порт
И я так думал. А получилось так: при опросе устройства в сети - все оке. При опросе другой девайсины, коя сидит на преобразователе сидящим на пинах основного юарта - тоже. При комбинировании (опросить по вайфай, покласть данные опроса в регистр, а потом передать через преобразователь) - работает обмен только на преобразователе. Пробовал свапать серийники, пробовал объявлять только один - результат тот же, обмен только через преобразователь
https://www.reddit.com/r/esp32/comments/f529hf/results_comparing_the_speeds_of_different_gpio/
Я знаю. Я уже писал про это выше. Тут это обсуждалось уже Я же сказал на реддите было
https://www.reddit.com/r/esp32/comments/f529hf/results_comparing_the_speeds_of_different_gpio/
Там прикол был в том, что они табличку перепутали)
Точнее у него gpio_set_level и digitalWrite местами поменяны)
Я проводил это расследование и понял что КГАМ
Anton
и никто на реддите на написал про это :)
Ну вот провел щас тест на есп32 6837 5955 1007
Первое это digitalWrite, второе gpio_set_level
Правда я не понял почему стало аж в два раза медленее чем было раньше. Оверхеда что ли в arduino/esp-idf поднакидали
Заебись) Они идут по правильному пути
Anton
но я в любом случае делал static inline void p8_send_byte(dgx_screen_t *scr, const uint8_t cmd) { GPIO.out_w1tc = p8_gpio_mask_clear[cmd]; uint32_t bm = p8_gpio_mask_set[cmd]; if (bm) GPIO.out_w1ts = bm; GPIO.out_w1ts = 1 << scr->lcd_wr; }
Тебе ногодрыг нужен был из принципа?
Слабо представляю кейс где так часто надо дрыгать ногами. Все что нужно и так завезено аппаратно
Anton
Тебе ногодрыг нужен был из принципа?
это было 8 бит параллельный интерфейс
А ну если только его
Anton
для экранчика