Kita lanjut penelusuran raspberry pi GPIO dengan input tombol yang masih menggunakan rangkaian 3 switch yang pernah kita bahas sebelumnya.
Interaksi dari GPIO kini akan kita gunakan untuk menyimpan angka yang ketika ada penekanan maka akan di "increment" dan ditampilkan pada grafik. Untuk itu kita gunakan MongoDB Atlas sebagai database gratis yang juga memiliki fasilitas grafik/chart.
Untuk merubah isi dari field pada database diatas kita bunakan perintah :
namaDB.namaCollection.find_one_and_update(query,value)
Jadi kita akan merubah nilai data satu dua atau tiga setiap kali penekanan tombol, gunakan script seperti berikut :
import RPi.GPIO as GPIO #library import time import pymongo import json #sesuaikan dengan client mongodb atlas kalian serta DB/Collection nya myclient = pymongo.MongoClient("mongodb+srv://user:password@cluster0-jb06l.mongodb.net/test?retryWrites=true&w=majority") mydb = myclient["latihan"] mycol = mydb["coba_tombol"] GPIO.setmode(GPIO.BCM) GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP)#Button to GPIO17 GPIO.setup(27, GPIO.IN, pull_up_down=GPIO.PUD_UP)#Button to GPIO27 GPIO.setup(22, GPIO.IN, pull_up_down=GPIO.PUD_UP)#Button to GPIO22 ######Update by increment database value###### def update_db(kolom): x= mycol.find_one_and_update({'judul':'coba'},{'$inc':{kolom:1}}) print('update dbase :') print(x) try: while True: button_state1 = GPIO.input(17) button_state2 = GPIO.input(27) button_state3 = GPIO.input(22) if button_state1 == False: print('Button 1 is Pressed...') update_db('satu') elif button_state2 == False: print('Button 2 is Pressed...') update_db('dua') elif button_state3 == False: print('Button 3 is Pressed...') update_db('tiga') time.sleep(0.2) except: GPIO.cleanup()
Sangat simple sehingga kita bisa membuat grafik penekanan tombol seperti video berikut ini.
0 komentar:
Posting Komentar