Eksperyment
Mieszanie kreatywności z nudą i odrobiną wolnego czasu bywa zaskakujące w skutkach, u mnie dziś taka mieszana zaowocowała urządzeniem, które pokazuje powiadomienie o nieprzeczytanej poczcie w postaci ikony koperty narysowanej flamastrem na kawałku tektury, powiadomienie wyskakuje zza monitora po nadejściu nowej wiadomości i chowa się gdy wszystkie wiadomości są przeczytane.
Tutaj możecie zobaczyć urządzenie w akcji:
Architektura
Do zbudowania “powiadamiacza” użyłem:
- Arudino Duemilanove
- Kontrolera serw PCA9685
- Serwa TowerPro MG996
Kod jest napisany w:
- Język C dla Arduino
- Python 3 do sprawdzania poczty.
Kompletny zestaw prezentuje się następująco:
Kod
Kod projektu umieściłem na GitHubie: https://github.com/jakubthedeveloper/RealMailNotification
Aplikację napisaną w pythonie uruchamiamy poleceniem:
1 |
python3 checker.py [-h] [--serial-port SERIAL_PORT] [--imap-server IMAP_SERVER] --imap-user IMAP_USER |
Jeśli nie podamy adresu serwera IMAP, zostanie użyty adres imap.gmail.com, domyślną wartością parametru –serial-port jest /dev/ttyUSB0, natomiast parametr –imap-user jest obowiązkowy. Przykład:
1 |
python3 checker.py --imap-user moje.konto@gmail.com |
Więcej informacji o uruchomieniu skryptu znajduje się w pliku readme.
Po uruchomieniu, skrypt sprawdza pocztę na serwerze i wysyła na port szeregowy (usb) tekst ‘mail’ lub ‘nomail’, zależnie czy są nieprzeczytane wiadomości czy też nie.
Aplikacja dla Arduino nasłuchuje na porcie szeregowym i ustawia serwo w jednej z dwóch predefiniowanych pozycji, zależnie od otrzymanej komendy. Poziome ustawienie zamocowanej do serwo tekturki pozwala jej się schować za monitorem, natomiast w ustawieniu pionowym tektura wystaje nad górną krawędź monitora.
Filmik z testów:
Problemy jakie przyszło rozwiązać
Największym problemem było znalezienie sposobu na zamontowanie urządzenia z tyłu monitora, na szczęście z pomocą przyszły nawiercone kątowniki, śrubki i trytytki :)