Какой Arduino подходит для многих аналоговых датчиков (и Wi-Fi)?

arduino-uno arduino-nano-33-iot

Что касается контекста, то я родом из очень тяжелого программного обеспечения, поэтому очень мало знаю об оборудовании.

Я хочу построить систему, которая требует как минимум 6 датчиков (рН, электропроводность, влажность, температура, интенсивность света, скорость потока), и я хочу отправить все эти входные данные по Wi-Fi с интервалом ~10 минут. Большинство этих датчиков будут аналоговыми.

Я заметил, что, например, Arduino Uno имеет только 6 аналоговых входов. Кроме того, исходя из исследований, мне нужно будет подключить модуль Wi-Fi к Uno, что кажется слишком большим количеством хлопот и дополнительных затрат.

Сейчас я смотрю на ARDUINO NANO 33 IOT. Он кажется идеальным для того, что я хочу сделать, так как он дешевый, имеет 8 аналоговых контактов и имеет Wi-Fi из коробки. Правильно ли я рассуждаю, выбирая этот Arduino? Мне интересно, почему что-то с возможностью Wi-Fi и большим количеством контактов дешевле, чем Uno.

Заранее спасибо!

, 👍2

Обсуждение

Некоторые из упомянутых вами типов датчиков доступны с цифровым интерфейсом (I2C или SPI) и не требуют аналогового интерфейса. Если вам нужно больше аналоговых входов, чем доступно аналоговых выводов, вы также можете использовать внешний АЦП I2C с 8 или более каналами и 12 или более битами разрешения., @StarCat

Вы можете обойти ограниченное количество аналоговых контактов, мультиплексируя датчики на одном из них. Запитайте каждый датчик с помощью другого цифрового вывода, и пусть все их выходы идут к одному и тому же аналоговому выводу. При каждом опросе включайте по одному датчику за раз, считывайте его выход на аналоговом выводе, выключайте датчик, включайте следующий, считывайте и т. Д. Это одна из техник, которую я использую в своих комнатных растениях. Я использую NodeMCU-12e или Wemos D1 minis., @stevieb

Короче говоря, Uno перепроектирована с использованием технологий 20-летней давности. В настоящее время многие необходимые вещи можно сделать с помощью одного кремния. Исходя из того, что вы хотите сделать, я бы сказал, что Nano 33 IoT - хороший выбор., @hcheung

АЦП ESP32, хотя и не идеален, гораздо более способен, чем АЦП UNO. Ни один бортовой АЦП действительно не стоит ни гроша по сравнению с чем-то дешевым и потрясающим, как 4-портовый 15-битный АЦП ADS1115 стоимостью $ 2. Я бы использовал NodeMCU и один из них; $ 5, готово. За стоимость одного NANO33 вы можете получить 4 или 5 таких установок. Никто не покупает настоящие платы Arduino, если только они не знают ничего лучшего., @dandavis


2 ответа


Лучший ответ:

3

Для краткого ответа: просто используйте NodeMCU ESP32 или любую плату ESP32 dev.

TLDR;

ESP32 dev board pinout

ESP32 на самом деле является модулем Wi-Fi, но имеет очень мощный процессор (240 МГц макс), намного быстрее, чем Arduino Uno (atmega328 @16 МГц). Из-за этого Wi-Fi становится естественным для ESP32.

Вы даже можете купить плату ESP32 dev примерно за 10 долларов (включая доставку), в то время как сам модуль esp32 стоит всего 5 долларов

Arduino UNO 33 IOT-это просто SAMD21 (@48MHz) с внешним модулем wifi. Один только этот модуль Wi-Fi стоит около 10 долларов. Эта конфигурация похожа на Arduino UNO + wifi shield, но, конечно, дешевле, потому что вам не нужен дополнительный дорогостоящий щит для Wi-Fi.

Дорогой wifi shield на самом деле HDG204 wifi SIP (система в пакете) + 32-битный AVR AT32UC3C1512C (66 МГц макс). В значительной степени wifi shield piggy back на Arduino UNO в 4 раза быстрее, чем 8-битный micro atmega328 Arduino UNO. Так что... это дорого.

Правка:

ESP32 имеет 2x 12-битный АЦП с 16 каналами, выводимыми на вывод ввода-вывода на большей части платы ESP32 dev.

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

,

Не могли бы вы объяснить, как это отвечает на вопрос?, @StarCat

По - моему , это почти отвечает на весь вопрос , кроме того , почему он дешевле ., @xbox gamer

модуль Wi-Fi на Nano 33 IoT - это ESP32, @Juraj

Одной из проблем в этом вопросе было количество доступных аналоговых портов. Вы не упомянули о них в своем ответе., @StarCat

ОП ищет взаимодействие с большим количеством аналоговых датчиков. ESP-32 не будет хорошим выбором, если вы хотите использовать АЦП, он шумный, нелинейный..., @hcheung

По словам hcheung, у меня нет большого опыта работы с АЦП ESP32, но если мне нужен малошумящий АЦП, я предпочитаю использовать внешний АЦП с выделенным малошумящим блоком питания. Я использую АЦП от нескольких Arm M0 / M0 +, но не очень доволен ими., @SimonVu14

СтарКэт, ты можешь прочитать картинку распиновки? OP хочет что-то, что не стоит дорого, имеет много каналов АЦП и работает из коробки без дополнительных дополнений. Вы пытаетесь сказать, что я должен дать ответ на строго плате arduino от arduino.cc только? Я редактирую свой ответ, чтобы просто ответить на то, что хочет ОП, как в вопросе., @SimonVu14

Основываясь на этой диаграмме https://github.com/thehookup/ESP32_Ceiling_Light/blob/master/PinModes_ESP32_NodeMCU.jpg похоже, что NodeMCU ESP32 имеет только 6 аналоговых входных контактов. Я чего-то не понимаю?, @Brian Yap

Спецификация ESP32 D0WD, страница 15 https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf , показывает матрицу выводов АЦП. Все эти контакты показаны на рисунке распиновки из руководства TheHookUp. Я не доверяю на 100% этим учебникам в Интернете. Это хорошо в своем собственном контексте, но иногда неправильно в другом контексте., @SimonVu14

Я рассматривал AdaFruit Huzzah32 Feather ESP32… 16 аналоговых входов (2 ЦАП); встроенный Wi-Fi, Bluetooth и USB; Встроенный источник/зарядное устройство LiPo батареи; и совместимый с Arduino IDE, все за 20 долларов. (WipperSnapper совместим с IoT.) Похоже, эта часть может удовлетворить исходный вопрос., @samkass


0

Не имеет значения количество аналоговых контактов, если вы проводите 10 - минутные опросы.

Подключите питание к каждому датчику от его собственного цифрового вывода. Подключите выходы датчика к одному аналоговому контакту. Обратите внимание, что любой аналоговый вывод можно использовать в качестве цифрового, но не наоборот.

Начните с выключенными датчиками (т. е. отдельные цифровые контакты питания стали НИЗКИМИ). Когда вы проводите опрос, включите цифровой вывод одного датчика, считайте выходные данные на аналоговом выводе, а затем снова включите питание датчика. Переходим к сенсору два, сенсору три и так далее.

Это в значительной степени мультиплексирование аналогового вывода. Я делаю это все время в своих системах автоматизации комнатных растений.

Обычно я использую для этой задачи Wemos D1 minis или устройства NodeMCU-12e. За последнюю партию D1 minis я заплатил менее 10 долларов за пять из них, включая доставку и налоги. Оба устройства, о которых я упоминал, имеют Wi-Fi и Bluetooth. Я даже перепрограммирую их по воздуху (OTA).

,

:-O как отключить питание аналоговой сенсорной цепи? например, цепи LDR, CT, датчиков температуры будут мешать друг другу, @Juraj

Вы делаете это на своем Wemos D1, который имеет только один посредственный АЦП?, @hcheung

Для 10K LDR, 10K термистора или некоторых маломощных датчиков (менее 10 мА) они могут питаться с помощью вывода ввода-вывода для каждого датчика без проблем. Просто включите один из них, когда это необходимо, а затем выключите, когда закончите, @SimonVu14