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

Нужна помощь ESP8266 и Ардуино, как связать их вместе

evishev1

New member
Добрый день. Как через Wifi ESP8266 передавать данные температуры ds18b20 либо просто какие-то данные через определенный промежуток времени(например: через каждые 10 минут отправлять данные с датчика температуры , а через другой ESP8266 буду принимать эти значения.

Задача для решения вопроса:
четыре датчика температуры на каждый датчик температуры установлен ESP8266 с ардуином Nano. Они будут передавать данные температуры по WiFi к одному устройству, который будет принимать эти все данные. Это устройство "приемник данных" будет тоже ESP8266 с ардуином Мега.
Как все это реализовать?
 

Gaizer

New member
Добрый день. Как через Wifi ESP8266 передавать данные температуры ds18b20 либо просто какие-то данные через определенный промежуток времени(например: через каждые 10 минут отправлять данные с датчика температуры , а через другой ESP8266 буду принимать эти значения.

Задача для решения вопроса:
четыре датчика температуры на каждый датчик температуры установлен ESP8266 с ардуином Nano. Они будут передавать данные температуры по WiFi к одному устройству, который будет принимать эти все данные. Это устройство "приемник данных" будет тоже ESP8266 с ардуином Мега.
Как все это реализовать?
уточните задачу...
вопрос 1. Зачем на каждый датчик температуры устанавливается ESP ПЛЮС Nano? Какую функцию будет выполнять нанка?
вопрос 2. приемник на меге, целесообразно ли? если приемнику хватает десятка gpio то вполне справится сама ESP. Использование Меги оправдано только в случае необходимости огромного количества GPIO.

От себя скажу, что уже давно без проблем реализовал указанную схему работы только на ESP. Только с фишечками в виде веб-сервера на центральной ESP. В качестве центральной (условного "сервера") использовал плату NodeMCU, а на датчиках температуры стоят просто ESP12E на платах-адаптерах. Питание удаленок от двух пальчиковых батареек и степ-ап преобразователя.
 

Encrypt

Member
Зачем десяток gpio? Можно подцепить тонну ds18b20 на один пин по OneWire :)
 

Сергей_Ф

Moderator
Команда форума
Можно подцепить тонну ds18b20 на один пин по OneWire
Вы вообще о чём? Тонна это тысяча? Готов поспорить на тонну $ что Вы не подключить тысячу датчиков к одной esp без доп микросхем, даже используя все её выводы. Точнее, не сможете их использовать ни вместе, ни по очереди. Готовы?

Я же, говорил об этом
если приемнику хватает десятка gpio то вполне справится сама ESP.
 

evishev1

New member
Gaizer,
уточните задачу...
вопрос 1. Зачем на каждый датчик температуры устанавливается ESP ПЛЮС Nano? Какую функцию будет выполнять нанка?
вопрос 2. приемник на меге, целесообразно ли? если приемнику хватает десятка gpio то вполне справится сама ESP. Использование Меги оправдано только в случае необходимости огромного количества GPIO.

От себя скажу, что уже давно без проблем реализовал указанную схему работы только на ESP. Только с фишечками в виде веб-сервера на центральной ESP. В качестве центральной (условного "сервера") использовал плату NodeMCU, а на датчиках температуры стоят просто ESP12E на платах-адаптерах. Питание удаленок от двух пальчиковых батареек и степ-ап преобразователя.
ЗАДАЧА. Датчики температуры находятся друг от друга очень далеко, и реализовать на одном esp8266 не целесообразно, так как потребуется большое количество проводов и наводки от проводов будет большой, а также погрешность измерения появится. Да конечно без ардуино нано можно обойтись, вы правы. Эти значения с четырех датчиков температуры нужно передавать в одно устройство, где будут происходить вычисления по этим значениям. После этого все значения предаются через последовательный порт к компьютеру. Результат измерений длится 24 часа. Температуру нужно мерить каждый 10 минут и автоматически отправлять значения к устройству. Как реализовать передачу данных на устройство? вебсервер не нужен.
 

Gaizer

New member
Датчики температуры находятся друг от друга очень далеко, и реализовать на одном esp8266 не целесообразно,
говоря "один ESP" я имел ввиду один тип устройств. ESP вполне самодостаточный контроллер, пусть и с некоторыми ограничениями. не стоит использовать данную SOC только как транспорт WiFi. она сама без проблем считает ваши датчики, без всяких ардуино.
 

Сергей_Ф

Moderator
Команда форума
@evishev1 зачем провода? Вам приемник на esp без Меги предложили сделать. Если не нужно управление чем то сложным, кроме esp для приемника ничего не нужно.

8 gpio,если быть точным
Вы забыли добавить, что как угодно из них можно использовать только 4 штуки. Остальные или заняты на старте или выдают какие-то данные сами по себе.
 

Gaizer

New member
@evishev1 зачем провода? Вам приемник на esp без Меги предложили сделать. Если не нужно управление чем то сложным, кроме esp для приемника ничего не нужно.


Вы забыли добавить, что как угодно из них можно использовать только 4 штуки. Остальные или заняты на старте или выдают какие-то данные сами по себе.
под указанную задачу - за глаза хватит. 2 штуки на i2c, один на onewire, и еще один gpio в запасе :)
 

Gaizer

New member
Gaizer,
Как реализовать передачу данных на устройство? вебсервер не нужен.
мне видится это так:
центр системы - ESP соединенная с мегой по Serial интерфейсу.
Центральная ESP поднимает свою WiFi сеть в режиме точки доступа.
Клиентские устройства - это одна ESP, без arduino nano. Клиентские ESP подключаются к центральной сети WiFi как клиенты. Клиентская ESP сама опрашивает датчик температуры - неважно какой (хоть даллас на onewire, хоть 7021 на i2c). примеров скетчей - навалом.
передача данных об измерениях осуществляется по протоколу UDP. примеры скетчей такой связи есть.
понятное дело, что для внятной адресации все клиентские устройства имеют статический ip адрес.
центральная ESP, приняв по вайфаю данные о температурах, скидывает их в мегу по serial. мега получае данные и делает то, что вам хочется.
как то так...
 

Сергей_Ф

Moderator
Команда форума
центр системы - ESP соединенная с мегой по Serial интерфейсу.
центральная ESP, приняв по вайфаю данные о температурах, скидывает их в мегу по serial. мега получае данные и делает то, что вам хочется
Мега тут зачем? Ни по быстродействие, ни по объему памяти она не выигрывает. Только по числу портов, что легко решается через i2c -расширитель, если они нужны.
 
Последнее редактирование:

=AK=

New member
Датчики температуры находятся друг от друга очень далеко, и реализовать на одном esp8266 не целесообразно, так как потребуется большое количество проводов и наводки от проводов будет большой, а также погрешность измерения появится.
-- "oчень далеко" - это сколько? Датчики ds18b20 могут находиться в сотне метров от центрального устройcтва (т.е. esp8266), и даже более того, шина 1-wire это позволяет. Неужто этого вам мало?

-- "большое количество проводов" - это вы о чем? В шине 1-wire используется всего два провода, сигнал и земля, на эти два провода вешаются все датчики. С меньшим количеством проводов вы никак не сможете сделать. Ардуине потребуется больше проводов.

-- "наводки от проводов будет большой" - а почему вы думаете, что в Ардуине наводок не будет? Они типа заколдованные от наводок? Да и вообще, что на что наводиться-то будет?

-- "погрешность измерения появится" - в честь чего бы это? ds18b20 - интегральный датчик, который передает измеренные значения в цифровом виде. Наводки не могут привнести погрешность в оцифрованный сигнал
 

Gaizer

New member
Мега тут зачем? Ни по быстродействие, ни по объему памяти она не выигрывает. Только по числу портов, что легко решается через i2c -расширитель, если они нужны.
мегу обозначил топикстартер. я не знаю, зачем она ему в центре. вполне возможно, просто потому, что так захотелось.
вариант связи я предложил - по UART (не забывая про преобразование уровней)
 

evishev1

New member
мне видится это так:
центр системы - ESP соединенная с мегой по Serial интерфейсу.
Центральная ESP поднимает свою WiFi сеть в режиме точки доступа.
Клиентские устройства - это одна ESP, без arduino nano. Клиентские ESP подключаются к центральной сети WiFi как клиенты. Клиентская ESP сама опрашивает датчик температуры - неважно какой (хоть даллас на onewire, хоть 7021 на i2c). примеров скетчей - навалом.
передача данных об измерениях осуществляется по протоколу UDP. примеры скетчей такой связи есть.
понятное дело, что для внятной адресации все клиентские устройства имеют статический ip адрес.
центральная ESP, приняв по вайфаю данные о температурах, скидывает их в мегу по serial. мега получае данные и делает то, что вам хочется.
как то так...
Спасибо. Примеры по такой связи, либо ссылки пожалуйста сбросьте, буду очень благодарен.
Мне не надо по одной шине все датчики температуры подключать. Четыре датчика температуры с ESPками.
 

evishev1

New member
Мега тут зачем? Ни по быстродействие, ни по объему памяти она не выигрывает. Только по числу портов, что легко решается через i2c -расширитель, если они нужны.
Вся программа уже написана на ардуино, мне лишь осталось только их вместе связать. Так надо. Я их не сравниваю кто лучше, а кто хуже.
 

evishev1

New member
-- "oчень далеко" - это сколько? Датчики ds18b20 могут находиться в сотне метров от центрального устройcтва (т.е. esp8266), и даже более того, шина 1-wire это позволяет. Неужто этого вам мало?

-- "большое количество проводов" - это вы о чем? В шине 1-wire используется всего два провода, сигнал и земля, на эти два провода вешаются все датчики. С меньшим количеством проводов вы никак не сможете сделать. Ардуине потребуется больше проводов.

-- "наводки от проводов будет большой" - а почему вы думаете, что в Ардуине наводок не будет? Они типа заколдованные от наводок? Да и вообще, что на что наводиться-то будет?

-- "погрешность измерения появится" - в честь чего бы это? ds18b20 - интегральный датчик, который передает измеренные значения в цифровом виде. Наводки не могут привнести погрешность в оцифрованный сигнал
Датчики температуры будут находится друг от друга далековато(по периметру дома). Так как дома у нас всех разные и периметр каждый раз будет меняться, соответственно упираемся к проводам. Да и задача не ставилось к одной ESP подключать. Не надо предлагать на одной esp все реализовать. Задачу вроде конкретно объяснил.
Был вопрос как реализовать передачу/прием данных на esp.
Зачем предлагать на одной все сделать. Такого вопроса не было.
 
Сверху Снизу