Статьи

Tessel 2: соединение JavaScript и Интернета вещей с легкостью

Tessel 2 — это микроконтроллер, который позволяет создавать подключенные устройства, работающие на JavaScript и Node.js. Он работает под управлением Linux с Node.js, обеспечивающим доступ к множеству модулей npm и всем их возможностям. В течение следующих нескольких недель я расскажу о некоторых возможностях, доступных для разработчиков, использующих Tessel 2. На этой неделе мы начнем с изучения и запуска вашего Tessel 2 с помощью простого тестового приложения.

Микроконтроллер Tessel 2

Мой микроконтроллер Tessel 2, который я буду использовать для этой демонстрации!

Подготовка Node.js

Убедитесь, что на вашем компьютере установлен Node.js v4.2.0 или выше. Вы можете проверить это, используя:

node -v 

Если у вас еще нет установленного Node.js, зайдите на сайт Node.js и загрузите Node.js v4.4.3 .

Если вы устанавливаете Node.js впервые или хотите обновить его до более новой версии, я бы порекомендовал установить версию 4.4.3, так как в более поздних версиях, по-видимому, есть небольшая ошибка с Tessel 2 (особенно в Mac OS X). ). Не стесняйтесь попробовать последнюю версию (возможно, это был только мой компьютер), но если у вас есть проблемы, попробуйте v4.4.3!

Если вы были похожи на меня и нуждались в обновлении Node.js, я сначала сделал это, следуя этому руководству Дэвида Уолша . Однако, может быть, лучше (и безопаснее) работать с методом NVM, если на вашем компьютере работает множество зависимостей Node. Я также переустанавливал разные версии с помощью файла загрузки .pkg с сайта Node.js, и он был без проблем обновлен и обновлен. Какой бы метод вы ни использовали, стремитесь установить версию 4.4.3.

В частности, ошибка, которую вы можете увидеть в более поздних версиях Node после 4.4.3, возникает при попытке запустить t2 list . Если вы видите следующие сообщения об ошибках при выполнении этой команды позже в этом руководстве, ваша версия узла может быть причиной:

 node(12328,0x7fff7830b000) malloc: *** error for object 0xffffffff: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug Abort trap: 6 

или:

 ERR! WARNING: No usb controller found on this system. INFO Crash Reported: http://crash-reporter.tessel.io/ 

Установка Tessel CLI

Как только вы определенно запустили совместимую версию Node, запущенную на вашем компьютере, выполните следующую команду, чтобы установить CLI (интерфейс командной строки) Tessel на ваш компьютер через npm:

 npm install -g t2-cli 

В поисках своего тесселя

После успешной установки CLI Tessel подключите Tessel к одному из USB-портов и дайте ему загрузиться. Примерно через 30 секунд выполните следующую команду, чтобы найти свой тессель:

 t2 list 

Это запустится и должно показать список Tessels, которые он может найти, выглядит так:

 INFO Searching for nearby Tessels... USB Tessel-6465762064696E6572 

Хотя имя типа «Tessel-6465762064696E6572» невероятно запоминающееся, вы можете переименовать его, чтобы сделать это имя еще лучше! Для этого выполните следующую команду, заменив «Кастиэль» своим собственным именем:

 t2 rename Castiel 

Вы увидите следующий прогон CLI Tessel, заканчивающийся сообщением об успехе:

 INFO Looking for your Tessel... INFO Connected to Tessel-6465762064696E6572. INFO Changed name of device Tessel-6465762064696E6572 to Castiel 

Если вы снова запустите t2 list , вы увидите, что у вашего Tessel теперь невероятно броское имя:

 INFO Searching for nearby Tessels... USB Castiel 

Подключение вашего Tessel к Wi-Fi

Tessel 2 поставляется со встроенным Wi-Fi, что позволяет относительно легко подключаться к сетям Wi-Fi. Для этого выполните следующую команду:

 t2 wifi -n "Your Witty WiFi Name" -p yourwifipassword 

Это покажет следующее в CLI Tessel, надеюсь, завершится успешным соединением:

 INFO Looking for your Tessel... INFO Connected to Castiel. INFO Wifi Enabled. INFO Wifi Connected. SSID: Your Witty WiFi Name, password: yourwifipassword, security: psk2 

Tessel имеет янтарный светодиод, который отображает подключение к Wi-Fi, если вы видите, что мигает, то все хорошо!

Push-код по Wi-Fi

Удивительно удобной функцией Tessel является возможность передавать и запускать код с вашего компьютера на Tessel через Wi-Fi, так что вам не нужно постоянно подключать его через USB. Это особенно удобно для тех, у кого много устройств, или для тех, у кого есть план создания Tessel, предусматривающий размещение его в труднодоступном месте дома.

Чтобы предоставить компьютеру доступ для запуска и отправки кода на Tessel через Wi-Fi, выполните следующую команду:

 t2 provision 

Это позволит настроить открытый и закрытый ключи, чтобы ваш компьютер мог работать с Tessel через Wi-Fi. Вы должны увидеть сообщения, подобные следующим, если все прошло успешно:

 INFO Looking for your Tessel... INFO Connected to Castiel. INFO Creating public and private keys for Tessel authentication... INFO SSH Keys written. INFO Authenticating Tessel with public key... INFO Tessel authenticated with public key. 

Затем, убедившись, что вы находитесь в той же сети Wi-Fi, что и ваш Tessel, еще раз введите команду t2 list . Теперь вы должны увидеть свой Tessel как устройство USB и устройство Wi-Fi:

 INFO Searching for nearby Tessels... USB Castiel LAN Castiel 

Обновление Тесселя

Высоки шансы, что вы только что получили свой Tessel, и на нем имеется несколько более старая прошивка, которая датируется временем его изготовления и поставки. Как и в случае со многими устройствами Internet of Things, все идет быстро, и ваш Tessel, вероятно, нуждается в обновлении. Запустите следующий код для обновления вашего Tessel:

 t2 update 

Он должен запуститься, и вы должны увидеть что-то похожее, если ваш Tessel действительно нуждается в обновлении:

 INFO Looking for your Tessel... INFO Connected to Castiel. INFO New firmware version found...0.0.12 INFO Updating Castiel to latest version (0.0.12)... INFO Beginning update download. This could take a couple minutes.. Downloading [====================] 100% 0.0s remaining INFO Download complete! INFO Updating OpenWRT (1/2) INFO Transferring image of size 19.14 MB. This will take 2-4 minutes... INFO Transfer complete. INFO Starting OpenWRT update. INFO Please do not remove power from Tessel. INFO This process will take at least two minutes... INFO Updating firmware (2/2) INFO Firmware update complete! INFO Updated Castiel from 0.0.11 to 0.0.12 

Возможно, вам придется нажать Ctrl + C, чтобы вернуться к командной строке после этого … для меня это закончилось, но программа не завершилась. Если это произойдет с вами, Ctrl + C исправит это!

Наш Tessel должен быть полностью готов к тестовому приложению. Давайте сделаем наши цвета вспышки Tessel сумасшедшими.

Наше первое красочное приложение Tessel

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

 t2 init 

Это соберет базовое приложение «Hello World», настроенное после его завершения:

 Created package.json. Created .tesselinclude. Wrote "Hello World" to index.js 

Наша функциональность в этом примере приложения находится в index.js . Если вы откроете это, исходный код, который он помещает в пример приложения, должен выглядеть так:

 // Import the interface to Tessel hardware var tessel = require('tessel'); // Turn one of the LEDs on to start. tessel.led[2].on(); // Blink! setInterval(function () { tessel.led[2].toggle(); tessel.led[3].toggle(); }, 100); console.log("I'm blinking! (Press CTRL + C to stop)"); 

Запустите этот код, используя следующую команду:

 t2 run index.js 

Если вы запустите это, вы увидите, что два индикатора на вашем Tessel мигают взад и вперед. Это захватывающий первый шаг, но я предпочитаю немного ускорить процесс. Давайте мигнем всеми четырьмя светодиодами и будем мигать немного быстрее.

Tessel 2 имеет четыре встроенных светодиода — ERR (красный), WLAN ( LED0 ), LED0 (зеленый) и LED1 (синий). Вы увидите, что все четверо выстроены рядом друг с другом прямо над логотипом «Tessel 2» и текстом на доске. Для реальных приложений маловероятно, что вы захотите использовать светодиоды ERR и WLAN . Для забавного небольшого тестового приложения — я говорю, почему бы и нет!

Каждый светодиод адресуется в JavaScript в массиве tessel.led . Порядок их хранения в этом массиве показан ниже:

  • ERR (красный) — tessel.led[0]
  • WLAN (янтарный) — tessel.led[1]
  • LED0 (зеленый) — tessel.led[2]
  • LED1 (синий) — tessel.led[3]

Этот порядок соответствует порядку их появления на самой доске Tessel.

Если мы index.js файл index.js выше, мы сможем получить доступ ко всем этим индикаторам, а не только к двум:

 var tessel = require("tessel"); tessel.led[0].on(); tessel.led[2].on(); setInterval(function() { tessel.led[0].toggle(); tessel.led[1].toggle(); tessel.led[2].toggle(); tessel.led[3].toggle(); }, 80); console.log("Rainbow madness! (Press CTRL + C to stop)"); 

В приведенном выше коде мы LED0 индикатора ERR и LED0 для начала. Затем каждые 80 миллисекунд мы переключаем все четыре состояния светодиодов, что заставляет их мигать попеременно: сначала мигают ERR и LED0 а затем мигают светодиоды WLAN и LED1 . Они продолжают делать это вечно, пока вы не нажмете CTRL + C!

Вот пример GIF этого во всей красе:

Tessel 2 Радужные Огни

Вывод

Это завершает основы начала работы с микроконтроллером Tessel 2. В следующей статье из этой серии, посвященной Tessel, мы рассмотрим настройку модуля GPS Tessel и способы извлечения из него данных о местоположении!

Если у вас есть Tessel 2 и вы создали что-то интересное, я хотел бы услышать, что вы создали! Дайте мне знать в комментариях ниже или свяжитесь со мной в Твиттере по адресу @thatpatrickguy .