Який мікроконтролер та мову програмування слід використовувати для відображення погоди в Інтернеті?


11

Я новачок в IoT і хочу розпочати кар’єру в IoT. Під час пошуку в Google стартапів в IoT я знайшов багато блогів. І я знайшов такі мови, які використовуються в IoT, як C #, Java, Node.js, і такі мікроконтролери, як Arduino, Raspberry Pi, Intel, Netduino тощо.

Оскільки я новачок в IoT, я не знаю, яка мова найкраща та який мікроконтролер я використовую для запуску?

Я кажу, що для базового запуску я хочу створити пристрій, у якому є дисплей, який відображає погоду для розташування, вказаного з мого мобільного. Тож це може бути хорошим прикладом для запуску, який охоплює обладнання, Інтернет та програмне забезпечення.

Пристрій матиме акумулятор, невеликий цифровий дисплей та так, обмеження витрат.

Який мікроконтролер та мову я повинен використовувати, що відповідає моїм вимогам щодо показу погоди?


1
Це здається набагато кращим питанням, ніж ваше попереднє; значно більше зосереджена на конкретному випадку використання. Тож ми можемо дати вам хорошу відповідь. Ось кілька питань: чи ваш пристрій буде живитись від мережі або від акумулятора? Наскільки великим ви хочете бути дисплеєм? Чи є обмеження витрат?
Aurora0001

2
Також для вибору мікроконтролера ця відповідь справді фантастична.
Aurora0001

1
Дякую @ Aurora0001 Я додав більше деталей, як ви коментували, будь ласка, перевірте.
Jigarb1992

1
Збір гнид: Arduino є мікроконтролером. Pi - це повноцінний комп'ютер, такі речі, як Pis та Beaglebones та Gumstix, зазвичай називають "одноплатними комп'ютерами" (SBC) або "комп'ютерними модулями" (COM). На відміну від Pi, Arduino не працює з ОС - Arduino - це просто Atmel ATmega ?? 8 на приємній маленькій простій у користуванні платі, яка постачається зі зручним IDE. Pi - це власне комп'ютер з мікропроцесорним ядром ARM Cortex-A53. Ви можете використовувати, скажімо, Pi, щоб виконати всі мережеві та дисплейні виходи та складне управління за допомогою Arduino, щоб виконати просту роботу, наприклад, кнопки читання, теги RFID або щось подібне.
Джейсон C

1
Пристрої, що живлять від акумулятора: ви маєте на увазі смартфон / смарт-годинник (акумулятор Li, термін служби декількох днів між перезарядками), або як годинник (AA не підзаряджається, термін служби кілька місяців)? Це призведе до вашого дизайну і суттєво обмежить ваші варіанти, якщо ви виберете останнє.
pjc50

Відповіді:


5

Особисто я вибрав би Raspberry Pi 3B для цього, хоча це, мабуть, набагато потужніше, ніж вам справді потрібно. Причини, які мені підказують, такі:

  • Він має вбудовану бездротову локальну мережу 802.11 b / g / n, тому ви зможете підключити її до мережі Wi-Fi, а не за допомогою кабелю Ethernet

  • Він також підтримує Bluetooth, так що ви, можливо, зможете підключитися до телефону через це.

Вам також знадобиться блок дисплея, і, як зручно, є кілька дисплеїв, призначених для Raspberry Pi, як цей сенсорний екран 4DPI-32 . Ви повинні просто мати можливість розміщення дисплея безпосередньо на 40-контактному заголовку:

40 контактний Raspberry Pi Foundation , CC BY-SA 4.0 . Я знаю, що це технічно Pi 2B, але GPIO такий же, як і у 3B.

Що стосується аспекту програмування в цьому випадку, все, що вам потрібно зробити, - це вивести десь погоду з API і відобразити його на екрані як програму GUI. Дисплей функціонує як будь-який вихід HDMI для Pi, тому нічого особливого не потрібно робити. Для Python ви можете використовувати Tkinter для створення базового інтерфейсу або навіть можете вибрати веб-додаток у HTML / CSS / JS, залежно від того, що вам подобається. Ви можете безкоштовно використовувати API OpenWeatherMap ; документація пов'язана для кожної кінцевої точки API.

На даний момент це залежить від вас дійсно. Кращий мова тут мова ви найбільш комфортно. Якщо ви як AngularJS, просто створити HTML - сторінку, отримувати погоду з кутовими (або використовувати бібліотеку , як це , щоб допомогти вам) і відобразити його з допомогою деяких CSS , щоб зробити його добре виглядати.

Дійсно отримати місцезнаходження, я думаю, що було б простіше просто дозволити користувачеві вводити своє місцезнаходження на сенсорному екрані Pi. Надіслати місцезнаходження свого телефону, мабуть, трохи складніше, хоча ви, можливо, зможете знайти щось, якщо багато дослідите.

Для використання акумулятора це питання варто прочитати на Raspberry Pi Stack Exchange .


1
Ви маєте підключити комплекти Vilros Pi , які працюють нестандартно і заощаджують багато роздратованих початкових налаштувань. Також поза темою, але для налагодження я вважав це (і його розробленою версією, якщо ви шукаєте на сайті) неймовірно корисною. Дорогий для одноразового використання, але вартий того, якщо ви користуєтесь ним постійно. Добре працює з адаптером HDMI -> VGA.
Джейсон C

1
Ні. По-перше, через залежність від крихкої SD-карти, по-друге, тому що ви не можете реально займатися виробництвом у помірних кількостях. Пі може отримати вам підтвердження концепції, але тоді вам доведеться переробляти щось, що ви можете реально використовувати в продукті. Крім того, це в основному неповний стартер для живлення акумулятора при будь-якому серйозному використанні.
Кріс Страттон

@ChrisStratton: Для початківця, як OP, RPI здається життєздатним варіантом на мою думку. Так, для масштабного виробництва це не було б ідеально, але я зосередився на наданні доступної , легко модифікованої ідеї; POC - це саме те, що тут потрібно. Я не думаю, що SD-карта насправді не викликає особливих турбот щодо налаштувань на захоплення; у масовому виробництві історія інша, але для відправної точки я думаю, що це має працювати досить добре. Я відкритий до будь-яких пропозицій щодо кращого підходу.
Aurora0001

Навіть крім того, як ці проблеми роблять його нежиттєздатним у продукті, вимога до акумуляторної батареї плаката виключає це з самого початку. Оскільки pi - це архітектура, що працює в комплекті, без керування живленням мобільного, ви не отримаєте більше ніж кілька годин від розумного акумулятора.
Кріс Страттон

10

У Лук Омега 2 стверджує, що найменший Linux комп'ютер в світі. Це твердження може бути неправдивим (наприклад, див. Vocore2 нижче, наприклад), але, на мій досвід, воно повинно бути найменшим 3. Вартість коштує лише 5 доларів, вбудований wifi, розроблений спеціально з IoT. Має на своєму веб-сайті кілька щитів . Новий продукт, схоже, має сильну та активну спільноту. Пристрій Kickstarter отримує пристрій. Варто перевірити.

Крім того, як зазначалося в коментарях, ознайомтеся з vocore2 , який насправді здається меншим, ніж цибуля, і дешевшим на 4 долари. Зараз він фінансується в IndieGoGo, а орієнтовні дати доставки - лютий 2017 року (наступний місяць на момент написання цього повідомлення). Також виглядає, що у вас є асортимент доків, і він має вбудований wifi-роутер, який дуже цікавий.

Я щойно натрапив на них днями і не маю з ними досвіду. Зауважте, однак через їхню новизну деякі пакети Linux, якими ви могли користуватися, можуть бути ще недоступні (наприклад, я знаю, що на момент написання пакета gstreamer недоступний у луці все ж, ви повинні будувати з джерела, хоча gstreamer для вас не відповідає).

Окрім тих, як говорить інша відповідь, Pi - це чудовий пристрій низької вартості. Не забувайте про Raspberry Pi Zero , ще один крихітний комп’ютер за 5 доларів по лінії цибулі. У нього немає всіх портів, які мають більші Pi, але якщо ви не заперечуєте, або якщо ви просто хочете використовувати 3 для розробки, а нульовий розмір у кінцевих продуктах, це ще один вибір, про який варто задуматися.

Інші пристрої, деякі дорогі, включають:

  • BeagleBone Black (це єдина альтернатива Pi, яку я серйозно розглядаю через низьку вартість).
  • Gumstix ($$$, але ми постійно їх використовуємо в проектах для їх розміру)
  • Udoo ($$$, але пакує удар)
  • Toradex Colibri (Трохи важко працювати, але ми користуємося ними набагато кращими характеристиками, ніж Gumstix, і ми маємо можливість запустити Windows CE з функцією миттєвого завантаження, якщо ви віддасте перевагу ланцюжку інструментів Windows і практично нульовий час завантаження. ).

Також зауважте, що Vilros виготовляє чудові стартові набори Pi (дешевше на Amazon), попередньо упаковані з ОС, працює Wi-Fi, радіатори, корпус, працює прямо з коробки і економить тонну грубої роботи з налаштування. Також варто перевірити, чи ви їдете по маршруту Пі. Vilros також використовував стартові набори Beaglebone, які, здається, більше не доступні на їхньому сайті, але якщо ви шукаєте Newegg / Amazon / тощо. Ви все ще можете знайти наявні запаси.


До речі, Arduino (або інший мікроконтролер, на відміну від повнорозмірних одноплатних комп'ютерів, перерахованих вище), мабуть , не те, що ви хочете тут. Arduino - це просто Atmel ATmega168 / 328. Він не запускає ОС і насправді нічого не робить, окрім того, що саме ти йому кажеш. Так, наприклад, для роботи в мережі вам знадобиться захист Ethernet, який постачається з повною бібліотекою управління Ethernet, на яку я вважаю, що забезпечує стек TCP та UDP (я ніколи не використовував його, просто переглядаючи їх сайт) і, звичайно, займає багато обмеженого кодового простору.

Тоді вам доведеться створити свого погодового клієнта і все на цьому, і вам доведеться це зробити у 32 КБ або менше. Це інший смак розвитку, ніж розвиток Linux / Windows на Pi / Beaglebone / Gumstix / Colibri / тощо. Трохи поза рамками цієї відповіді.

Те, що Arduino тут добре, - це доповнення до вашої основної системи для роботи з апаратними інтерфейсами, такими як зчитування датчиків тиску, кнопок, керування основними електронними елементами.

Розробка вбудованих систем - це зовсім інший зразок, ніж розробка настільних комп'ютерів, яку ви б робили на Pi, і я дійсно не рекомендував би намагатися робити це тільки з Arduino, особливо без досвіду.


1
vocore2 на даний момент менший і дешевший (4 долари) на тиражах OpenWRT (Linux)
Matija Nalis

2
Яка історія з відкритим кодом з цією?
Шон Хуліхане

@SeanHoulihane Чудове запитання. Я побачу, чи зможу це дізнатися, їх сторінки на Kickstarter та домашньої сторінки бракує цього питання. Я насправді трохи заплутався в "найменшій" заяві людей на Луці після коментаря Matijo's vocore2 вище, але, можливо, вони можуть викупити себе (в моїх скромних очах) з відкритою архітектурою.
Джейсон C

3
Пам'ятайте, що люди можуть претендувати на що завгодно на Kickstarter ...
Шон Хуліхан

@SeanHoulihane О людино, не запускай мене на мою ненависть на Kickstarter ненависті, хе. Протистояти, чинити опір ... Проте, Kickstarter заявляє і відкритість убік, і Omega, і vocore - це прикольно виглядають нові пристрої. І у нас є RPi Zero теж на недорогих фронтах.
Джейсон C

6

Я пропоную покроковий підхід, щоб з’ясувати, якою мовою та контролером ви повинні користуватися. Мікроконтролер, який вам потрібен, залежатиме від завдань, які ви хочете виконати. Теоретично завдання поставить деякі вимоги, які повинен виконати відповідний мікроконтролер, тож слід обрати мікроконтролер відповідно до цих вимог.

  1. Визначте історію користувача для пристрою. Чого ви очікуєте від цього? На що ти хочеш, щоб вона була здатна?

    У вашому випадку це вже визначено вами:

    Пристрій, що працює на акумуляторі, який повинен мати можливість приймати входи зі смартфона та відображати інформацію про погоду запитуваних місць на власному дисплеї.

  2. Тепер крок 1. дає вам щось почати. Ви можете визначити, яке обладнання вам потрібно на рівні блок-схеми.

    Вам, безумовно, знадобиться дисплей і, можливо, модуль WiFi або Bluetooth для спілкування з мобільним телефоном. Доступ до глобальних баз даних про погоду, можливо, потребуватиме підключення до Інтернету. Ви повинні керувати обома цими модулями MCU або модулем WiFi (вам потрібен Інтернет, щоб ви могли виключити Bluetooth).

  3. Ви можете почати шукати конкретні деталі. Ви можете почати з вирішення того, який акумулятор ви будете використовувати, щоб ви могли врахувати енергоспоживання потенційних деталей. Я підсумував загальний процес вибору MCU в одній з попередніх відповідей . В основному те саме слід зробити і тут. Знайдіть дешевий дисплей, він, ймовірно, використовує інтерфейс SPI або I2C для спілкування. Тоді ви можете шукати або модуль Wifi з SPI / I2C і має інтегрований MCU або окремий MCU та модуль WiFi. Індивідуальний модуль WiFi, ймовірно, використовуватиме UART для спілкування, тому окремий MCU повинен мати це по SPI / I2C.

  4. Щодо мови. Більшість мікроконтролерів обмежать ваші можливості в цій галузі. У більшості випадків ваш вибір буде або C, C ++, або збірка, строго кажучи про мікроконтролери, а не про одиночні бортові комп'ютери.

    Якщо ви вирішили скористатися BeagleBone або Raspberry, які можуть працювати з Linux або іншою потужною ОС, то я кажу, що найкращою мовою буде той, який ви знаєте найкраще, звичайно, він повинен мати можливість впоратися із завданням. ( Якщо ви хочете, ви можете запустити Java на RPi. )

    Відкрити гніздо до глобальної служби погодних даних можна також на C, C # або Python. Було б трохи складніше обробити JSON за допомогою C, але, безумовно, це можливо.

Якщо говорити про витрати загалом. Найкращим варіантом є пошук дисплейних пристроїв із підтримкою WiFi. Результатів буде багато, і більшість з них використовуватиме одне і те ж обладнання, і, ймовірно, це буде найдешевше.


Ви можете використовувати Wi-Fi модуль ESP8266, сумісний з Arduino для підключення до Інтернету та інтерфейсу дисплея. Це зажадає набагато майстерності, ніж Raspberry Pi, але буде дешевше.

Ось проект Hackaday про дисплей ESP8266 + OLED .


2
Хороша розбивка процесу. Micropython доступний для багатьох невеликих плат, можливо, одним із факторів, який слід врахувати, є екосистема дошки, і якщо є якісь бібліотеки з відкритим кодом (хоча постачальники MCU часто надають і хороші бібліотеки).
Шон Хуліхане

6

Створення стартапу - це не те, що можна зробити з технологією, а навіть не про продукт. Для успішного запуску, який може зачарувати VC, слід спочатку подумати про ринок, який ви збираєтеся обслуговувати. Але думати про ринок, який ви будете обслуговувати, недостатньо. Потрібно мати реальні дані про ринок. Це не просто щось, що має для вас сенс. Створення продукту та його прив’язка до його продажу не є вдалим підходом, і саме так закінчуються більшість невдалих стартапів. Ринок - Справжня потреба. Коли ви створюєте продукт, створіть його для вирішення конкретного ринку. Це те, що робить успішним товар, продукт, який продається сам, тому що люди вже шукають його. VC інвестує лише у стартапи, які мають таку продукцію, особливо якщо вони вже продаються.

Щоб вибрати технологію для розробки свого продукту, спочатку потрібно знати, що потрібно зробити, саме так вирішувати проблему на вибраному ринку. Потім подивіться, що потенційні клієнти готові платити за це. Тоді вибрали технологію, яка дозволяє швидко виходити на ринок, зберігаючи витрати в межах бюджету. Потім направляйте в розробку аутсорсинг або знайдіть партнера, який може це зробити, і він готовий працювати з вами. Поділіться прибутком 50/50 зі своїм партнером. Потім, коли у вас є прототип, починайте складати свій бізнес-план і пам’ятайте, що ви можете зачарувати ВК, лише якщо покажете їм, як вони можуть заробляти гроші.

Якщо вам потрібно знизити вартість вашого продукту для масового виробництва, ви можете використовувати мови нижчого рівня та менш винахідливі мікроконтролери, такі як Microchip PIC або Silicon Labs EFM з ASM / C / C ++. Якщо продукт не збирається для масового виробництва (100k +), використовуйте мову більш високого рівня та більш винахідливі мікроконтролери, такі як Micro Python або Lua з ARM32 MIPS або навіть Linux з ARM32 / 64. Це економить витрати на розробку, але збільшує ціну на обладнання. Пам’ятайте, ціна товару - це не просто ПХБ з компонентами; розробка, житло, упаковка та все інше, необхідне для продажу товару, повинно входити у вартість. Помістіть це у бізнес-плані. І не ходіть на ВК з ардуїно чи малиновим пі, або цибулею чи будь-якою річчю, схожою на гаджет-любитель,

Почати, а не вниз, і найкраще удачі.


Це дійсно має повний сенс маркетингу. Дякую :)
Jigarb1992
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.