Хотите удалённо использовать своё устройство для интернета вещей? Тогда попробуйте Parse — облачный сервис, позволяющий соединять большое количество устройств и легко использовать их через веб-интерфейс. В нём есть всё, что вы ожидаете от облачного провайдера, включая аналитику, статистику, базы данных, push-уведомления, программирование на стороне сервера и многое другое. Система разработки Parse Embedded SDK доступна для множества платформ и мобильных IoT-устройств.
В этом руководстве мы рассмотрим, как установить Parse Embedded SDK на плату Intel Edison и покажем, как запустить приложение и получить push-уведомление.
Первое и самое главное. Вы обязательно должны установить последнюю версию прошивки на Intel Edison и подключить плату к интернету. Есть хорошее руководство, как это сделать на Intel Developer Zone – IoT.
В отличие от платы Intel Galileo, плата Intel Edison не имеет Ethernet порта, поэтому придётся подключаться по Wi-Fi. Если вы всё ещё этого не сделали, тогда подключите плату по последовательному порту или по Ethernet через USB (RNDIS). Затем, используя программу configure_edison, настройте беспроводной доступ. Далее я предполагаю, что у вас есть работающее подключение к интернету.
Итак, ваша плата Intel Edison настроена, поэтому самое время установить Parse SDK. Зайдите на сайт parse.com и зарегистрируйтесь. Перейдите к секции ваших приложений и создайте новое приложение. После того, как вы выбрали имя, вас спросят, хотите ли вы посмотреть руководство по быстрому старту «Quickstart». Я рекомендую вам это сделать. Вы также можете перейти к руководству с вашей панели управления:
Перейдя по ссылке быстрого старта «Quickstart» выберите опцию «embedded», а затем «Linux». Это руководство было написано для Raspberry Pi, но начальные шаги очень похожи на то, что вам надо сделать с платой Intel Edison. Фактически, на плате Intel Edison запустить SDK проще. Большинство необходимых библиотек уже установлено и нам нужен только uuid-dev. Вместо шага 1 в секции «Install the SDK» откройте ssh-сессию на плате Intel Edison при помощи какого-нибудь клиента (например, Putty) и напечатайте следующе команды:
root@edison:~# echo "src/gz i586 http://iotdk.intel.com/repos/1.5/iotdk/i586/" >> /etc/opkg/base-feeds.conf
root@edison:~# opkg update
root@edison:~# opkg install util-linux-dev
Первая строка добавит репозиторий «Intel IoT developer kit» к конфигурационному файлу opkg. Этот инструмент используется для установки пакетов в дистрибутив Linux. Вторая и третья строка кода обновит и установит необходимую библиотеку со всеми зависимостями.
Теперь выполните шаги 2 и 3 из руководства и установите Parse SKD в директорию по вашему выбору, например, в домашнюю папку. Вот пример:
root@edison:~# cd ~
root@edison:~/parse-sdk# wget https://parse.com/downloads/embedded_linux/parse-embedded-sdks-1.0.0.zip --no-check-certificate
root@edison:~/parse-sdk# unzip parse-embedded-sdks-1.0.0.zip
root@edison:~# cd parse-embedded-sdks-1.0.0/
root@edison:~/parse-embedded-sdks-1.0.0# autoreconf -fi
root@edison:~/parse-embedded-sdks-1.0.0# ./configure --prefix=/usr
root@edison:~/parse-embedded-sdks-1.0.0# make
root@edison:~/parse-embedded-sdks-1.0.0# make install
Если всё прошло хорошо, у вас есть установленный Parse SDK и можно использовать его на плате Intel Edison. Для включения push-уведомлений надо настроить новое приложение через сайт parse.com. Перейдите на страницу приложения, на вкладку Settings. Здесь выберите «Push» и «Enable Push Notification».
Теперь вернитесь к руководству и следуйте оставшимся шагам для загрузки и компиляции проекта из примера:
root@edison:~/parse-embedded-sdks-1.0.0# cd ..
root@edison:~# wget https://parse.com/downloads/embedded_linux/RaspberryPiStarterProject-1.0.0.zip --no-check-certificate
root@edison:~# unzip RaspberryPiStarterProject-1.0.0.zip
Этот код распакует main.c и makefile, который сконфигурирован для компиляции и линковки с новой установленной библиотекой Parse. Чтобы сделать изменения в файле с программой, вы можете использовать редактор vi, установленный на Intel Edison или другой любой редактор на компьютере, который может работать по сети. Лично я предпочитаю Notepad++ с плагином NppFTP, который позволяет изменять файлы по FTP. Но есть и много других подходящих инструментов, например, WinSCP.
Остаток руководства демонстрирует пример для настройки приложения, регистрирования его в Parse и посылки push-уведомлений. Вставьте этот код в ваш файл main.c и добавьте предоставленные ключи. Обычно они вставляются автоматически, но если это не так, вот где их можно взять:
После добавления кода в файл main.c всё будет выглядеть примерно так:
Скомпилируйте исходный код, используя готовый makefile, и запустите готовое приложение:
root@edison:~# cd raspberry-pi-starter-project
root@edison:~/raspberry-pi-starter-project# make
root@edison:~/raspberry-pi-starter-project# ./quickstart
Оставьте приложение работающим на плате Intel Edison. Теперь, если вы нажмете кнопку «Test» на сайте Parse в руководстве внизу страницы, то будет послано push-уведомление. В консоли должно появиться следующее:
received push: '{"data":{"alert":"A test push from Parse!"},"time":"2015-05-18T04:21:13.946Z"}'
Ну, вот и всё! Мы надеемся, что это руководство было полезным для установки Parse SDK и запуска примера на плате Intel Edison.
Шаги необходимые для установки Parse SDK объединены в нашем репозитории на github.
Imira_crai
Очень часто в подобных обзорах не хватает указаний на ограничения, с которыми сталкиваешься уже в процессе использования сервиса.
Например по парсу с чем сталкивался:
— по умолчанию возвращает 100 сущностей из базы. Если нужно больше, надо указывать специальный параметр (limit)
— даже при указании limit, парс возвращает не более 1000 сущностей
— аналогом из SQL LIMIT %start%, %amount% в парсе является 2 параметра skip и limit. Так вот нельзя сделать skip более 10000. Приходится обходить это через фильтрацию этих 10000 по каком-нить параметру (т.е. в некоторых случаях его приходится специально добавлять именно для подобной ситуации). Самое плохое это то, что при указании skip 10001 и limit 1000 парс не вернет предупреждение, а просто продублирует данные, т.е. ты сталкиваешься с этим внезапно