Pull to refresh

Индикация о новом сообщении Gmail через Arduino

Reading time2 min
Views6.5K
Неделю назад получил бандероль с Freeduino 2009 — полный аналог Arduino Duemilanove.


Хочу показать простенький пример. В данном примере Arduino будет Вас информировать о новых сообщениях на Gmail. Так как, пока не приобрел LCD дисплей, в качестве индикации будет моргать светодиод.

Приложение состоит из 2-х частей. Первая часть на ПК — скрипт на Python, который с помощью cron запускается каждые n минут, проверяет сообщения и отправляет количество непрочитанных писем по последовательному порту в Arduino. Вторая часть на Arduino — скейтч, который проверяет значение отправляемое с ПК и если писем больше нуля то начинает моргать светодиод.


Схема подключения светодиода:


Скрипт на Python, для работы требуется библиотека PySerial:

Copy Source | Copy HTML<br/> <br/>import urllib, re, serial<br/> <br/>gml = ''<br/>username = "***"<br/>password = "***"<br/>adr = "https://"+username+":"+password+"@mail.google.com/mail/feed/atom" <br/>cont = urllib.urlopen(adr) <br/>s = cont.read() <br/> <br/>reg = re.compile(r"<fullcount>\d+</fullcount>") <br/> <br/>gmlcnt = reg.search(s).group()<br/>reg2 = re.compile(r"\d+") <br/>gml = reg2.search(gmlcnt).group()<br/> <br/>ser = serial.Serial('/dev/ttyUSB0', 9600)<br/>ser.write(gml)<br/>ser.close() <br/>

Скейтч для Arduino:

Copy Source | Copy HTML<br/> <br/>int ledPin = 13; <br/>int mail =  0;<br/>int i =  0;<br/> <br/>void setup(){ <br/>  Serial.begin(9600);<br/>  pinMode(ledPin, OUTPUT); <br/>}<br/> <br/>void led_blink(){<br/>  if (i == 1){<br/>    digitalWrite(ledPin, HIGH);<br/>    delay(500);<br/>    digitalWrite(ledPin, LOW);<br/>    delay(1000);<br/>  }<br/>  delay(1000);<br/>}<br/> <br/>void loop(){ <br/>  if (Serial.available() >  0){<br/>    mail = Serial.read();<br/>    if (char(mail) != '0'){<br/>      i = 1;<br/>    }<br/>    else{<br/>      i =  0;<br/>      digitalWrite(ledPin, LOW);<br/>    } <br/>  }<br/>  led_blink();<br/>} <br/>

В crontab прописываете путь до скрипта и интервал между запусками. В Arduino заливаете скейтч и наслаждаетесь миганию светодиода при получении новых сообщений.
Tags:
Hubs:
+34
Comments45

Articles

Change theme settings