Kontrol GPIO ESP32 dan ESP8266 dari Mana Saja di Dunia

Dalam proyek ini Anda akan belajar cara mengontrol GPIO ESP32 atau ESP8266 Anda dari mana saja di dunia. Ini bisa sangat berguna untuk mengontrol relai, termostat, atau perangkat lain dari jarak jauh.

Proyek ini juga sangat serbaguna. Melalui dasbor cloud Anda, Anda dapat dengan mudah mengontrol lebih banyak output (tanpa mengunggah kode baru ke papan Anda) dan Anda bahkan dapat menghubungkan beberapa papan ke server Anda.

Sebelumnya, kami telah menyimpan pembacaan sensor ke dalam database dan kami telah menggunakan metode yang berbeda untuk menampilkan pembacaan sensor pada:

    Tabel

    Grafik

    Pengukur

Sekarang, saya telah membuat proyek baru ini di mana Anda dapat membuat tombol di dasbor dan menetapkannya ke papan dan nomor GPIO. Kemudian, Anda dapat menggunakan sakelar sakelar untuk mengontrol keluaran ESP32 atau ESP8266 dari mana saja.

Ada banyak cara untuk mengontrol output dari mana saja, dan meskipun ini merupakan solusi yang berfungsi, ada metode lain yang menyediakan komunikasi dua arah dengan perangkat Anda. Saya juga menyarankan agar Anda mengambil proyek ini lebih jauh dan menambahkan lebih banyak fitur agar sesuai dengan kebutuhan Anda sendiri.

Untuk membangun proyek ini, Anda akan menggunakan teknologi ini:

    • ESP32 atau ESP8266 diprogram dengan Arduino IDE

    • Server hosting dan nama domain

    • Skrip PHP untuk menyimpan dan mengambil status keluaran yang disimpan dalam database MySQL

Tonton Video Demonstrasinya

Untuk melihat bagaimana proyek ini bekerja, Anda dapat menonton video demonstrasi berikut:

0. Unduh Kode Sumber

Untuk proyek ini, Anda memerlukan file-file ini:

    • Kueri SQL untuk membuat tabel Anda: Outputs_and_Boards_Table.sql

    • Masukkan dan akses database: esp-database.php

    • Menangani permintaan HTTP: esp-outputs-action.php

    • File CSS untuk menata halaman web Anda: esp-style.css

    • Tampilkan tombol kontrol Anda: esp-outputs.php

    • Sketsa Arduino untuk ESP32: ESP32_HTTP_GET_Request_JSON.ino

    • Sketsa Arduino untuk ESP8266: ESP8266_HTTP_GET_Request_JSON.ino

    Unduh semua file proyek

1. Hosting Aplikasi PHP dan Database MySQL Anda

Tujuan dari proyek ini adalah untuk memiliki nama domain dan akun hosting Anda sendiri yang memungkinkan Anda mengontrol GPIO ESP32 atau ESP8266 Anda dari mana saja di dunia.

Berikut ini ikhtisar tingkat tinggi tentang cara kerja proyek:

    1. Anda memiliki halaman web yang menjalankan skrip PHP dengan beberapa tombol sakelar yang memungkinkan Anda untuk mengontrol keluaran dan mematikannya;

    2. Saat Anda menekan tombol, ini memperbarui status keluaran dan menyimpannya di database Anda;

    3. Anda dapat menambahkan lebih banyak tombol atau menghapusnya dari dasbor Anda;

    4. Kemudian, Anda dapat memiliki ESP32 atau ESP8266 atau bahkan beberapa papan yang membuat permintaan HTTP GET setiap X jumlah detik ke server Anda;

    5. Akhirnya, menurut hasil permintaan HTTP GET itu, papan ESP memperbarui GPIO-nya sesuai dengan itu.

Layanan Hosting

Saya sarankan menggunakan salah satu layanan hosting berikut yang dapat menangani semua persyaratan proyek:

    Bluehost (mudah digunakan dengan cPanel): nama domain gratis saat Anda mendaftar untuk paket 3 tahun. Saya sarankan memilih opsi situs web tak terbatas;

     Digital Ocean: Server Linux yang Anda kelola melalui baris perintah. Saya hanya merekomendasikan opsi ini untuk pengguna tingkat lanjut.

Kedua layanan tersebut adalah yang saya gunakan dan rekomendasikan secara pribadi, tetapi Anda dapat menggunakan layanan hosting lainnya. Setiap layanan hosting yang menawarkan PHP dan MySQL akan bekerja dengan tutorial ini. Jika Anda tidak memiliki akun hosting, saya sarankan untuk mendaftar ke Bluehost.

    Dapatkan Hosting dan Nama Domain dengan Bluehost »

Saat membeli akun hosting, Anda juga harus membeli nama domain. Inilah yang membuat proyek ini menarik: Anda dapat menggunakan nama domain Anda (http://example.com) dan mengontrol papan Anda.

Jika Anda menyukai proyek kami, Anda dapat mempertimbangkan untuk mendaftar ke salah satu layanan hosting yang direkomendasikan, karena Anda akan mendukung pekerjaan kami.

Catatan: Anda juga dapat menjalankan server LAMP (Linux, Apache, MySQL, PHP) pada Raspberry Pi untuk mengontrol papan Anda di jaringan lokal Anda. Namun, tujuan dari tutorial ini adalah untuk mengontrol output ESP dengan nama domain Anda sendiri yang dapat Anda akses dari mana saja di dunia.

2. Mempersiapkan Database MySQL Anda

Setelah mendaftar untuk akun hosting dan menyiapkan nama domain, Anda dapat masuk ke cPanel atau dasbor serupa. Setelah itu, ikuti langkah selanjutnya untuk membuat database, nama pengguna, kata sandi, dan tabel SQL Anda.

Membuat database dan pengguna

Buka tab "Advanced":

1. Ketik "database" di bilah pencarian dan pilih "MySQL Database Wizard".

2. Masukkan nama Database yang Anda inginkan. Dalam kasus saya, nama databasenya adalah esp_data. Kemudian, tekan tombol "Langkah Berikutnya":

Catatan: nanti Anda harus menggunakan nama basis data dengan awalan yang diberikan host Anda (awalan basis data saya pada tangkapan layar di atas kabur). Saya akan menyebutnya sebagai example_esp_data mulai sekarang.

3. Ketik nama pengguna Database Anda dan atur kata sandi. Anda harus menyimpan semua detail itu, karena Anda akan membutuhkannya nanti untuk membuat koneksi database dengan kode PHP Anda.

Itu dia! Database dan pengguna baru Anda berhasil dibuat. Sekarang, simpan semua detail Anda karena Anda akan membutuhkannya nanti:

    Nama basis data: example_esp_data

    Nama pengguna: example_esp_board

    Kata sandi: kata sandi Anda

Membuat tabel SQL

Setelah membuat database dan pengguna Anda, kembali ke dashboard cPanel dan cari “phpMyAdmin”.

Di bilah sisi kiri, pilih nama database Anda example_esp_data dan buka tab "SQL".

Penting: pastikan Anda telah membuka database example_esp_data. Kemudian, klik tab SQL. Jika Anda tidak mengikuti langkah-langkah tepat ini dan menjalankan kueri SQL, Anda mungkin membuat tabel di database yang salah.

Salin kueri SQL dalam cuplikan berikut:

Rekatkan di bidang kueri SQL (disorot dengan persegi panjang merah) dan tekan tombol "Go" untuk membuat tabel Anda:

Setelah itu, Anda akan melihat tabel yang baru dibuat bernama Boards and Outputs di database example_esp_data seperti yang ditunjukkan pada gambar di bawah ini:

3. Membuat File Dasbor Anda

Di bagian ini, kami akan membuat file yang bertanggung jawab untuk membuat Dasbor Anda. Berikut adalah file-filenya:

    • Masukkan dan akses database: esp-database.php

    • Menangani permintaan HTTP: esp-outputs-action.php

    • File CSS untuk menata halaman web Anda: esp-style.css

    • Tampilkan tombol kontrol Anda:esp-outputs.php

Jika Anda menggunakan penyedia hosting dengan cPanel, Anda dapat mencari “File Manager”:

Kemudian, pilih opsi public_html dan tekan tombol “+ File” untuk membuat file baru.

Catatan: jika Anda mengikuti tutorial ini dan Anda tidak terbiasa dengan PHP, saya sarankan untuk membuat file yang sama persis ini.

Buat empat file baru di /public_html dengan nama dan ekstensi persis berikut:

    esp-database.php

    esp-outputs-action.php

    esp-outputs.php

    esp-style.css

4. Skrip PHP – Perbarui dan Ambil Status Output

Di bagian ini, kita akan membuat skrip PHP yang bertanggung jawab untuk menerima permintaan masuk dan berinteraksi dengan database MySQL Anda.

Edit file yang baru dibuat (esp-outputs-action.php) dan salin cuplikan berikut:

5. Skrip PHP untuk Fungsi Basis Data

Edit file Anda esp-database.php yang menyisipkan, menghapus, dan mengambil data. Salin skrip PHP berikutnya:

Sebelum menyimpan file, Anda perlu memodifikasi variabel $dbname, $username dan $password dengan detail unik Anda:

Setelah menambahkan nama database, username dan password, simpan file dan lanjutkan dengan tutorial ini.

6. Skrip PHP – Tombol Kontrol

Anda juga perlu menambahkan file CSS untuk menata dasbor Anda (esp-style.css). Salin CSS itu ke file Anda dan simpan:

Terakhir, salin skrip PHP berikutnya ke file esp-outputs.php Anda yang akan menampilkan tombol kontrol Anda dan memungkinkan Anda membuat/menghapus tombol:

Jika Anda mencoba mengakses nama domain Anda di jalur URL berikut, Anda akan melihat yang berikut:


Itu dia! Anda akan melihat halaman web itu dengan tombol default Anda. Tombol default disebut Built-in LED, ditetapkan ke Board 1 dan mengontrol GPIO 2.

7. Mempersiapkan ESP32 dan ESP8266 Anda

Proyek ini kompatibel dengan papan ESP32 dan ESP8266. Anda hanya perlu merakit rangkaian sederhana dan mengunggah sketsa yang disediakan.

Bagian yang Diperlukan

Untuk menguji proyek ini, kami akan menghubungkan beberapa LED ke GPIO ESP32 dan ESP8266. Berikut daftar bagian yang Anda butuhkan untuk membangun sirkuit untuk proyek ini:

    Papan ESP32 (baca papan dev ESP32Terbaik)

    Papan ESP8266 (baca papan dev ESP8266Terbaik)

    5x LED

    Resistor 5x220 Ohm

    Kabel Jumper

    Breadboard

Skema

Untuk contoh ini, kami akan menggunakan papan ESP32 dengan 3 LED dan ESP8266 dengan 2 LED. Alih-alih LED, Anda dapat menghubungkan modul relai atau perangkat lain ke ESP GPIO.

    Modul relai dengan ESP32

    Modul relai dengan ESP8266

Kabel LED ke ESP32 – Papan #1

Kabel LED ke ESP8266 – Papan #2

Kode ESP32 – Papan #1

Kami akan memprogram ESP32/ESP8266 menggunakan Arduino IDE, jadi Anda harus menginstal add-on ESP di Arduino IDE Anda.

Ikuti salah satu tutorial berikutnya tergantung pada papan yang Anda gunakan:

    Instal Papan ESP32 di Arduino IDE

     Instal Papan ESP8266 di Arduino IDE

Anda juga perlu menginstal perpustakaan Arduino_JSON. Anda dapat menginstal perpustakaan ini di Manajer Perpustakaan Arduino IDE. Masuk saja ke Sketch > Include Library > Manage Libraries… dan cari nama library seperti berikut:

Setelah menginstal add-on dan pustaka papan yang diperlukan, salin kode berikut ke Arduino IDE Anda, tetapi jangan mengunggahnya dulu. Anda perlu membuat beberapa perubahan untuk membuatnya bekerja untuk Anda.

Mengatur kredensial jaringan Anda

Anda perlu mengubah baris berikut dengan kredensial jaringan Anda: SSID dan kata sandi. Kode dikomentari dengan baik di mana Anda harus membuat perubahan.

Menyetel nama server Anda

Anda juga perlu mengetikkan nama domain Anda, sehingga ESP membuat permintaan HTTP GET ke server Anda sendiri.

Perhatikan bahwa pada URL serverName kita memiliki parameter board=1. Ini menunjukkan ID papan. Jika Anda ingin menambahkan lebih banyak papan, Anda harus mengubah ID itu. Itu mengidentifikasi papan yang ingin Anda kendalikan.

Sekarang, Anda dapat mengunggah kode ke papan Anda. Ini harus bekerja langsung.

Proyek ini sudah cukup lama, jadi kami tidak akan membahas cara kerja kodenya. Singkatnya, ESP32 Anda membuat permintaan HTTP GET ke server Anda setiap X jumlah detik untuk memperbarui status GPIO (secara default diatur ke 5 detik).

Kemudian, dewan akan memperbarui outputnya sesuai dengan respons permintaan.

Buka Serial Monitor Anda dan Anda akan melihat sesuatu yang serupa:

Permintaan mengambil objek JSON yang berisi nomor GPIO dan statusnya. Dalam hal ini, ini memberi tahu kita bahwa GPIO 2 harus LOW {“2″:”0”}.

Kode ESP8266 – Papan #2

Untuk contoh ini, kami mengontrol output dari dua papan secara bersamaan. Anda dapat menggunakan kode berikutnya untuk papan ESP8266 Anda:

Untuk menyiapkan kode ESP8266 Anda, cukup masukkan SSID, kata sandi, nama domain, dan ID papan (dalam hal ini, ID papan nomor 2).

Demonstrasi

Setelah menyelesaikan semua langkah, nyalakan kedua papan ESP Anda.

Jika Anda membuka nama domain Anda di jalur URL ini:

Anda akan melihat tombol default di Dasbor Anda:

Jika Anda menekan tombol itu hidup dan mati, Anda seharusnya dapat mengontrol GPIO 2 dari ESP32 – Board #1 Anda.

Anda dapat menambahkan lebih banyak tombol ke proyek Anda, ketik nama (LED 2), atur papan id ke nomor 1, lalu ketik GPIO yang diinginkan yang ingin Anda kendalikan (33).

Buat tombol lain untuk Board 1 untuk mengontrol GPIO 32. Kemudian, tambahkan dua tombol untuk Board 2 (GPIO 2 dan GPIO 4).

Kapan saja, Anda dapat menggunakan tautan hapus untuk menghapus tombol dari Dasbor Anda atau menggunakan formulir di bagian bawah untuk membuat lebih banyak.

Catatan: di beberapa perangkat, Anda mungkin perlu menyegarkan halaman untuk melihat tombol yang baru dibuat atau untuk menghapus tombol yang dihapus.

Terakhir, ada bagian yang menunjukkan terakhir kali papan membuat permintaan dan memperbarui outputnya.

Karena ini bukan komunikasi dua arah, saat Anda menekan tombol untuk mengontrol output, board Anda tidak memperbarui output secara instan. Diperlukan beberapa detik bagi papan ESP Anda untuk membuat permintaan HTTP GET baru dan memperbarui status keluarannya. Dengan bagian Waktu Permintaan Terakhir, Anda dapat melihat kapan itu terjadi. Cukup segarkan halaman untuk melihat nilai yang diperbarui.

Halaman web juga responsif seluler, sehingga Anda dapat menggunakan perangkat apa pun untuk mengakses server Anda.

Membungkus

Dalam tutorial ini Anda telah belajar bagaimana mengontrol output ESP32 dan ESP8266 Anda dari mana saja di dunia. Ini mengharuskan Anda memiliki server dan nama domain sendiri (sebagai alternatif, Anda dapat menggunakan Server LAMP Raspberry Pi untuk akses lokal).

Ada banyak fitur lain yang dapat Anda tambahkan ke server Anda, Anda dapat menggabungkannya dengan proyek kami sebelumnya untuk menampilkan pembacaan sensor. Jangan ragu untuk menambahkan lebih banyak papan ESP untuk dijalankan secara bersamaan dan menentukan output lain untuk dikontrol.

Saya mendorong Anda untuk mengubah tampilan halaman web, menambahkan lebih banyak fitur seperti pemberitahuan email, mempublikasikan data dari sensor yang berbeda, menggunakan beberapa papan ESP, dan banyak lagi.

Anda mungkin juga suka membaca:

    [Kursus] Belajar ESP32 dengan Arduino IDE

    Stasiun Cuaca Awan DIY denganESP32/ESP8266 (Database MySQL dan PHP)

     ESP32/ESP8266 Kirim Notifikasi Emailmenggunakan Skrip PHP

    Visualisasikan Pembacaan Sensor Anda dariMana Saja di Dunia (ESP32/ESP8266 + MySQL + PHP) menggunakan Bagan

Sumber : randomnerdtutorials.com

Posting Komentar

0 Komentar