Rcwl 0516 + esp8266 nodemcu проблема с управляющим сигналом

Тема в разделе "ESP8266, ESP32", создана пользователем Аркадий, 28 май 2020.

Метки:
  1. Аркадий

    Аркадий Нерд

    Приношу извинения!
    В следующий раз буду внимательнее.
     
  2. Аркадий

    Аркадий Нерд

    Исправлено
     
    SergeiL нравится это.
  3. SergeiL

    SergeiL Оракул Модератор

    А теперь смотрим Вашу схему.
    Есть определенные правила, по которым подключается модуль ESP8266, хорошо бы Вам почитать основы.
    Можно тут Еще рекомендую ознакомиться с этим

    То есть GPIO0 и GPIO2 для нормальной работы подтягиваются к +3,3В, GPIO15 к земле.
    В NODE MCU эта подтяжка уже сделана, но при проектировании своего устройства эти правила нужно соблюдать всегда. (На картинке с ESP внизу справа есть пояснения.)

    Дальше, по вашей схеме смотрим распиновку входов ESP-12, которая используется в NODE MCU
    и вводы и выводы NODE MCU.

    ESP.png IO.png

    Обратите внимание на GPIO10, который вы пытаетесь использовать.
    Он в стандартном режиме - служебный.

    Дальше - транзистор VT1 через резистор R3 подтягивается к +5В.
    А логика ESP - 3,3В. Это значит - подтяжка должна быть к +3, 3В.
    Ну это то, что бросилось в глаза.
     
    Аркадий нравится это.
  4. Аркадий

    Аркадий Нерд

    Спасибо большое за подробное пояснение!
    Есть несколько нюансов. В моем проекте все рабочие входы заняты. Сбрасываю полную схему. GPIO10 и GPIO2 единственно, свободные ноги, обязательно нужен светодиод и радар. При подключении радара через ключ к GPIO10 ничего не происходит на выходе GPIO2. Действительно, процессор не реагирует на изменения GPIO10. Вы подсказали, что GPIO10 - служебный. О чем-то таком я догадывался. Но не нашел в сети информации, кроме даташит esp.
    На коллекторе транзистора, значения напряжения меняются с 0 на 3.3В, при опоре на 5В. Опирал на 3, реакция та же. Оставил, как есть.
    Не могли бы Вы подсказать, как пробить стену непонимания между GPIO10 и 2? Кстати, при подключенном светодиоде к GPIO2, контроллер не хочет грузиться.
    Еще раз, огромное спасибо! Буду изучать матчасть.
     
    Последнее редактирование: 2 июн 2020
  5. SergeiL

    SergeiL Оракул Модератор

    Ну с GPIO2 справиться проще всего, нужно перевернуть светодиод, а резистор подключить не на общий, а на +3,3В. Зажигать светодиод низким уровнем. И светодиод будет работать, и грузиться будет нормально
    Про GPIO10 я Вам уже написал.
    Тут тоже все понятно, отключите коллектор от ESP, и Вы увидите на коллекторе +5В.
    Как вы думаете, где гасятся эти 1,7В? Зачем это делать, если есть напряжение питание ESP +3,3В?
     
  6. Аркадий

    Аркадий Нерд

    Mother bord.png
    С GPIO10 все сложно. МС его просто не видит. Светодиод светится нормально в своем положении, если не привязан к 10. Но, зато, не дает грузиться МС. Он завязан на ТХ. Отключаю его - все нормально.
     
  7. SergeiL

    SergeiL Оракул Модератор

    Еще раз... GPIO10 используется внутри ESP-12E для обмена данными с Flash памятью. Он подключен к ноге "WP" Flash.
    По умолчанию используется режим QIO. GPIO9 и GPIO10 задействованы в обмене данными с Flash памятью.
    В интернете есть хаки, где люди отрезают эти ноги от памяти. Отключенные ножки памяти сажают на "1" и переводят режим обмена с памятью на DIO.
    ESP-12E.png
    Вот стоит ли игра свеч?
    Если не нужен последовательный порт, то RX и TX можно использовать как GPIO3 и GPIO1.
    Правда отлаживаться будет сложно. Можно подключить как GPIO после полной отладки.
    Или еще проще подключить расширитель портов, например I2C, или взять тот же ESP32 с большим количеством портов.
     
  8. Аркадий

    Аркадий Нерд

    В данных статьях не обнаружил упоминаний о GPIO10.
    Зато...
    Для нормального использования 10, вместо ESP8266 NodeMcu в Arduino IDE необходимо установить Generic ESP8266. При этом раскроются все возможные настройки модуля. И, в частности, управление Flash Mode. Нужно установить или QIO, DIO или DOUT. Лучше QIO. У меня заработал GPIO10 на DOUT.
     
    Последнее редактирование: 3 июн 2020
    SergeiL нравится это.
  9. Аркадий

    Аркадий Нерд

    Да, уж. С портами у этого контроллера напряг. Лучше использовать ESP32. Но, что есть, то есть.
    В предшествующем посте я написал, как включить GPIO10. С ТХ и RX геморрой. Не стоит оно того.
    Расширитель портов - дополнительная плата. I2C вполне хватает на 4 устройства.
     
  10. SergeiL

    SergeiL Оракул Модератор

    Я видел это, даже посмотрел настройки Flash Mode, но пишут что может работать не на всех модулях стабильно до отключения ног. Я не пробовал.
    Я предпочитаю заведомо стабильное решение.
     
  11. Аркадий

    Аркадий Нерд

    На ESP8266 NodeMcu V3 (!) работает замечательно. Проблемы могут наблюдаться на V2. С чем связано, знает один лишь разработчик.
    Давно пришел к выводу, что для более-менее серьезного устройства нужно использовать ESP32. Значительно больше выводов с более адаптированным потенциалом. И никаких спонтанных импульсов. К тому же, 2 ядра позволяют параллельно выполнять несколько независимых программ. Но она больше размерами, и с несколько большим потреблением тока.
    Для моего проекта 8266 оказался не совсем удобен. Но, что есть,то есть. Менять нет возможности. Все габариты устройства "заточены" под размеры и посадочные места именно 8266. Это пилотный проект. Поэтому смысла нет что-то менять. Однако проблема с датчиком так и остается не решенной.
    Вместо свч поставил PIR. Все та же проблема с ложными срабатываниями.
    Верну схему, с учетом ваших замечаний к исходным подключениям: выходдатчика через ключ на GPIO2, светодиод на GPIO10. Так как на GPIO2 постоянный ШИМ с нижней точкой 0, изменю работу ключа. Установлю еще один транзистор. И принудительно посажу GPIO2 не на 0, а на 3.3В. Убью ШИМ. После отпишусь.
     
  12. Аркадий

    Аркадий Нерд

    Не стал заморачиваться с созданием повторителей и борьбой с ESP8266.
    У меня лежала плата ESP32 DEV KIT V1 с оторванными дорожками usb. Косяк продавца. USB не был зафиксирован на плате. Восстановил соединения. Решил воспользоваться ее выходами для подключения датчика. Плата на много мощнее ESP8266, два ядра, с большим количеством портов в/в, блютузом, и другими примочками.
    Но столкнулся с очередной проблемой:
    Датчик работает пока, без нареканий. Нет никаких ложных срабатываний. Но, как всегда, есть нюанс: в моем проекте, импульс от датчика с материнского контроллера передается по wifi на дочерний контроллер ESP8266 D1 mini. И, если в среде ESP8266 все проходило без проблем, то ESP32 + ESP8266 совершенно не хочет работать. При чем, ESP32 без вопросов коннектится в домашней сети. Вижу на компе и соединяюсь с ним. Но 8266 его не видит. Вернее, если установить ESP32, в качестве точки доступа, а ESP8266 в качестве клиентов, то 8266 общаются между собой через 32. А непосредственно с ним не хотят. И никакие сигналы не проходят.
    Блин! С одним контроллером один геморрой, с другим - другой!
    Вот и выбирай...
     
  13. Аркадий

    Аркадий Нерд

    Две недели проводил эксперименты с датчиком. Изначальная задача стояла в работе радара без ложных срабатываний.
    Проблема решена.
    Я выяснил, что выход радара маломощный. И любая силовая нагрузка приводит в сбою и переключению триггера на выходе радара.
    Ключ на транзисторе не дал результатов. Видимо, выходы ESP8266, состоящие из полевиков, не устойчивы, и дают единичные импульсы, влияющие на работу выходного каскада радара.
    В моем проекте предусмотрен сбор информации от различных датчиков. А у ESP8266 всего один аналоговый вход. Поэтому, необходимо было расширить количество АЦП. Этого можно было достичь тремя способами. Поменять контроллер на ESP32, установить расширитель АЦП, или установить дополнительный контроллер, обладающий достаточным количеством аналоговых портов.
    Идеально, это сменить ESP8266 на ESP32. Но, как я уже писал выше, появляются другие проблемы. Эксперимент показал, что выходы ардуино более устойчивы к броскам напряжения, и не дают никаких "всплесков". Что , в свою очередь, не дает ложных срабатываний радара. Тогда я посчитал, разность в цене между расширителем АЦП и ардуиной. Она оказалась незначительная. И ей можно было пренебречь. Но, в случае ардуины, я получаю дополнительный процессор и дополнительную память, при том, что у ардуино не на много больше габариты чем у расширителя АЦП. И я остановился на ардуино.
    Что я имею в результате? Фактически, двухядерный процессор с большим количеством аналоговых портов (ардуино NANO, или ProMini) 6+1 порт ESP8266, в два раза увеличенным количеством портов ввода/вывода, и увеличенной памятью ERPROM. Очень важный момент! Не нужно париться с разбиением flash памяти ESP8266 под отдельные программы. Фактически, эти два микроконтроллера заменяют ESP32. Но более надежны и менее геморройны. Остается один пробел. Это Блютуз. Необходимый блок для независимой передачи данных. Решил проблему радио приемо-передатчик НС-12, или НС-11. Дешевый. Занимает мало места. Но в некоторых случаях, более приемлем, нежели NRF24.
    Таким образом, в конечном виде я получил: ESP8266+arduinoProMini+HC-11. Общая цена: примерно 500 р. в переводе с украинских баксов:). Радар работает безукоризненно!
    Следующий способ ухода от ложных срабатываний радара в связке с ESP8266, это полная гальваническая развязка. Питается радар отдельно повышающим преобразователем 3.3 - 9 (12)В. А на выходе я ставил оптопару РС-817. Тот же ключ на npn транзисторе, но гальванически отвязанный от источника сигнала (радара). 3 дня непрерывного теста - ни одного ложного срабатывания.
    Вывод: Оптимально - установить на выходе радара оптопару. Если нужно выполнять другие. связанные с радаром операции, нужно подключать радар на вход ардуино. А ардуино, через понижающий преобразователь, на вход ESP8266. Нужно помнить, что ардуино работает на 5В, а ESP8266 на 3.3В. И повышенное напряжение убьет обвязку процессора, или вместе с процессором.
     
    Последнее редактирование: 18 июн 2020
    ИгорьК нравится это.
  14. ИгорьК

    ИгорьК Гуру

    Здорово, буду повторять.
    Это не всегда так, есть 3-вольтовые ардуины.
     
    Последнее редактирование: 18 июн 2020
  15. Аркадий

    Аркадий Нерд

    Я указал arduino Nano - 5V. arduino Pro Mini действительно делятся на 5 и 3.3V. Нужно смотреть на частоту генератора. 16Мгц - 5В, 8Мгц-3.3В.
     
    ИгорьК нравится это.
  16. parovoZZ

    parovoZZ Гуру

    и 5 вольт тоже.
     
  17. Аркадий

    Аркадий Нерд

    Вы ошибаетесь. Google в помощь:)
     
  18. parovoZZ

    parovoZZ Гуру

    почитай мои статьи. Потом поймёшь с кем разговариваешь.
     
  19. Аркадий

    Аркадий Нерд

    Авторитетное заявление!:)
    Не читал я ваших статей. Верю производителю.
    2020-06-18_234945.png
    Вот мои arduino ProMini. Оригинал. Жаль, не осталось 3.3В.
     
  20. parovoZZ

    parovoZZ Гуру

    Ты реально думаешь, что от пяти вольт оно сгорит или просто не будет работать?

    Так вот производитель там не
    , а Microchip/Atmel. А они говорят, что абсолютно все AtMega и Attiny имеют верхний предел питающего напряжения в 5.5 вольт. Спорить с даташитом производителя, наверное, смысла нет. В этой части даташит ошибок не содержит.