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

Необходима помощь в правке скетча для NodeMCU Lolin v3

Small_d

New member
Доброго времени суток, Вам!
=======Введение=======
Некоторое время назад, решил сварганить метеостанцию. Понятно, что проще купить готовую и т.д., но это опустим...
Сразу скажу, писал (копипастил) в Arduino IDE.
В просторах интернета нашел подходящий скетч, собрал компоненты, все казалось бы работает. Станция берет температуру с WUnderground и транслирует на TFT дисплей. Но показаний мало. Давления нет, текущей температуры нет, даже часов не было. Зато много не самой нужной инфы. С часами разобрался, на половину. Время вывел с Гугла, но обновляются не цифры часов, а тупо экран перезаливается раз в минуту. Потом прикрутил датчик BME280, для снятия показаний дома и атмосферного давления. Прикрутил русский шрифт. Но не все получилось перевести. Тут проблем не возникло. Затем захотелось все-таки знать текущую температуру за окном, а не минимальную и максимальную за сутки, что изначально показывала станция. Встал вопрос, если прикрутить датчик даллас DS18b20, то придется дырявить окно, а это не есть хорошо. Именно поэтому решил собрать внешний датчик на ардуино нано и NRF24l01+ модуле. На лоджии есть розетка, так что там с питанием проблем не будет. Батарейки не нужны. Датчик можно вынести подальше. Нашел работающие скетчи передатчика и приемника. Собрал сперва для теста на двух ардуино и двух передатчиках. Все работает, температуру передает и получает. Проблема встала с подключением и получением данных на NodeMCU.
=======Суть проблемы=======
Получается подключено два устройства по шине SPI, с отдельными пинами CS для выбора активного устройства, с кем общается мастер. Вроде внедрил части кода с приемника в скетч метеостанции, вроде даже без ошибок компилится. Но вот с установкой активного устройства и приема данных, что-то я не догоняю. Вроде вариантов уже много перепробовал. Либо показывает О градусов, либо вообще дальше инициализации устройства не идет и висит после экрана приветствия и подключения к Wi-Fi.
Передатчики пропаяны и отдельно друг с другом работают отлично.
=======Хотелки=======
1. Посмотреть скетч опытным взглядом, указать на ошибки, по возможности исправить, что бы данные с NRF доходили и отображались на экране. См. фото
2. Поправить часы, чтоб обновлялись сами часы, а не весь экран. (Хорошо хоть не перезагрузка раз в минуту ;) )
3. Не удалось руссифицировать дату, дни недели и направление ветра. (min и max температуру не перевел специально, так удобнее и ровнее располагаются данные)
Фото, схемы и скетчи ниже.

Спасибо всем кто сможет хоть чем то помочь. Сам я не силен в этом деле. Сборную солянку наворотить большого ума не надо))

P.S. Основной скетч максимально возможно прокомментировал, что бы долго не рыскать.
Скачать весь проект с яндекс диска
priemnik_bb.jpg transfer.jpg IMG_20180118_004000.jpg
Скетч длинный не влезает в сообщение
 

Вложения

Последнее редактирование:

=AK=

New member
Как по-вашему, сколько времени надо потратить, чтобы ответить на ваш вопрос? Просто интересно.
 

Small_d

New member
Как по-вашему, сколько времени надо потратить, чтобы ответить на ваш вопрос? Просто интересно.
Я полагаю, каждый сам определяет степень своих возможностей и сил. Я же никого не принуждаю, а прошу по мере возможности помочь. Да, скетч большой и разбираться там, возможно придется долго, а возможно, кто-то захочет собрать что-то подобное и возможно разберется с тем, что у меня не получилось.
Хотелки, это мои хотелки. А уж чем Вы сможете или не сможете, захотите или нет помочь, решать только Вам.
Например мне будет достаточно, даже если кто-то подскажет или покажет пример подключения 2х SPI устройств и их управление. Но не скетчи с примеров библиотек, их я просматривал и по их аналогии пытался сделать, а хотелось бы увидеть пример подключения именно NRF передатчика и SPI TFT дисплея. Как реализована очередность опросов и передачи данных.
 

=AK=

New member
Я же никого не принуждаю, а прошу по мере возможности помочь.
Вы не ответили на заданный вопрос.

Провисело безответным ваше сообщение почти сутки, и скорей всего висело бы бесконечно долго, если бы я не задал этот вопрос. Вы слишком многого ожидаете от форумов. Никому не хочется тратить часы на такие вопросы. Лучше задавайте такие вопросы, чтобы ответ на них не требовал много времени, минут пять от силы.

А уж чем Вы сможете или не сможете, захотите или нет помочь, решать только Вам.
Пожалуйста, не нарушайте правила русского языка, не обращайтесь к незнакомым вам лично людям "на вы" с большой буквы.

Например мне будет достаточно, даже если кто-то подскажет или покажет пример подключения 2х SPI устройств и их управление.
Вот на такой вопрос нет проблем ответить, это много времени не займет. Вы можете объединять сигналы SCK и MOSI нескольких SPI устройств, в этом нет проблем. Сигналы MISO от нескольких SPI устройств объединять вообще говоря нельзя, поскольку по умолчанию неизвестно, как в них реализовано SPI, вариантов может быть много. Однако если вы внимательно изучите даташиты на ваши SPI устройства и удостоверитесь, что все они переводят свои выходы MISO в высокоимпедансное состояние при пассивном (высоком) уровне сигнала CS*, тогда можно объединять их выходы MISO и заводить на один пин мастера. Иначе MISO должны приходить на мастер чип (т.е. на ESP) по отдельности.

В любом случае сигналы CS* должны быть раздельными.
 

Small_d

New member
Вы не ответили на заданный вопрос.

Вот на такой вопрос нет проблем ответить, это много времени не займет. Вы можете объединять сигналы SCK и MOSI нескольких SPI устройств, в этом нет проблем. Сигналы MISO от нескольких SPI устройств объединять вообще говоря нельзя, поскольку по умолчанию неизвестно, как в них реализовано SPI, вариантов может быть много. Однако если вы внимательно изучите даташиты на ваши SPI устройства и удостоверитесь, что все они переводят свои выходы MISO в высокоимпедансное состояние при пассивном (высоком) уровне сигнала CS*, тогда можно объединять их выходы MISO и заводить на один пин мастера. Иначе MISO должны приходить на мастер чип (т.е. на ESP) по отдельности.

В любом случае сигналы CS* должны быть раздельными.
CS сигналы, на разных пинах. MISO дисплея вообще не подключено к ESP, так было в оригинальной схеме метео. Видимо потому что в ответ дисплей мастеру ничего не шлет. Мне не понятен сам алгоритм выбора активного устройства. Я должен перевести CS нужного устройства в LOW, опросить его, затем перевести опять в HIGH. Так как дисплей ничего не шлет мастеру, надо ли его в момент опроса NFR переводить в HIGH и наоборот, надо ли дисплей после опроса NRF обратно переводить в LOW, т.е. выбирать как активное устройство.
Обязательно ли подключать SPI устройства на HSPI? Или можно воспользоваться пинами SPI?
 

CodeNameHawk

Moderator
Команда форума
Обязательно ли подключать SPI устройства на HSPI?
Нет, но тогда для работы с SPI не сможете использовать возможности железа(есп), только программный режим работы, а он более затратный и времязависимый, с чем в есп бывает напряг.
 

CodeNameHawk

Moderator
Команда форума
Пожалуйста, не нарушайте правила русского языка, не обращайтесь к незнакомым вам лично людям "на вы" с большой буквы.
Разрешите узнать источник, меня всегда учили :
Местоимения Вы и Ваш пишутся с прописной (большой) буквы как форма вежливого обращения к одному лицу. При обращении к нескольким лицам следует писать вы и ваш со строчной буквы. Написание Вы, Ваш с прописной при обращении к нескольким лицам – ошибка.
Как писать ВЫ и ВАШ – с прописной или со строчной буквы? - «Грамота.ру» – справочно-информационный Интернет-портал «Русский язык»
Сам я использую :
Употребление местоимения вы вместо ты при обращении к одному лицу само по себе уже представляет проявление уважительного отношения к этому лицу. Окончательное решение о написании Вы с прописной (для подчеркивания этого уважительного отношения) принимает автор текста.
 

=AK=

New member
Разрешите узнать источник
Например:

- местоимение Вы употребляется как форма вежливого обращения к одному лицу в письме официального, делового характера и в официальной документации, где адресат — одно лицо, а также при титульной лексике Ваше Высочество, Ваша честь. Во всех остальных случаях употребляется местоимение вы


- С прописной (с большой, то есть) буквы местоимение Вы (Ваш, Вам и т.д.) пишется:
  1. при обращении к одному конкретному (физическому или юридическому) лицу в официальных сообщениях «Поздравляем Вас...»; «Сообщаем Вам...»; «Прошу Вас...»; «Искренне Ваш...»;
  2. в личных письмах к одному конкретному лицу (факультативное написание – выбор определяет сам пишущий, выражая или же не выражая вежливое или уважительное отношение к адресату), в том числе и по e-mail.
Во всех остальных случаях используется строчное (с маленькой буквы) написание местоимения вы:
  1. при обращении к нескольким лицам в частной и деловой переписке: «Прошу вас, уважаемый Сергей Петрович и Иван Васильевич...»; «Господа, ваше письмо...»;
  2. в газетных публикациях, в рекламе;
  3. в литературных произведениях (диалог, прямая речь, личное обращение): «...Но пусть она вас больше не тревожит // Я не хочу печалить вас ничем»;
  4. при цитировании;
  5. при обращении к пользователю на web-странице;
  6. если обращение гипотетическое, то и в письме: «Уважаемый коллега! По поводу высказанного вами предположения...».
- и т.д. и т.п.

Обращение на форумах к неопределенномy лицу на "вы" с большой буквы - распространенная ошибка. Это не личное письмо (где можно писать и с большой, и с маленькой) и не официальная переписка (где надо писать с большой).

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

местоимения Вы, Ваш пишутся с прописной буквы при обращении к одному лицу в текстах следующих жанров:
а) личное письмо (адресат – одно лицо);
б) официальные документы, адресованные одному лицу;
в) анкеты, рекламные листовки (текст, адресованный неконкретному лицу).


А вот следующее за этим "мнемоническое правило" ошибочно, выглядит как отсебятина составителей этой веб-страницы. Если сообщение видно неопределенномy кругу лиц (газетная публикация, форум и т.п.), то оно не может рассматриваться как личное сообщение и писать в нем "Вы" неуместно.
 
Последнее редактирование:

=AK=

New member
Я должен перевести CS нужного устройства в LOW, опросить его, затем перевести опять в HIGH.
Да
Так как дисплей ничего не шлет мастеру, надо ли его в момент опроса NFR переводить в HIGH и наоборот, надо ли дисплей после опроса NRF обратно переводить в LOW, т.е. выбирать как активное устройство.
То устройство, с которым вы в данный момент общаетесь, и только оно, должно иметь активный (низкий) уровень на CS*. Другие устройства в это время должны быть в пассивном состоянии, т.е. с высоким уровнем на CS*. В паузах, когда вы не обращаетесь ни к какому из них, CS* всех устройств должны иметь пассивный (высокий) уровень.
 
Сверху Снизу