Использование Netduino для мониторинга твиттера
Этот проект кажется простым, но он демонстрирует ряд занятных вещей, вроде добавления сетевого взаимодействия к стандартному контроллеру Netduino (не Plus) и взаимодействие с твиттером в тесном мире разработки встраиваемых устройств.
Мониторинг Twitter’а с помощью Netduino
В этом сообщении будет дано введение в сетевые коммуникации с помощью Netduino. Чтобы продемонстрировать связь посети, я позволю Netduino выполнить запрос к API Twitter’а чтобы получить последние обновления, опубликованные пользователем. Когда выбранный пользователь, за которым я слежу (конечно же, это Netduino Team), обновляет сообщение, Netduino даст мне знать с помощью голубого светодиода. Звучит очень просто, не правда ли?
Основная проблема, конечно же состоит в том, что у обычного Netduino отсутствуют средства сетевого взаимодействия, так как он не оснащен адаптером Ethernet как Netduino Plus. В момент написания заметки Netduino Plus был крайне востребован и находился в невыполненном заказе. Что же делает в таком случае настоящий гик? Очевидно, берет взаймы оборудование у других гиков! Я позаимствовал у коллег Ethernet-плату Arduino и установил ее прямо поверх моего Netduino, как можно видеть на фотографии.
Принимая во внимание то, что в оригинальном Netduino отсутствует поддержка Ethernet-платы Arduino, необходимо написать и достать драйвера, чтобы организовать взаимодействие между контроллером и Ethernet-платой. К счастью некие прекрасные люди из SecretLab собрали несколько драйверов, подходящих для этой задачи и других Wiznet-совместимых плат Ethernet. Можно загрузить проект Visual Studio 2010 с кодом для таких коммуникаций на сайте форума по Netduino.
Основной проблемой, связанной с данным кодом (помимо потери первоначальной версии) является то, что у Netduino гораздо меньше памяти, чем у типичного компьютера. Так что захват XML-данных, их анализ и последующая обработка может вызвать у устройства изжогу. Нужно быть терпеливым, чтобы можно было выполнить эту работу. Основная часть кода просто использует API Twitter’а, чтобы получить фид статуса пользователя. Некоторые специфические параметры строки запроса передаются API Twitter’а, информируя его о том, что клиент хочет получить только статус обновления, а не саму информацию. Без этого Netduino? Скорее всего столкнется с проблемами памяти, поскольку ему придется загрузить массу XML-данных из Twitter’а, переполнится память и система упадет. После тестирования и подгонки я обнаружил правильные установки для параметров «count» и «trim_user» (оба устанавливаются в 1), которые приводят к оптимальному поведению, потому что результирующие XML-данные будут иметь намного меньше нагружать систему.
Если вы задумываетесь о том, как добавить к проекту Netduino интеграцию с Twitter’ом, то стоит посмотреть на этот проект. Он может избавить вас от головной боли…
Вот несколько ссылок, которые могут оказаться интересными: