Arduino/CraftDuino и RSS


Ардуино с лёгкостью может соединить ваш сайт в Интернете и реальный мир!
Представляете какой простор для фантазии?

В принципе, здесь уже нет ничего незнакомого.
Задача крайне простая.
Работать с Интернетом будет программа на ПК, которую можно написать на любом языке программирования. Ардуина же будет подключена к ПК через 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


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение