Какой микроконтроллер и язык программирования я должен использовать для отображения погоды в Интернете?


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 или что-то еще.
Джейсон С

1
Устройства с батарейным питанием: вы имеете в виду смартфон / умные часы (литиевая батарея, срок службы от нескольких дней до перезарядки) или часы (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, но на 3B GPIO такой же.

Что касается аспекта программирования в этом случае, все, что вам нужно сделать, это извлечь погоду из API где-нибудь и отобразить ее на экране как программу с графическим интерфейсом. Дисплей функционирует как любой выход HDMI для Pi, поэтому вам не нужно делать ничего особенного. Для Python вы можете использовать Tkinter для создания основного пользовательского интерфейса или даже написать веб-приложение на HTML / CSS / JS, в зависимости от того, что вам удобно. Вы можете использовать OpenWeatherMap API бесплатно; документация связана для каждой конечной точки API.

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

Я подозреваю, что для определения местоположения было бы проще просто позволить пользователю вводить свое местоположение на сенсорном экране Pi. Отправка местоположения вашего телефона, вероятно, немного сложнее, хотя вы можете найти что-то, если будете много изучать.

Для использования батареи, этот вопрос на Raspberry Pi Stack бирже является чтением стоит.


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

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

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

Даже несмотря на то, что эти проблемы делают его нежизнеспособным в продукте, требования к питанию аккумулятора плаката исключают его с самого начала. Поскольку pi представляет собой архитектуру с установкой на ящик без управления питанием мобильного устройства, вы не сможете получить более нескольких часов от любой разумной батареи.
Крис Страттон

10

В Лук Омега 2 утверждает, что самый маленький Linux компьютер в мире. Это утверждение может быть не совсем верным (например, см. Vocore2 ниже), но, по моему опыту, оно должно быть наименьшим 3. Стоимость всего $ 5, встроенный Wi-Fi, разработанный специально для IoT. Имеет несколько щитов на своем веб-сайте . Новый продукт, кажется, имеет сильное и активное сообщество. Сторонники Kickstarter получают устройство. Стоит проверить.

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

Я только что столкнулся с ними на днях и не имею опыта работы с ними. Однако обратите внимание, что из-за своей новизны некоторые из пакетов Linux, которые вы можете использовать, могут быть еще недоступны (например, я точно знаю, что на момент написания этой статьи пакет gstreamer не был доступен в Onion тем не менее, вы должны собрать из исходного кода, хотя gstreamer не имеет к вам отношения).

Если не считать того, что, как говорится в другом ответе, Pi является отличным недорогим устройством. Не забудьте про Raspberry Pi Zero , еще один крошечный компьютер за 5 долларов, похожий на лук. У него не все порты на борту, которые есть у больших Pi, но если вы не возражаете или если вы просто хотите использовать 3 для разработки и ноль для его размера в конечных продуктах, это еще один выбор, который стоит рассмотреть.

Другие устройства, некоторые дорогие, включают в себя:

  • BeagleBone Black (это единственная альтернатива Pi, которую я серьезно рассмотрю из-за ее низкой стоимости).
  • Gumstix ($$$, но мы постоянно используем их в проектах для их размера)
  • Удо ($$$, но наносит удар)
  • 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 и домашняя страница отсутствуют по этому вопросу. Я на самом деле немного недоволен «самым маленьким» заявлением людей из Onion после комментария Matija's vocore2 выше, но, возможно, они могут выкупить себя (в моих скромных глазах) с открытой архитектурой.
Джейсон С

3
Помните, что люди могут претендовать на что угодно на Kickstarter ...
Шон

@SeanHoulihane О, чувак, не заставляйте меня начинать с моей напыщенной ненависти на Kickstarter, хе. Сопротивляйся, сопротивляйся… Тем не менее, как утверждает Kickstarter, и в стороне от Open-Ness, и Omega, и вокал - это довольно круто выглядящие новые устройства. И у нас также есть RPi Zero на недорогом фронте.
Джейсон С.

6

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

  1. Определите пользовательскую историю для устройства. Что вы ожидаете от этого? На что вы хотите, чтобы он был способен?

    В вашем случае это уже определено вами:

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

  2. Теперь шаг 1. дает вам кое-что для начала. Вы можете решить, какое оборудование вам нужно на уровне блок-схемы.

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

  3. Вы можете начать поиск конкретных частей. Вы можете начать с определения того, какую батарею вы будете использовать, чтобы учесть энергопотребление ваших потенциальных компонентов. Я описал общий процесс выбора MCU в одном из моих предыдущих ответов . В основном то же самое должно быть сделано здесь. Найдите дешевый дисплей, он, вероятно, будет использовать интерфейс SPI или I2C для связи. Затем вы можете искать либо модуль Wi-Fi с SPI / I2C и имеет встроенный MCU или отдельный MCU и модуль WiFi. Отдельный модуль Wi-Fi, вероятно, будет использовать UART для связи, поэтому отдельный MCU должен иметь его вдоль SPI / I2C.

  4. Что касается языка. Большинство микроконтроллеров ограничат ваши возможности в этой области. В большинстве случаев вы выбираете C, C ++ или Assembly, строго говоря, микроконтроллеры, а не одноплатные компьютеры.

    Если вы решите использовать BeagleBone или Raspberry, которые могут работать под управлением Linux или другой мощной ОС, тогда я скажу, что лучшим языком будет тот, который вы знаете лучше всего, конечно, он должен справиться с этой задачей. ( Вы можете запустить Java на RPi, если хотите. )

    Открыть сокет для глобальной службы данных о погоде можно также на C, C # или Python. Было бы немного сложнее обрабатывать JSON с C, но, конечно, возможно.

Если говорить о затратах в целом. Лучший вариант - поиск устройств отображения с поддержкой WiFi, результатов будет много, и большинство из них будет использовать то же оборудование, и, вероятно, это будет самым дешевым.


Вы можете использовать WiFi-модуль ESP8266, совместимый с Arduino, для подключения к Интернету и интерфейса дисплея. Это потребует гораздо больше времени, чем Raspberry Pi, но будет дешевле.

Вот проект Hackaday о OLED-дисплее ESP8266 + .


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

6

Создание стартапа не о том, что вы можете сделать с технологией, и даже не о продукте. Для успешного стартапа, который может увлечь венчурных капиталистов, вы должны сначала подумать о рынке, который вы собираетесь обслуживать. Но думать о рынке, которому вы будете служить, недостаточно. Вам нужно иметь реальные данные о рынке. Это не только то, что имеет смысл для вас. Создание продукта, а затем привязка к его продаже не является успешным подходом, и на этом большинство неудачных стартапов заканчиваются. Рынок - НАСТОЯЩАЯ НУЖДА. Когда вы создадите продукт, создайте его для конкретного рынка. Это то, что делает успешным продукт, продукт, который продается сам, потому что люди уже ищут его. ВК инвестирует только в стартапы, у которых есть такие продукты, особенно если они уже продаются.

Чтобы сначала выбрать технологию для разработки вашего продукта, вам нужно знать, что должен делать ваш продукт, и именно так он решит проблему на выбранном рынке. Затем посмотрите, что потенциальные клиенты готовы платить за это. Затем выбрал технологию, которая позволяет быстрее выходить на рынок, сохраняя при этом стоимость в рамках бюджета. Затем сделайте аутсорсинг разработки или найдите партнера, который сможет это сделать и готов работать с вами. Разделите прибыль 50/50 с вашим партнером. Затем, когда у вас есть прототип, начните планировать свой бизнес-план и помните, что вы можете увлечь венчурных капиталистов, только если покажете им, как они могут зарабатывать деньги.

Если вам необходимо снизить стоимость вашего продукта для массового производства, вы можете использовать языки более низкого уровня и менее изобретательные микроконтроллеры, такие как Microchip PIC или Silicon Labs EFM с ASM / C / C ++. Если продукт не предназначен для массового производства (более 100 тыс.), Используйте язык более высокого уровня и более находчивые микроконтроллеры, такие как Micro Python или Lua с ARM32 MIPS или даже Linux с ARM32 / 64. Это экономит затраты на разработку, но увеличивает стоимость аппаратного обеспечения. Помните, что цена продукта - это не просто печатная плата с компонентами; развитие, жилье, упаковка и все остальное, необходимое для продажи продукта, должно идти в ногу со стоимостью. Поместите это в бизнес-план. И не ходите в ВК с Arduino или Raspberry Pi, или Луком, или чем-то, похожим на гаджет для любителей,

Запускай, не падай, и удачи.


Это действительно полный смысл маркетинга. Спасибо :)
Jigarb1992
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.