Отправка значений из arduino uno в wemos d1 r1
У меня есть погодный проект, в котором я должен измерить температуру и влажность ( датчик dht22), давление и другие вещи, а затем показать их на локальной веб-странице ( используя wemos d1 r1 ) в моем телефоне или ПК ( у меня есть как Arduino uno, так и Wemos d1 r1 для этого проекта).
Я хотел бы использовать только "вемос" Д1 Р1, поскольку он работает так же, как Arduino Uno за исключением ее с ESP8266 с Wi-Fi встроенный, а Ардуино Уно нет ,но как вы знаете он имеет только 1 аналоговый вход, а мне нужно как минимум 3 или 4 аналоговый вход так в моем случае я должен подключать датчики с Arduino Uno и измерения температуры, влажности воздуха и т. д.. а затем отправьте эти значения в wemos d1 r1 который сам покажет результаты на веб странице как я уже сказал eariler
Похоже, что есть способ сделать это через интерфейс I2C связь, но я прочитал много статей про подключение Arduino к другим Arduino через I2C соединение, но я не знаю, как это сделать в моем случае ( для Arduino Uno и "Вемос" Д1 Р1 ) и если есть другой способ отправить значения подскажите пожалуйста
@Anas, 👍2
Обсуждение3 ответа
Как я вижу, самый прямой способ подключения 2 ардуино-это использование встроенного UART (aka Serial port, TX/RX pins).
Есть много учебников по этому вопросу в Google, и аналогичное объяснение можно найти в этом вопросе: Последовательная связь arduino mega и D1 Wemos Mini
Однако есть небольшая разница. Arduino Mega имеет встроенный более 1 аппаратных последовательных портов (я не могу сейчас вспомнить, если это полные 3 порта, или только 2), что оставляет один порт для отладки целей, а другой - для вашего общения. В вашем случае (Arduino Uno) - у вас есть только один последовательный порт, который если будет использоваться для межартериальной связи-не будет доступен для отладки/консольных сообщений. Решение для этого заключается в добавлении программного последовательного порта, также очень доступного в учебниках по сети, вот один пример: программное обеспечение между arduino uno и esp8266
Приятного вам проекта!
Спасибо <3 Я выберу соединение I2C, поэтому в моем случае я должен работать с 2 компьютерами ( один подключен к подчиненному отправителю, которым является Arduino Uno, а другой-главный приемник, которым является WeMos d1), и две платы должны быть подключены через соединение i2c, мой вопрос в том, могу ли я работать только с одним компьютером, который будет подключен к UNO через USB-порт, а затем отправлять значения, измеренные с датчиков, на WeMos? и если это возможно, я буду очень признателен, если вы пришлете мне какой-нибудь пример кода!, @Anas
Я согласен с @Offer, что использование UART является самым простым решением для подключения устройств. Я просто хочу предложить две альтернативы:
Используйте внешний аналого-цифровой преобразователь IC. Использование Arduino только для аналогового преобразования немного перегружено. Например, ADS1115 имеет разрешение 16 бит, и уже есть библиотека, поэтому использование должно быть простым.
Старший брат ESP8266 - ESP32 - имеет несколько выводов АЦП.
Самое большое преимущество (помимо более высокого разрешения) заключается в том, что вам нужно написать код только для одного устройства, что делает ваш проект менее сложным.
Внешние АЦП, такие как ADS1115, также намного более точны, чем у Arduino Uno, хотя и дешевы (менее 10 долларов США), @jpa
Загляните в мой блог "Paynters Palace" и поищите посты с тегом " I2C " - думаю, вы найдете довольно много полезного кода.
Этот проект показывает, как подключить два ардуино с помощью SPI
Этот проект показывает, как соединить два ардуино с помощью I2C и как передавать произвольные типы данных между двумя блоками
- Варианты протокола для обмена данными между Arduino и ESP8266
- Соединение i2c для MCP4725 (Dac) с Esp8266 wemos d1 mini
- Проблема с использованием PubSubClient, функция "обратный вызов" работает некорректно
- Мониторинг двух скоростей передачи
- Отправка и получение различных типов данных через I2C в Arduino
- Как работают функции вне цикла void?
- AT-команда не отвечает на последовательный монитор
- Как отображать переменные на 0,96-дюймовом OLED-дисплее с библиотекой u8glib?
В основном у вас есть стандартные доступные интерфейсы связи: I2C, SPI или последовательный (UART). Вы можете свободно выбирать между ними, в зависимости от ваших требований. Для I2C: Вы не описали, в чем именно заключается ваша проблема с этим. Дело в том, что вы не нашли учебника, конкретно описывающего подключение для Uno и Wemos d1 r1? На самом деле это не проблема, так как в коде вы можете использовать любой код I2C, предназначенный для ESP8266 (который является чипом на Wemos D1 r1). Для электрических соединений: Просто подключите соответствующие контакты (помеченные SDA и SCL)., @chrisl
Да, моя проблема в том, что, к сожалению, я не нашел там ни одного учебника, показывающего, как это сделать! Если есть блог или веб-сайт, показывающий, как это сделать, пожалуйста, пришлите его мне! в противном случае для электрических соединений мне нужно только подключить arduino ( ведомый отправитель, который в данном случае напрямую подключен к ПК через порт usb), контакты SDA и SCL к wemos d1 SDA и SCL ( главный приемник )? как насчет GND и 3,3 В ( так как он работает на 3,3 В, а не на 5 В) выводе WeMos d1?, @Anas
DHT не использует аналоговые контакты, @Juraj
Вы можете использовать аналоговый мультиплексор, значительно упрощающий код и только один микро., @Gil