Google Calendar on LCD 20×4

, , Leave a comment

Saya menggunakan LED Matrix 4 in 1 sebagai penunjuk waktu dan messaging (pi clock). Di belakang LED Matrix tersebut terdapat Raspberry Pi 2 yang terhubung dengan wifi di rumah. Sekitar tiga weekend yang lalu (5 Agustus 2017) saya tambahkan lagi satu fungsi untuk menampilkan events di google Calendar. Bukan project baru, tapi remake dari project sebelumnya, mini event reminder. Hanya saja yang berbeda dengan ini adalah penggunaan LCD 20×4 ketimbang sebelumnya dengan LCD Nokia 5110 yang mungil, yang cocok untuk wearables.

Dengan LCD 20×4, teks menjadi lebih besar, gampang dilihat dari jauh dan informasi juga menjadi lebih banyak yaitu 4 baris. Data dari Google Calendar di dapatkan secara PULL, artinya setiap 2 menit sekali ada sinkronisasi events di Google Calendar agar ditampilkan di layar LCD ini.

Ini hasil akhrinya. Karena frame yang terbuat dari kayu, maka LCD dengan gampang di skrup agar menempel dengan body frame.

Dengan ide yang sederhana ini, saya tidak perlu sering lihat HP untuk melihat agenda berikutnya. Cukup melihat layar LCD ini saja sudah terlihat 3 event berikutnya.

Terkadang listrik dirumah mati entah karena kelebihan beban atau karena mati dari sumbernya. Nah agar Google Calendar ini bisa langsung berjalan pada saat Raspberry Pi menyala maka saya letakkan baris ini di crontab

@reboot /home/pi/15-Calendar/lcd_get_events.py

Dan yang terpenting lagi adalah trik dalam python script agar Google Calendar API hanya diakses pada saat Raspberry Pi sudah benar-benar terhubung dengan internet. Karena pada saat boot, Raspberry Pi butuh beberapa saat hingga bisa terhubung dengan home network padahal python script dieksekusi terlebih dahulu. Tanpa trik ini sering terjadi kebingungan, mengapa python script tidak berjalan saat boot sedangkan jika di eksekusi dari terminal baik-baik saja. Sekarang sudah tahu jawabannya, hal itu bukan masalah python scriptnya.

Ini adalah trik yang dimasukkan ke dalam script utama untuk mengecek apakah internet sudah terhubung.

import socket

def is_connected():
    try:
        host = socket.gethostbyname("www.google.com")
        s = socket.create_connection((host, 80), 2)
        return True
    except:
       pass
    return False

Sekian tulisan dari saya semoga bermanfaat. Jika suka tulisan ini silahkan like, komentar dan subscribe. Terima kasih  dan sampai bertemu di tulisan berikutnya.

 

Source:

“https://stackoverflow.com/questions/20913411/test-if-an-internet-connection-is-present-in-python”

Facebook Comments
 

Leave a Reply