Ардуино с лёгкостью может соединить ваш сайт в Интернете и реальный мир!
Представляете какой простор для фантазии?
В принципе, здесь уже нет ничего незнакомого.
Задача крайне простая.
Работать с Интернетом будет программа на ПК, которую можно написать на любом языке программирования. Ардуина же будет подключена к ПК через USB-ный шнурок (или COM-ский в случае Serial-платы) и слушать, что будет говорить ей программа, работающая на ПК.
Для примера напишем скрипт на питоне, который получает RSS-поток с главной страницы Хабра и ищет в названии новости ключевое слово и если его находит – выдаёт это слово в СОМ-порт для Arduino.
Для работы с RSS используем библиотеку feedparser.
Для работы из-под питона с последовательным портом потребуется библиотека
pySerial
для работы pySerial под ОС Windows понадобится ещё библиотека
pyWin32
#!/usr/local/bin/python # -*- coding: utf-8 -*- # # import sys import os # # для задержки import time # # для работы с RSS используем библиотеку feedparser # http://www.feedparser.org # import feedparser # # для работы с COM-портом нужна библиотека # pySerial, кроме того, под винду понадобится еще pyWin32 # import serial SERIAL_PORT = 'COM1' SERIAL_SPEED = 9600 # # для поиска подстроки в строке # import string import re from operator import truth # # слово для поиска word = "Google" # # RSS для загрузки rss = "http://habrahabr.ru/rss" def parse_word_in_habr_rss(): d = feedparser.parse(rss) #print d.feed.title l = len(d.entries) for i in range(l): e = d.entries[i] title = d['items'][i].title if check4me(word,title): print "[!] We get it: "+word print title print e.links[0].href talk_to_com() return None # # возвращает true, если str1 содержится в str2 # def check4me(str1,str2): s=str1.lower()+"+" s2=str2.lower() #print s,s2 return truth(re.search(s, s2)) # # отправляем слово в COM-порт # def talk_to_com(): ser = serial.Serial(SERIAL_PORT, SERIAL_SPEED) ser.write(word) #----------------------------------------- # # begin here :) # def main(): print "[i] Start..." while 1: parse_word_in_habr_rss() time.sleep(10) print "[i] done." return None if __name__ == "__main__": main()
Вот и вся программа.
Номер и скорость работы с СОМ-портом задаются в строчках
SERIAL_PORT = 'COM1' SERIAL_SPEED = 9600
Ключевое слово и адрес RSS задаются переменными
# # слово для поиска word = "Google" # # RSS для загрузки rss = "http://habrahabr.ru/rss"
При запуске данного файла – выполнится функция main() в которой в бесконечном цикле через каждые 10 секунд вызывается функция parse_word_in_habr_rss()
, которая загружает RSS-поток и пробегается по новостям и с помощью функции check4me проверяет, содержится ли в названии новости ключевое слово.
Если содержится вызывается функция talk_to_com(), открывающая порт и записывающая в него ключевое слово.
Далее уже всё зависит от вашей фантазии 🙂 Ардуина, получив данные может их проверить, а затем просто помигать светодиодом, пропищать пьезоэлементом или порулить сервомоторчиком. Или всё сразу 🙂
Ссылки
www.feedparser.org