Arduino dan ESP8266 adalah dua komponen elektronik yang sering digunakan dalam pengembangan project Internet of Things (IoT). Kedua komponen ini memiliki kemampuan untuk terhubung ke internet dan mengirim data dari sensor ke suatu platform, seperti database atau aplikasi. Dalam artikel ini, kita akan membahas beberapa cara mengirim data dari Arduino dan ESP8266 ke platform yang berbeda.
Arduino, Ethernet Cara Mengirim Data ke Database MySQL
Arduino adalah mikrokontroler yang bisa digunakan untuk mengendalikan berbagai perangkat, termasuk sensor. Arduino dilengkapi dengan port Ethernet, yang memungkinkan pengguna untuk menghubungkan Arduino ke internet tanpa perlu komponen tambahan. Dalam tutorial ini, kita akan belajar cara mengirim data dari sensor ke database MySQL menggunakan Arduino dan Ethernet.
Langkah 1: Membuat Tabel di Database MySQL
Pertama-tama, kita harus membuat tabel dalam database MySQL untuk menampung data dari sensor. Kita bisa menggunakan software phpMyAdmin untuk membuat tabel. Berikut adalah contoh kode SQL untuk membuat tabel:
CREATE TABLE `sensor_data` ( `id` int(11) NOT NULL AUTO_INCREMENT, `sensor_name` varchar(50) NOT NULL, `sensor_value` decimal(10,2) NOT NULL, `date_time` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
Langkah 2: Membuat Sketsa Arduino
Setelah membuat tabel di database, kita harus membuat sketsa Arduino untuk membaca data sensor dan mengirimnya ke database. Berikut adalah contoh sketsa Arduino:
#include#include // IP address of the Arduino byte mac[] = 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED ; IPAddress ip(192, 168, 1, 177); // IP address of the MySQL server IPAddress server(192, 168, 1, 100); EthernetClient client; void setup() Serial.begin(9600); Ethernet.begin(mac, ip); Serial.println(Ethernet.localIP()); void loop() float sensorValue = analogRead(A0) * 0.0048828125; String sensorName = "sensor1"; if (client.connect(server, 3306)) String query = "INSERT INTO sensor_data (sensor_name, sensor_value, date_time) VALUES ('" + sensorName + "', " + String(sensorValue) + ", NOW())"; client.println("POST /insertSensorData.php HTTP/1.1"); client.println("Host: 192.168.1.100"); client.println("User-Agent: Arduino/1.0"); client.println("Connection: close"); client.println("Content-Type: application/x-www-form-urlencoded;"); client.print("Content-Length: "); client.println(query.length()); client.println(); client.println(query); else Serial.println("Connection failed"); delay(1000);
Langkah 3: Membuat Script PHP
Terakhir, kita membuat script PHP untuk menyimpan data sensor ke database. Berikut adalah contoh kode PHP:
connect_error) die("Connection failed: " . $conn->connect_error); if ($_SERVER["REQUEST_METHOD"] == "POST") $sensor_name = $_POST["sensor_name"]; $sensor_value = $_POST["sensor_value"]; $date_time = date('Y-m-d H:i:s'); $sql = "INSERT INTO sensor_data (sensor_name, sensor_value, date_time) VALUES ('$sensor_name', '$sensor_value', '$date_time')"; if ($conn->query($sql) === TRUE) echo "New record created successfully"; else echo "Error: " . $sql . "
" . $conn->error; $conn->close(); ?>
ESP8266, Cara Mengirim Data Sensor Jarak ke Thingspeak
ESP8266 adalah modul Wi-Fi yang bisa digunakan untuk menghubungkan sensor ke internet. Thingspeak adalah platform IoT yang menyediakan layanan untuk menyimpan dan menganalisis data sensor. Dalam tutorial ini, kita akan belajar cara mengirim data sensor jarak ke Thingspeak menggunakan ESP8266.
Langkah 1: Membuat Akun di Thingspeak
Pertama-tama, kita harus membuat akun di Thingspeak. Setelah membuat akun, kita perlu membuat channel untuk menampung data sensor jarak. Untuk membuat channel, klik tombol “New Channel” di halaman dashboard dan isi formulir yang disediakan.
Langkah 2: Membuat Sketsa Arduino
Setelah membuat channel, kita perlu membuat sketsa Arduino untuk membaca data sensor jarak dan mengirimnya ke Thingspeak. Berikut adalah contoh sketsa Arduino:
#include#include #include #include const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; #define TRIGGER_PIN 2 #define ECHO_PIN 3 #define MAX_DISTANCE 200 NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); float distance; void setup() Serial.begin(9600); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) delay(1000); Serial.println("Connecting to WiFi.."); Serial.println("Connected to WiFi"); delay(1000); void loop() distance = sonar.ping_cm(); WiFiClient client; HTTPClient http; String key = "YOUR_THINGSPEAK_API_KEY"; String url = "http://api.thingspeak.com/update?api_key=" + key + "&field1=" + String(distance); Serial.println(url); if (http.begin(client, url)) int httpCode = http.GET(); if (httpCode == 200) String payload = http.getString(); Serial.println(payload); http.end(); else Serial.println("Error in HTTP request"); delay(5000);
FAQ
1. Apa keuntungan dari menggunakan Arduino dan ESP8266 dalam pengembangan IoT?
Jawaban: Arduino dan ESP8266 adalah dua komponen yang sangat populer dalam pengembangan IoT karena mereka memiliki kemampuan untuk terhubung ke internet dan mengirim data dari sensor. Selain itu, keduanya juga mudah digunakan dan memiliki harga yang terjangkau.
2. Apa yang dimaksud dengan Internet of Things (IoT)?
Jawaban: IoT adalah konsep di mana berbagai perangkat dan sensor dapat terhubung ke internet dan saling berkomunikasi, sehingga memungkinkan pengguna untuk memantau, mengontrol, atau mengumpulkan data dari jarak jauh.