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

Железо для научного проекта

biolog

New member
Здравствуйте, уважаемые эксперты.

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

О девайсе:
Должен получиться объект интернета вещей, способный передавать данные с датчиков в интернет, записывать их на встроенную SD-карту, и переодически крутить моторы.
Вычислительные мощности большие не требуются.

Требования к плате (в порядке приоритета):

1) Самое важное - надежность и стабильность работы.
(Эксперименты будут длиться неделями, и все это время все должно работать непрерывно и без сбоев).
2) Ориентированность на интернет вещей
3) Компактность сам девайс имеет форму куба с размерами 20х10х10 см
(Например, размер esp32 - ок, а размер arduino UNO уже великоват).
4) Совместимость с Arduino IDE.
(Это нужно, чтоб все представители научного сообщества по всему миру могли вносить коррективы в код, даже не имея опыта в серьезных языках программирования).
5) Наличие большого количества библиотек и информации
6) Низкая стоимость платы (условно, до 10$)


Какие платы мы уже рассматривали:

1) Первым кандидатом был esp8266-01
(Но, нашли информацию о нестабильности работы и отказались. Хотя, может, это и не так?)
2) esp-wroom-32
(Кажется хорошим вариантом, но в в сравнении с другими платами, по нему пока мало информации. Плюс, хотелось бы плату подешевле)
3) Также думали про Wemos D-1
4) Может, мы смотрим не туда, и вы посоветуете что-нибудь лучшее?..

Большое спасибо за внимание, надеюсь, вы поможете определиться.


Набор подключаемых компонентов (привожу для понимания, на всякий случай):

4 шаговых двигателя 28BYJ-48
DC мотор на 3 вольта
2 излучающих диода видимого спектра
2 фотодиода OPT101
SD-карта для записи данных
5 датчиков Холла (для контроля вращения двигателей)
Термометр

Набор встроенных компонентов:
WiFi
 

NeoroN

Member
дешевле ESP8266 вряд ли что-то получится, Но я бы взял ESP32 и прошил в них микропитон. Если нет опыта в C++ лучше в него не лезть иначе можно забыть про стабильность - взять какую нибудь Nodemcu или Micropython прошивку и писать программы на языках верхнего уровня(кто бы что не говорил но С++ ближе к ассемблеру чем к тому же JavaScript или Python)
 

azt59

Member
Если нужна стабильность берите esp8266+ stm32, основная прошивка в стм крутится, управляет всем собирает данные, а esp включаем только тогда когда надо передать данные в сеть, если есп повиснет то стм передернет ему питание
 

biolog

New member
дешевле ESP8266 вряд ли что-то получится, Но я бы взял ESP32 и прошил в них микропитон. Если нет опыта в C++ лучше в него не лезть иначе можно забыть про стабильность - взять какую нибудь Nodemcu или Micropython прошивку и писать программы на языках верхнего уровня(кто бы что не говорил но С++ ближе к ассемблеру чем к тому же JavaScript или Python)
А как насчет написания не на чистом С++, а на Arduino IDE? Он стабилен при правильном коде?
Дело в том, что Arduino IDE очень распространен и к нему есть много туториалов и примеров. А нам нужно добиться максимальной универсальности, так как этот проект могут захотеть воспроизвести и в других лабораториях.
 

biolog

New member
Если нужна стабильность берите esp8266+ stm32, основная прошивка в стм крутится, управляет всем собирает данные, а esp включаем только тогда когда надо передать данные в сеть, если есп повиснет то стм передернет ему питание
А почему именно STM32? А не какая-либо другая плата + ESP8266?
А что думаете про Wemos D-1?
Хотелось бы, чтобы модуль связи сразу был на борту.
 

biolog

New member
Если нужна стабильность берите esp8266+ stm32, основная прошивка в стм крутится, управляет всем собирает данные, а esp включаем только тогда когда надо передать данные в сеть, если есп повиснет то стм передернет ему питание
А почему именно STM32? А не какая-либо другая плата + ESP8266?
А что думаете про Wemos D-1?
Хотелось бы, чтобы модуль связи сразу был на борту.
 

NeoroN

Member
https://aliexpress.ru/item/33038740493.html думаю это то, что вам надо. ESP8266 это древняя версия чипа. У меня 2 их сдохло просто лежа в коробке(мож статикой убил), греются они тоже нехило. Micropython рекомендую потому что он проще и понятнее, а C++ стабилен если не допускать ошибок(неточностей) в коде - он быстрее за счет того что полагается на грамотность программиста. В питоне же больше проверок да и править программу без необходимости компиляции намного удобнее.
 

biolog

New member
https://aliexpress.ru/item/33038740493.html думаю это то, что вам надо. ESP8266 это древняя версия чипа. У меня 2 их сдохло просто лежа в коробке(мож статикой убил), греются они тоже нехило. Micropython рекомендую потому что он проще и понятнее, а C++ стабилен если не допускать ошибок(неточностей) в коде - он быстрее за счет того что полагается на грамотность программиста. В питоне же больше проверок да и править программу без необходимости компиляции намного удобнее.
Большое спасибо за ответ. Тоже склоняюсь к esp32, тем более, что уже есть один, купленный на пробу. Насчет Micropython буду думать.
 

azt59

Member
Вся вайфайная лабуда имеет будь то есп8266 или есп32 да хоть rtl8711 и еже с ними, имеет часть прошивки в закрытом виде(часто в ней есть баги которые не исправить по крайней мере не легко исправить)))). И если не дай бог какой-то глюк, будь то выброс по питанию или шум в радио-эфире да есп вообще от чиха рядом может повиснуть, и все вся ваша наука осталась висеть вместе с ним.
Берите обычный проц общего назначения будь то стм32 или что-нибудь из avr да хоть pic возьмите, пишите всю кухню на нем, а esp как транспорт в сеть. Надоест вайфай подключите bluetooth модуль, надоест вся эта беспроводная лажа подключите ethernet, can, rs482. Это по взрослому. И главное если правильный софт и питание будет работать до скончания века, а esp это светодиодами поморгать и все!
 

biolog

New member
Вся вайфайная лабуда имеет будь то есп8266 или есп32 да хоть rtl8711 и еже с ними, имеет часть прошивки в закрытом виде(часто в ней есть баги которые не исправить по крайней мере не легко исправить)))). И если не дай бог какой-то глюк, будь то выброс по питанию или шум в радио-эфире да есп вообще от чиха рядом может повиснуть, и все вся ваша наука осталась висеть вместе с ним.
Берите обычный проц общего назначения будь то стм32 или что-нибудь из avr да хоть pic возьмите, пишите всю кухню на нем, а esp как транспорт в сеть. Надоест вайфай подключите bluetooth модуль, надоест вся эта беспроводная лажа подключите ethernet, can, rs482. Это по взрослому. И главное если правильный софт и питание будет работать до скончания века, а esp это светодиодами поморгать и все!
Спасибо за совет! Пошел гуглить незнакомые слова)
Вообще, странно, у меня было мнение, что esp32 для промышленного мониторинга разрабатывался, и, как следствие, должен быть достаточно надежен. Хотя, практического опыта у меня нет.
 

Юрий Ботов

Moderator
Команда форума
С вашего позволения несколько замечаний:
1. Начинать разработку этого устройства надо не с управляющей платы а с источника питания, который будет в состоянии крутить все эти движки и не просаживать при этом напряжение. И разумеется сначала осознать потребляемые токи (может придется еще и вентиляцию принудительную делать)
2. Вторым, с чем надо определиться это драйверы двигателей. Такую кучу движков нельзя подключать непосредственно на выходы контроллера
... отсюда только будут понятны реальные габариты устройства и возможно кубик подрастет
3. Надежность это конечно хорошо, но вы знаете патаметры наждежности 3х вольтового моторчика? Я не раз сталкивался с их достаточно низким качеством изготовления. То есть надежность платы процессора это еще не все. Блоки питания тоже ведут себя по всякому.
4. Ардуино IDE это конечно хорошо, однако это противоречит с требованием надежности. Вы же не будете писать ВЕСЬ код? Разумеется вы будете использовать сторонние библиотеки... В этом и проблема. Качество большинства Ардуино библиотек весьма посредственное. С целью экономии памяти в этих библиотеках в принципе отсутствует обработка ошибок и всяких неожиданностей.
5. Тут говорили про Пайтон (Питон) - насколько я знаю, люди вашей специальности используют его для моделирования гораздо чаще чем Ардуино :) Питон - это хорошая идея.
6. Есть малоформатные "процессорные" платы из серий Raspberry Pi, Orange Pi Zero и т.п. В них есть и wifi и полноценный Питон под Linux, и с SD картой у них никаких проблем нет. Может подумать в эту сторону?
7. Также из соображений надежности имеет смысл всю межплатную коммутацию делать пайкой, а не "на разъемчиках".
 

azt59

Member
Противоречит ras-pi Пункту 6 первого топика, может за 10$ тогда mt7688
#Aliexpress 719,90 руб. | Бесплатная доставка Горячая Распродажа UART к Ethernet openwrt/linux wifi беспроводной мини маршрутизатор модуль MT7688 ram 128 flash 32
 

Юрий Ботов

Moderator
Команда форума
Противоречит ras-pi Пункту 6 первого топика,
:) думаю это требование (п.6) еще не раз будет пересмотрено, после того как поймут стомость нормального блока питания достаточного для этой цели и стоимость остального обвеса. По опыту знаю что 50-70% стоимости хардвари изделия - корпус+блок питания. А реально трудозатратным будет разработка "надежного" софта. И переход на линуксовые платки позволить ТС сэкономить значительно больше, чем поиск "самого дешевого контроллера". А что до 7688 - тоже вариант, но как к нему моторы подцеплять? :) Автору придется заодно разработку печатных плат осваивать.
 

biolog

New member
С вашего позволения несколько замечаний:
1. Начинать разработку этого устройства надо не с управляющей платы а с источника питания, который будет в состоянии крутить все эти движки и не просаживать при этом напряжение. И разумеется сначала осознать потребляемые токи (может придется еще и вентиляцию принудительную делать)
2. Вторым, с чем надо определиться это драйверы двигателей. Такую кучу движков нельзя подключать непосредственно на выходы контроллера
... отсюда только будут понятны реальные габариты устройства и возможно кубик подрастет
3. Надежность это конечно хорошо, но вы знаете патаметры наждежности 3х вольтового моторчика? Я не раз сталкивался с их достаточно низким качеством изготовления. То есть надежность платы процессора это еще не все. Блоки питания тоже ведут себя по всякому.
4. Ардуино IDE это конечно хорошо, однако это противоречит с требованием надежности. Вы же не будете писать ВЕСЬ код? Разумеется вы будете использовать сторонние библиотеки... В этом и проблема. Качество большинства Ардуино библиотек весьма посредственное. С целью экономии памяти в этих библиотеках в принципе отсутствует обработка ошибок и всяких неожиданностей.
5. Тут говорили про Пайтон (Питон) - насколько я знаю, люди вашей специальности используют его для моделирования гораздо чаще чем Ардуино :) Питон - это хорошая идея.
6. Есть малоформатные "процессорные" платы из серий Raspberry Pi, Orange Pi Zero и т.п. В них есть и wifi и полноценный Питон под Linux, и с SD картой у них никаких проблем нет. Может подумать в эту сторону?
7. Также из соображений надежности имеет смысл всю межплатную коммутацию делать пайкой, а не "на разъемчиках".
Спасибо за замечания!
Попробую ответить.

1) Моторчики эти работают в разработанных нами и сделанных на нашем же ЧПУ перистальтических насосах. Почему выбрали именно эти моторы?
a) Повсеместная распространенность - легко купить, легко заменить
б) Используются в бытовой технике, что может говорить о надежности (но не факт, естественно).
б) габариты
в) цена
Про питание: на один двигатель 500мА .Тут надо понимать, что в один момент времени работает только один двигатель. При этом, двигатель включается примерно раз в 2 часа и делает 5 оборотов (что соответствует прокачке 100 мкл жидкости). Все остальное время все моторы не работают.

2) Драйвер ULN2003 (размеры учтены)

5) Про питон - да, вы правы! Где бы найти разработчика?

6) Дорого. У нас таких девайсов в пике могут быть сотни. Тут еще надо заметить, что каждый отдельный девайс имеет параллельно работающий с ним дубль. То есть, на 100 независимых параллельных экспериментов нам нужно 200 устройств.

7) Пайкой - да, так и планируем.
 
Сверху Снизу