robotev :: blog

август 12, 2011

Мобилен Google+ нотификатор

Публикувано в: Правя — Етикети:, , , , , — robotev @ 20:27

Поради факта, че много често му се налага да е в стаи далече от компютъра, у Бойко Казаков се появи неприятното усещане дали не изпуска нещо в новата социална мрежа GOOGLE+. Затова е направил преносимо устройство, което да го държи в течение дали изобщо нещо се случва.

Системата е изградена от няколко основни части.

  •  Програма следяща за ъпдейти
  •  Устройство предаващо ъпдейтите
  •  Устройство приемащо ъпдейтите
  •  Програма визуализираща пристигащата информация.

Поради факта, че GOOGLE+ е сравнително нова платформа сайтът не предоставя, добре познатият ни метод за прочитане на XML запис. Затова Бойко ползва своя GMAIL акаунт като средство за индикиране на броя нотификации в социалната мрежа.

За целта в опциите е избрано изпращане на мейл за всички видове събития. Програмата е написана на C#.

В бъдеще Бойко се надява да открие метод за директен достъп до g+ сайта. Но засега се налага да се използва този трик, който имане достатъкът, че ако gmaila се ползва като поща, изпратеният брой може да вклчва несъществена поща.

За прочитане на броя входящи писма в GMAIL е използван популярния метод в опен сорс средите за парсване на записът на този адрес https://gmail.google.com/gmail/feed/atom . Програмата която е използвана има за цел да е постоянно включена, затова тя няма форма а постоянно седи във системният трей за да не пречи.

Създадени са два таймера. Първият проверява XML записа на всеки 6 секунди и записва броят непрочетени входящи писма във променлива. Вторият таймер на всяка секунда изпраща стойността на тази променлива по серийният порт за данни.

За осъществяване на безжична комуникация са използвани два 2,4Ghz модула ползващи nRF24l01. Като е използвана съществуваща библиотека за ардуино (mirf), позволяваща лесна работа с тях. Модулите се свързват чрез SPI. Te трябва да работят на един и същи канал и да имат една и съща payload стойност (в случая 1 byte). Поради факта че модулите осъществяват сигурна хендшейк връзка приетата стойност от серийния порт, се предава директно без нуждата от допълнителни протоколни байтове (премахва се ненужното забавяне по линията). На бредборд платката, на която са прикачени Ардуино и безжичния модул разполага също и със SMD светодиоди който премигват при всеки изпратен байт (брой нотификации).

Тъй като се препоръчва безжичните модули да работят с 3.3V логика а Ардуино работи с 5 волтова, са сложени делители на напрежение които гарантират допустими нива от Ардуино платката.

Приемащият безжичен модул е свързан към по мощен (бърз) микроконтролер позволяващ визуализацията на QVGA дисплей. Приемащото устройство е проектирано да бъде мобилно и да има много малка консумация на енергия. Софтуерът на приемащото устройство се грижи да получава постоянно байтове на този канал, като тяхната стойност е в конкретен диапазон. Устройството има microSD карта която съхранява изображенията нужни за интерфейса.

Архив с файловете (включва Ардуино скица, сорс за Gmail и електрическа схема).

Автор на проекта е Бойко Казаков.

Този проект участва в конкурса „Ардуино в Интернет“. Подкрепете го като гласувате за него във Facebook.

Задвижвано от WordPress