Skip to content

Instantly share code, notes, and snippets.

@initrunlevel0
Created December 17, 2013 06:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save initrunlevel0/8000980 to your computer and use it in GitHub Desktop.
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.
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");
}
}
# 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