Komunikasi-1: Mengirim Data dari Arduino ke Database dengan Python dan MySQL

Dipublikasikan oleh Admin pada

Ini adalah tulisan pertama dalam seri komunikasi data pada Arduino. Pada tulisan ini kita akan membahas bagaimana cara mengirimkan data dari Arduino ke database.

Mungkin pembaca ada yang perlu menyimpan data sensor dari Arduino ke dalam sebuah database untuk tujuan monitoring dan analisa. Di dalam tulisan ini akan diberikan contoh sederhana menyimpan data sensor dari Arduino ke database MySQL dengan menggunakan Python.

Pada tulisan pertama ini kita baru akan membuat program yang dijalankan melalui command line atau console. Pada tulisan berikutnya kita akan membuat program dalam bentuk grafik – GUI.

Mengapa Menggunakan Python?

Python adalah bahasa pemrograman yang relatif mudah untuk pemula, sintaks-nya sederhana dan instalasi library nya cukup mudah. Python juga multi platform, sehingga pembaca bisa testing program Python di rumah dengan Windows, kemudian memasang di komputer klien yang menggunakan Linux atau MacOS dengan mudah. Python juga bisa membuat aplikasi console atau GUI tanpa library yang rumit.

Mengapa Menggunakan MySQL?

MySQL mudah didapat dan sangat populer, instalasinya juga mudah. Dengan menggunakan database MySQL, maka database bisa dibaca dengan mudah oleh PHP bila suatu saat data akan di-onlinekan.

Persiapan Software

Untuk menyimpan data dari Arduino ke database dengan Python dan MySQL, maka kita perlu menginstall beberapa software terlebih dahulu. Penulis tidak akan menjelaskan cara menginstall software-software ini karena akanĀ  fokus pada pembahasan Arduino-nya. Untuk mengetahui cara menginstallnya, silahkan klik pada link yang disediakan di sampingnya.

  1. Python – Download
  2. PIP (library installer Python) – Cara install PIP
  3. MySQL dengan XAMPP – Cara install XAMPP

Library yang dibutuhkan untuk komunikasi via serial dan database adalah PySerial dan mysqlclient. Cara menginstallnya adalah:

Membuat Database dan Tabel

Untuk membuat membuat database dan tabel di MySQL, kita menggunakan phpMyAdmin. Tool ini sudah ada pada XAMPP yang kita install.

Cara membuat database dan tabel bisa dibaca pada artikel Cara Cepat Membuat Database dan Tabel.

Database yang akan digunakan pada contoh ini adalah arduino dan tabelnya bernama sensor. Maka buatlah database dengan nama arduino kemudian sebuah tabel bernama sensor dengan struktur seperti ini:

Sketch Arduino

Pada contoh komunikasi ini kita akan mengirimkan data sensor DHT11 ke PC (komputer atau laptop) melalui serial.

Karena data yang kita kirimkan ada 2 – yaitu suhu dan kelembaban, maka kita akan kirimkan data itu dalam bentuk string dengan dibatasi oleh garis miring ‘/’. Data yang dikirim dalam format 'suhu/kelembaban'.

Tujuan pengiriman dalam bentuk sebuah string adalah untuk kesederhaan dan agar program di PC tidak salah dalam menerjemahkan antara suhu sebagai kelembaban atau sebaliknya.

Sketch ini berasal dari example dengan penambahan kode serial dalam format yang tadi kita tentukan:

Program Python

Program Python ini akan membaca data yang dikirimkan oleh Arduino melalui serial. String yang terdiri dari 2 data dipisahkan tanda ‘/’ dipecahkan (parsing) oleh Python menjadi array. Kemudian data dari array itu dimasukan ke variabel dan ditambahkan ke database MySQL.

Silahkan simpan program ini ke sebuah file dengan nama misalnya cobaserial.py

Mengetest Program

  1. Upload sketch Arduino ke board
  2. Jalankan program Python dengan perintah: python cobaserial.py
  3. Tunggu sampai muncul data di layar
  4. Buka phpMyAdmin, klik pada database arduino dan pada tabel sensor, kemudian klik Browse.

Ini tampilan saat program Python di jalankan:

Kalau program sudah betul, maka di tabel sensor akan terlihat beberapa data hasil pembacaan tersebut.

Tulisan ini merupakan contoh dasar komunikasi dari Arduino ke database menggunakan Python. Data sensor yang menggunakan DHT11 bisa pembaca ganti dengan data dari sensor lainnya, tinggal disesuaikan variabel apa saja yang akan dikirimkan melalui serial.

Pada tulisan berikutnya akan kita bahas cara menampilkan data dalam bentuk GUI atau cara menampilkan data di web.

Kalau ada yang kurang jelas silahkan ditanyakan di komentar.

Selamat mencoba dan berkarya.

Topik hangat:


Berikan Komentar Anda