Komunikasi nirkabel antara perangkat elektronik dan modul sangatlah penting, agar dapat 'Pas' di Dunia Internet of Things. Protokol HTTP dan bahasa HTML memungkinkan untuk mentransfer Data ke mana pun di dunia, melalui web. Kami telah membahas beberapa proyek yang menggunakan Wi-Fi dengan Arduino, lihatlah untuk Memulai:
- Mengirim Email menggunakan Arduino dan ESP8266 WiFi Module
- Robot Kontrol WiFi menggunakan Arduino
- Mengontrol LED RGB menggunakan Arduino dan Wi-Fi
Sekarang dalam tutorial ini, kami sedang membuat program untuk Mengirim Data ke Web menggunakan modul Arduino dan Wi-Fi. Untuk ini pertama-tama kita membutuhkan alamat IP baik server Global atau Lokal, di sini untuk kemudahan dan tujuan demonstrasi, kami menggunakan Server Lokal.
Komponen yang Dibutuhkan:
- Arduino UNO
- Modul Wi-Fi ESP8266
- Kabel USB
- Menghubungkan kabel
- Laptop
- Sumber Daya listrik
Modul Wi-Fi ESP8266:
Koneksi Sirkuit:
Diagram Sirkuit untuk "Data Posting dari Arduino ke Web" diberikan di bawah ini. Kami terutama membutuhkan modul Wi-Fi Arduino dan ESP8266. Pin Vcc dan GND ESP8266 terhubung langsung ke 3.3V dan GND dari Arduino dan CH_PD juga terhubung dengan 3.3V. Pin Tx dan Rx ESP8266 terhubung langsung ke pin 2 dan 3 Arduino. Software Serial Library digunakan untuk memungkinkan komunikasi serial pada pin 2 dan 3 Arduino. Kami telah membahas modul Wi-Fi Antarmuka ESP8266 ke Arduino secara rinci.
Dengan menggunakan Software Serial Library di sini, kami mengizinkan komunikasi serial pada pin 2 dan 3, dan membuatnya masing-masing menjadi Rx dan Tx. Secara default Pin 0 dan 1 Arduino digunakan untuk komunikasi serial tetapi dengan menggunakan perpustakaan SoftwareSerial, kami dapat mengizinkan komunikasi serial pada pin digital Arduino lainnya.
Note: Untuk melihat respon ESP8266 pada monitor serial, silahkan buka Serial Monitor dari Arduino IDE.
Penjelasan Kerja:
Pertama-tama kita perlu menghubungkan modul Wi-Fi kita ke router Wi-Fi untuk konektivitas jaringan. Kemudian kita akan mengkonfigurasi server lokal, Mengirim data ke Web dan terakhir menutup koneksi. Proses dan perintah ini telah dijelaskan dalam langkah-langkah di bawah ini:
1. Pertama kita perlu menguji modul Wi-Fi dengan mengirimkan perintah AT , itu akan mengembalikan respons yang berisi OK .
2. Setelah ini, kita perlu memilih mode menggunakan perintah AT + CWMODE = mode_id , kita telah menggunakan Mode id = 3. Id mode:
1 = Mode stasiun (klien)
2 = Mode AP (host)
3 = Mode AP + Stasiun (Ya, ESP8266 memiliki mode ganda!)
3. Sekarang kita perlu melepaskan modul Wi-Fi kita dari jaringan Wi-Fi yang sebelumnya terhubung, dengan menggunakan perintah AT + CWQAP, karena ESP8266 secara default terhubung secara otomatis dengan jaringan Wi-Fi yang sebelumnya tersedia
4. Setelah itu, pengguna dapat mengatur ulang modul dengan perintah AT + RST . Langkah ini opsional.
5. Sekarang kita perlu menghubungkan ESP8266 ke router Wi-Fi menggunakan perintah yang diberikan
6. Sekarang dapatkan Alamat IP dengan menggunakan perintah yang diberikan:
Ini akan mengembalikan Alamat IP.
7. Sekarang aktifkan mode multipleks dengan menggunakan AT + CIPMUX = 1 (1 untuk beberapa koneksi dan 0 untuk koneksi tunggal)
8. Sekarang konfigurasikan ESP8266 sebagai server dengan menggunakan AT + CIPSERVER = 1, port_no (port mungkin 80). Sekarang Wi-Fi Anda sudah siap. Di sini '1' digunakan untuk membuat server dan '0' untuk menghapus server.
9. Sekarang dengan menggunakan perintah yang diberikan pengguna dapat mengirim data ke server yang dibuat lokal:
Id = ID no. koneksi transmisi
Panjang = Panjang data maksimal adalah 2 kb
10. Setelah mengirimkan ID dan Length ke server, kita perlu mengirimkan data seperti: Serial.println (“[email protected]”);
11. Setelah mengirim data kita perlu menutup koneksi dengan perintah yang diberikan:
Sekarang data telah dikirim ke server lokal.
12. Sekarang ketik Alamat IP di Address Bar di browser web dan tekan enter. Sekarang pengguna dapat melihat data yang dikirimkan di halaman web.
Lihat Video di bawah ini untuk proses lengkapnya.
Langkah-langkah Pemrograman:
1. Sertakan SoftwareSerial Library untuk memungkinkan komunikasi serial pada PIN 2 & 3 dan mendeklarasikan beberapa variabel dan string.
#include
2. Setelah ini, kita harus menentukan beberapa fungsi untuk melakukan tugas yang kita inginkan.
Dalam fungsi Setup () , kami menginisialisasi komunikasi UART serial untuk ESP8266 sebagai client.begin (9600); pada baud rate 9600.
void setup () {Serial.begin (9600); client.begin (9600); wifi_init (); Serial.println ("Sistem Siap.."); }
3. Pada fungsi wifi_init () , kita menginisialisasi modul wifi dengan mengirimkan beberapa perintah seperti reset, set mode, sambungkan ke router, konfigurasi koneksi dll. Perintah-perintah ini juga telah dijelaskan di atas pada bagian deskripsi.
void wifi_init () {connect_wifi ("AT", 100); connect_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5000);…………………
4. Dalam fungsi connect_wifi () , kami mengirim data perintah ke ESP8266 dan kemudian membaca respons dari modul Wi-Fi ESP8266.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; sementara (1) {Serial.println (cmd);…………………
5. Fungsi sendwebdata () digunakan untuk mengirimkan data ke Local Server atau Webpage.
batal sendwebdata (String webPage) {int ii = 0; sementara (1) {unsigned int l = webPage.length (); Serial.print ("AT + CIPSEND = 0,"); client.print ("AT + CIPSEND = 0,");…………………
6. Fungsi void send () digunakan untuk mengirim data string ke fungsi sendwebdata () . Itu selanjutnya akan dikirim ke halaman web.
batal Kirim () {webpage = "
Selamat datang di Circuit Digest
"; sendwebdata (halaman web); halaman web = nama; halaman web + = dat;…………………7. Fungsi get_ip () digunakan untuk mendapatkan alamat IP dari server lokal yang dibuat.
8. Dalam fungsi void loop () , kami mengirimkan instruksi kepada pengguna untuk menyegarkan halaman dan memeriksa apakah server terhubung atau tidak. Saat pengguna menyegarkan atau meminta halaman web, data secara otomatis dikirim ke alamat IP yang sama.
void loop () {k = 0; Serial.println ("Harap Segarkan Halaman Anda"); sementara (k <1000)………………
Kami dapat menampilkan data apa pun dari Arduino ke Halaman Web menggunakan proses ini, seperti Suhu & Kelembaban Kamar, Waktu jam, koordinat GPS, Denyut Jantung dll.