Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Вопрос NodeMCU V3 ESP8266 Вопрос про gpio

Тема в разделе "Железные вопросы по esp8266", создана пользователем sasha294, 10 мар 2019.

Метки:
  1. Moseich

    Moseich Новичок

    Сообщения:
    37
    Симпатии:
    3
    nikolz, Спасибо, найду время буду изучать. вот мой рабочий скетч. он ведь очень простой? и работает.
    Код (Text):
    1. [code]
    2.  
    3. #define BLYNK_PRINT Serial
    4. #include <ESP8266WiFi.h>
    5. #include <BlynkSimpleEsp8266.h>
    6. #include <OneWire.h>
    7. #include <DallasTemperature.h>
    8. #define ONE_WIRE_BUS D2
    9. OneWire oneWire(ONE_WIRE_BUS);
    10. DallasTemperature sensors(&oneWire);
    11.  
    12. char auth[] = "
    13. char ssid[] = "
    14. char pass[] = "
    15.  
    16. BlynkTimer timer;
    17. void myTimerEvent()
    18. {
    19.   Blynk.virtualWrite(V5, millis() / 2000);
    20. }
    21. void setup()
    22. {
    23. Serial.begin(9600);
    24. Blynk.begin(auth, ssid, pass);
    25. sensors.begin();
    26.  
    27. pinMode (D5,OUTPUT);
    28. pinMode (D6,OUTPUT);
    29. digitalWrite(D5,1);
    30. digitalWrite(D6,1);
    31.  
    32. //контроль   девайса. Счет секунд
    33. timer.setInterval(1000L, myTimerEvent);
    34. }
    35. void sendTemps()
    36. {
    37. sensors.requestTemperatures();
    38. float temp = sensors.getTempCByIndex(0);
    39. float temp1 = sensors.getTempCByIndex(1);
    40. float temp2 = sensors.getTempCByIndex(2);
    41.  
    42. delay(2000);
    43. Serial.println(temp);
    44.  
    45. Blynk.virtualWrite(V0, temp);
    46. delay(100);
    47. Blynk.virtualWrite(V1, temp1);
    48. delay(100);
    49. Blynk.virtualWrite(V2, temp2);
    50. delay(100);
    51.  
    52. }
    53. void loop()
    54. {
    55.   Blynk.run();
    56.   timer.run(); // Initiates BlynkTimer
    57. sendTemps();
    58. }
    59. [/cod
     
  2. nikolz

    nikolz Гуру

    Сообщения:
    4.002
    Симпатии:
    427
    добавьте в septup
    WiFi.setAutoReconnect(1);
     
    Moseich нравится это.
  3. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.454
    Симпатии:
    173
    Посмотреть, подключена ли есп к интернету (без отсылки данных в интернет), нет возможности.
    А вот проверить есть ли подключение к WiFi возможно. (Мой роутер 4G, при потере связи с интернетом (со своей станцией) уходит в перезагрузку, локальная сеть перестает работать)
    Поэтому перед каждой отсылкой данных в сеть проверяю наличие соединения WiFi.
    Примерно так:
    Код (Text):
    1.    
    2. //Handle OTA
    3. if (WiFi.status() == WL_CONNECTED) ArduinoOTA.handle();
    Для восстановления соединения тоже использую
    Код (Text):
    1. WiFi.setAutoReconnect(true);
    Будет ли работать с вашим кодом не знаю, (не использую Blynk) но попробовать можете.
     
    Moseich нравится это.
  4. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.454
    Симпатии:
    173
    Попробуйте в основной цикл добавить
    Код (Text):
    1. Serial.println(ESP.getFreeHeap());
    и выключить с розетки роутер.
    Посмотрите программой терминал, как себя ведет есп(насчет перезагрузки) и есть ли потери памяти.
     
  5. Alegz

    Alegz Читатель

    Сообщения:
    46
    Симпатии:
    7
    Вы хоть уточняйте, что за схема. Ключ на транзисторе, если на выходе не логический ноль, таким образом как раз откроется, но никак не наоборот.
     
  6. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.454
    Симпатии:
    173
    Alegz, не зная о чем вы, но резистором можно подтянуть, как к плюсу, так и к минусу.
    И это надо делать, только если реле срабатывает без управляющего сигнала. (например отключен вывод от есп)
    (И только если мешает нормальной работе схемы, ведь от есп ее никто не будет отключать.)
     
  7. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.454
    Симпатии:
    173
    Там где обычно один транзистор, реле срабатывает от лог. единицы, но у автора сработка от лог. нуля
     
  8. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.127
    Симпатии:
    226
    это смотря какая структура транзистора.
     
  9. Alegz

    Alegz Читатель

    Сообщения:
    46
    Симпатии:
    7
    ОК, немного разнобой в формулировках. У нас так сложилось, что "подтягивающий" - только к плюсу :). К минусу я подтягивал по входу логику конденсатором последний раз .. ну ооочень давно. Подтягивать реле к минусу - изначально вообще сомнительное решение, т.к. если есть необходимость такого, то где-то явный косяк, который лучше устранить в зародыше, а не подобным костылём, но тоже вариант решения проблемы.
     
    Moseich нравится это.
  10. Alegz

    Alegz Читатель

    Сообщения:
    46
    Симпатии:
    7
    Что не исключает наличия у автора геркона без транзистора, который тоже нулём включается. Я к тому, что для решения локального вопроса с конкретной схемой используется глобальный совет "использовать подтяжку", который может работать по-разному, если делать это не задумываясь.
     
  11. Alegz

    Alegz Читатель

    Сообщения:
    46
    Симпатии:
    7
    Да, подтормаживает форум. Хотел добавить, что включение геркона нулём тоже справедливо для случая, когда геркон к плюсу подключен, но можно ж и иначе коммутировать :). В общем, формулировки имеют значение. Извините за шум.
     
  12. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.454
    Симпатии:
    173
    Видать это только у вас так.
    Подтягивающий резистор — Википедия
    Вот это уже оригинальное название, я понимаю времязадающий, гасящий, но подтягивающий по входу, да еще и логику.
     
  13. Alegz

    Alegz Читатель

    Сообщения:
    46
    Симпатии:
    7
    Ну это тоже костыль такой был. Надо было в одной схеме добиться четкого уровня на выходе при включении. Не придумал ничего лучшего, чем поставить по входу небольшую ёмкость, которая при включении давала ноль на нужном входе и дальше на работу никак не влияла. Тогда схема работала стабильно. Иначе уровень на выходе был непредсказуем. Схемотехнически неправильно, но тогда и в том применении сгодилось, как мера.
     
  14. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.454
    Симпатии:
    173
    Как по мне, нормальное решение, и я так ставлю на входную кнопку, для защиты от помех, хоть это и не совсем правильно. (разряд конденсатора на кнопку, без резистора)
     
  15. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.454
    Симпатии:
    173
    И еще двуполярное питание. Или вы о типе транзистора?
     
  16. Alegz

    Alegz Читатель

    Сообщения:
    46
    Симпатии:
    7
    Если от дребезга, то он программно неплохо отсекается. Конечно, если время в пару десятков мс на обработку не критично. Если от наводок, то вроде тоже ничего страшного - больше, чем на подключенных выводах, на нём не накопится. Там же не полностью заряженные микрофарады, чтобы контакты кнопки при кз пригорели :).
     
  17. Moseich

    Moseich Новичок

    Сообщения:
    37
    Симпатии:
    3
    Я очень много лет занимался наладкой микропроцессорных систем управления подъемниками и лифтами и имею свою точку зрения на защиту от помех ( дребезг это ведь тоже помеха, но слабая):
    более надежно работают системы, у которых активным является логический ноль ( не обрыв цепи), т.к. любая помеха всегда выше нижнего уровня. Если разработчик этого не предусматривал, то проблема решали емкостью на входной цепи. Но это считалось нарушением правил Госгортехнадзора. Сами же разработчики старались решать изменениями кода. В редких случаях вносили конструктивные изменения в платы интерфейса. Однако емкость на клемме работала лучше, поскольку речь идет об отечественном силовом оборудовании - качество мощного электропривода величина неоднозначная по уровню раздаваемых мощных помех. ИМХО
     

Поделиться этой страницей