Я новичок в IoT и хочу начать свою карьеру в IoT. Когда я ищу в Google стартапы в IoT, я нашел много блогов. И я нашел языки, используемые в IoT, такие как C #, Java, Node.js, и микроконтроллеры, такие как Arduino, Raspberry Pi, Intel, Netduino и т. Д.
Поскольку я новичок в IoT, я не знаю, какой язык лучше и какой микроконтроллер я использую для запуска?
Для базового запуска, который я говорю, я хочу создать устройство с дисплеем, отображающим погоду для местоположения, указанного на моем мобильном телефоне. Так что это может быть хорошим примером для запуска, который охватывает аппаратное обеспечение, Интернет и программное обеспечение.
Устройство будет работать от батареи, иметь небольшой цифровой дисплей и ограничивать стоимость.
Какой микроконтроллер и язык я должен использовать, который соответствует моим требованиям для отображения погоды?
источник
Ответы:
Лично я бы выбрал для этого Raspberry Pi 3B , хотя он, вероятно, гораздо мощнее, чем вам действительно нужно. Причины, по которым я предлагаю это:
Он имеет встроенную беспроводную локальную сеть 802.11 b / g / n, поэтому вы сможете подключать его к сети Wi-Fi, а не по кабелю Ethernet.
Он также поддерживает Bluetooth, так что вы можете подключиться к телефону через него.
Вам также понадобится дисплей, и для удобства есть несколько дисплеев, разработанных для Raspberry Pi, например сенсорный экран 4DPI-32 . Вы должны просто иметь возможность вставлять дисплей непосредственно в 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 бирже является чтением стоит.
источник
В Лук Омега 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 для разработки и ноль для его размера в конечных продуктах, это еще один выбор, который стоит рассмотреть.
Другие устройства, некоторые дорогие, включают в себя:
Также обратите внимание, что 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. дает вам кое-что для начала. Вы можете решить, какое оборудование вам нужно на уровне блок-схемы.
Вам, безусловно, понадобится дисплей и, возможно, модуль WiFi или Bluetooth для связи с вашим мобильным телефоном. Доступ к глобальным базам данных о погоде, возможно, потребует подключения к Интернету. Вы должны контролировать оба из них с помощью MCU или модуля WiFi (вам нужен Интернет, чтобы вы могли исключить Bluetooth), чтобы иметь возможность контролировать дисплей и запускать ваше программное обеспечение.
Вы можете начать поиск конкретных частей. Вы можете начать с определения того, какую батарею вы будете использовать, чтобы учесть энергопотребление ваших потенциальных компонентов. Я описал общий процесс выбора MCU в одном из моих предыдущих ответов . В основном то же самое должно быть сделано здесь. Найдите дешевый дисплей, он, вероятно, будет использовать интерфейс SPI или I2C для связи. Затем вы можете искать либо модуль Wi-Fi с SPI / I2C и имеет встроенный MCU или отдельный MCU и модуль WiFi. Отдельный модуль Wi-Fi, вероятно, будет использовать UART для связи, поэтому отдельный MCU должен иметь его вдоль SPI / I2C.
Что касается языка. Большинство микроконтроллеров ограничат ваши возможности в этой области. В большинстве случаев вы выбираете C, C ++ или Assembly, строго говоря, микроконтроллеры, а не одноплатные компьютеры.
Если вы решите использовать BeagleBone или Raspberry, которые могут работать под управлением Linux или другой мощной ОС, тогда я скажу, что лучшим языком будет тот, который вы знаете лучше всего, конечно, он должен справиться с этой задачей. ( Вы можете запустить Java на RPi, если хотите. )
Открыть сокет для глобальной службы данных о погоде можно также на C, C # или Python. Было бы немного сложнее обрабатывать JSON с C, но, конечно, возможно.
Если говорить о затратах в целом. Лучший вариант - поиск устройств отображения с поддержкой WiFi, результатов будет много, и большинство из них будет использовать то же оборудование, и, вероятно, это будет самым дешевым.
Вы можете использовать WiFi-модуль ESP8266, совместимый с Arduino, для подключения к Интернету и интерфейса дисплея. Это потребует гораздо больше времени, чем Raspberry Pi, но будет дешевле.
Вот проект Hackaday о OLED-дисплее ESP8266 + .
источник
Создание стартапа не о том, что вы можете сделать с технологией, и даже не о продукте. Для успешного стартапа, который может увлечь венчурных капиталистов, вы должны сначала подумать о рынке, который вы собираетесь обслуживать. Но думать о рынке, которому вы будете служить, недостаточно. Вам нужно иметь реальные данные о рынке. Это не только то, что имеет смысл для вас. Создание продукта, а затем привязка к его продаже не является успешным подходом, и на этом большинство неудачных стартапов заканчиваются. Рынок - НАСТОЯЩАЯ НУЖДА. Когда вы создадите продукт, создайте его для конкретного рынка. Это то, что делает успешным продукт, продукт, который продается сам, потому что люди уже ищут его. ВК инвестирует только в стартапы, у которых есть такие продукты, особенно если они уже продаются.
Чтобы сначала выбрать технологию для разработки вашего продукта, вам нужно знать, что должен делать ваш продукт, и именно так он решит проблему на выбранном рынке. Затем посмотрите, что потенциальные клиенты готовы платить за это. Затем выбрал технологию, которая позволяет быстрее выходить на рынок, сохраняя при этом стоимость в рамках бюджета. Затем сделайте аутсорсинг разработки или найдите партнера, который сможет это сделать и готов работать с вами. Разделите прибыль 50/50 с вашим партнером. Затем, когда у вас есть прототип, начните планировать свой бизнес-план и помните, что вы можете увлечь венчурных капиталистов, только если покажете им, как они могут зарабатывать деньги.
Если вам необходимо снизить стоимость вашего продукта для массового производства, вы можете использовать языки более низкого уровня и менее изобретательные микроконтроллеры, такие как Microchip PIC или Silicon Labs EFM с ASM / C / C ++. Если продукт не предназначен для массового производства (более 100 тыс.), Используйте язык более высокого уровня и более находчивые микроконтроллеры, такие как Micro Python или Lua с ARM32 MIPS или даже Linux с ARM32 / 64. Это экономит затраты на разработку, но увеличивает стоимость аппаратного обеспечения. Помните, что цена продукта - это не просто печатная плата с компонентами; развитие, жилье, упаковка и все остальное, необходимое для продажи продукта, должно идти в ногу со стоимостью. Поместите это в бизнес-план. И не ходите в ВК с Arduino или Raspberry Pi, или Луком, или чем-то, похожим на гаджет для любителей,
Запускай, не падай, и удачи.
источник