Created
December 17, 2013 06:38
-
-
Save initrunlevel0/8000980 to your computer and use it in GitHub Desktop.
Kode Konsep Arduino board untuk menghidupkan/mematikan lampu via SMS. Karena yang buat tidak mampu membeli GSM Shield, maka dia akhirnya menggunakan laptop untuk membaca SMS nya via Gammu.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
char incomingByte = NULL; | |
void setup() { | |
Serial.begin(9600); | |
pinMode(13, OUTPUT); // Gunakan pin 19 sebagai digital output ke lampu | |
} | |
void loop() { | |
if (Serial.available() > 0) { | |
// Baca perintah byte untuk On/Off | |
incomingByte = (char) Serial.read(); | |
// Jika diterima perintah Y, lampu hidup. Jika N, lampu mati. | |
if(incomingByte=='Y') { | |
digitalWrite(13, HIGH); // Sinyal tinggi ke pin 13 | |
} else if (incomingByte=='N') { | |
digitialWrite(13, LOW); // Sinyal rendah ke pin 13 | |
} | |
// Balas pesan serial dengan pesan "O" | |
Serial.print("O"); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Terima SMS baru dari Gammu (via MySQL) | |
# Kemudian kirim ke Serial | |
# Bahasa Pemrograman Python 2.7 | |
import MySQLdb as mdb | |
import serial | |
con = mdb.connect('localhost', 'root', 'root', 'gammu'); # Koneksi ke MySQL | |
ser = serial.Serial(':com1', 9600) # Koneksi serial ke COM1 | |
with con: | |
cur = con.cursor() | |
While True: | |
# Baca sms baru yang belum ditandai | |
cur.execute("SELECT * FROM inbox WHERE Processed = 'false'") | |
inbox_rows = cur.fetchall() | |
for inbox in inbox_rows: | |
sms_msg = inbox['TextDecoded'] # Baca isi SMS nya | |
# Proses pesan yang diterima | |
if(sms_msg == "LAMPU ON"): | |
ser.write('Y') | |
elif(sms_msg == "LAMPU OFF"): | |
ser.write('N') | |
cur.execute("UPDATE inbox set Processed='true' WHERE ID=" + str(inbox['ID'])) # Tandai sms biar gak dibaca lagi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment