• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Помогите с GPIOx

kms

New member
Подскажите что куда лучше подключить.
На данный момент у меня так
// Реле = 12
// OneWire = 4
//// I2C
// 2: SDA 0: SCL
// Buzzer = 5
// Кнопка Set = 14
// Кнопка UP = 3
// Кнопка Down = 13
// Свободные пины//
// 16
// 0
// 1
// 15
Все вроде работает, но нужно еще подключить модуль DS1302, понимаю что лучше взять другой с I2C, но на руках только такой и другой ждать долго.
Куда лучше подключить этот модуль и если придется переназначить другие пины, то без проблем, только посоветуйте что и куда :)
Экспериментировать не могу, устройство рабочее, но дело даже не в этом, там просто датчики и нагрузка к нему "намертво" подключены, то есть притащить его к себе поближе не могу.
Заранее спасибо!

PS: Вроде их названий пинов должно быть понятно что и куда.
 

Ildarmustafin86

Active member
DS1302 разве не по i2c работает?Назначаете другой адрес и подключаете к пинам i2c
 

nikolz

Well-known member
например так:
1) GPIO15-clk
2) если сон не используете, то GPIO16 -data
3) RST можно для начала к RST ESP.
 
  • Like
Реакции: kms

nikolz

Well-known member
А как мне потом с этим пином(RST ESP) работать?
а зачем?
Этот пин CE. Если на нем 1 то можно писать и читать
0- будет если сбрасываете ESP
Если во время работы у вас что-то не так то не будет работать и ESP и его надо сбросить - это делается кнопкой на RST на землю т е будет сброс ESP и сброс DS1302
Если Вы будете отдельно сбрасывать DS1302 в программе то вопрос - а почему и зачем.
----------------
Когда отладите работу и понадобится сброс программный то тогда и будете думать.
-------------------
 

kms

New member
Ок, я пока с библиотеками разбираюсь, об остальном буду думать потом :)
 

kms

New member
Вобщем не выходит аленький цветок))
При первом же обращении к модулю
C++:
if (!Rtc.IsDateTimeValid())
всё уходит в перезагрузку.
библиотеку использую вот эту https://github.com/Makuna/Rtc

PS: GPIO0 у меня оказывается под I2C занят, на данный момент подключено так
// 1 RST
// 16 DATA
// 15 CLK
Пробовал менять пины, без разницы.
 

nikolz

Well-known member
Вобщем не выходит аленький цветок))
При первом же обращении к модулю
C++:
if (!Rtc.IsDateTimeValid())
всё уходит в перезагрузку.
библиотеку использую вот эту https://github.com/Makuna/Rtc

PS: GPIO0 у меня оказывается под I2C занят, на данный момент подключено так
// 1 RST
// 16 DATA
// 15 CLK
Пробовал менять пины, без разницы.
И кто Вам посоветовал использовать GPIO01?
Вы либо делайте как говорят либо не спрашивайте советов.
-------------------
проверьте не подключен ли у вас вывод 16 на RST ESP для deep-sleep
и для начала просто подключите RST DS на питание через резистор 5-10 к и для сброса поставьте кнопку на GND
т е оставьте два вывода 16 и 15
можно DATA включать с data I2C, так как у вас разные clk для них, но тогда надо задействовать CE(RST) DS
 

kms

New member
Ну ок, подключу я RST модуля DS к питанию через резистор или как еще раньше писалось на RST самого ESP, мне потом в библиотеке какой пин для RST указывать?
C++:
ThreeWire myWire(4,5,2); // IO, SCLK, CE
Я уж не помню в какой именно библиотеке смотрел, там как минимум этот пин настраивается на вход.
 

nikolz

Well-known member
Ну ок, подключу я RST модуля DS к питанию через резистор или как еще раньше писалось на RST самого ESP, мне потом в библиотеке какой пин для RST указывать?
C++:
ThreeWire myWire(4,5,2); // IO, SCLK, CE
Я уж не помню в какой именно библиотеке смотрел, там как минимум этот пин настраивается на вход.
объясняю
GPIO01 - это выход UART на него при старте ESP всегда выводится сообщение.
кроме того TX - это связь с компом. Вы через него программируете и выводите данные на терминал
Если Вы его задействуете на DS то при включении ESP на DS поступят импульсы.
А они вам нужны?
Поэтому не надо туда подключать RST и CLK
Если Вы подключите туда Data, то в случае режима чтения из DS получите конфликт если в это время будет вывод в терминал.
------------------
В итоге с Вашими скромными знаниями ESP и программирования Вы сами не справитесь с этими проблемами и вполне получите кирдык.
-------------------
Поэтому для начала рекомендую задействовать только CLK и Data а CE который на вашей плате называется RST подтянуть к питанию и поставить ручной сброс кнопкой
Потом напишите простой тест который читает из регистров DS и выводит в терминал
Когда разберетесь с работой DS и поймете нужно ли Вам программно управлять CE, тогда и решите куда его подключать.
Все это займет не более часа возни и через час ( а не несколько дней как уже Вы здесь хнычите) Вы будете думать про CE.
 

kms

New member
Бессмысленный разговор, я вопрос задаю про одно, вы мне кучу текста про другое.
Если вы мне предлагаете работать с модулем DS напрямую, без библиотеки, то к чему это?
Если бы я мог, то как минимум задал бы вопрос не разделе для начинающих.
Заказал другой модуль с I2C, ну а пока будет идти, с учетом всего здесь понаписанного попробую конечно добить до конца, нет да и хрен с ним.

PS: иногда кажется что попал не на форум ардуинщиков а в какое то высшее научное сообщество и пытаюсь выведать труды всей жизни.
Лучше никакой помощи, чем такая, с понтами.
Для меня тема закрыта, остальным желающим велком.
 

CodeNameHawk

Moderator
Команда форума
Ну ок, подключу я RST модуля DS к питанию через резистор или как еще раньше писалось на RST самого ESP, мне потом в библиотеке какой пин для RST указывать?
Обычно ресет не указывают в библиотеке, так как его не подключают к процу.
 
Последнее редактирование:

kms

New member
Вобщем разобрался.
В библиотеке ThreeWire удалил все упоминания о RST(CE), она этот пин просто перед работой "сажала" на 0.
Сам RST модуля подиянул к питанию.
Теперь указывать пин RST не требуется ну и все работает.
Но это так, просто ради интереса уже. Как придет модуль с I2C поставлю его и deepsleep верну на место.
 
Сверху Снизу