Buat situs web ESP8266 untuk mengontrol hingga 8 relay pada pengontrol relay saluran XC4418 8 kami

Gunakan relay dengan mudah dengan pengaturan dua bagian sederhana ini! Cukup hubungkan perangkat apa pun yang ingin Anda uji atau aktifkan ke modul relai; Kemudian gunakan aplikasi telepon yang dibangun untuk mengontrolnya kapan pun Anda mau. Atur relay ke sakelar, timer, atau aktivasi sesaat; dan bahkan mengaturnya pada waktu -waktu tertentu dalam sehari. Bagus untuk kit penyiraman tanaman otomatis, perangkat pengujian, lampu mengendalikan atau beban lainnya hingga 10 amp.
| Qty | Kode | Keterangan |
|---|---|---|
| 1 | XC4418 | 8 pengontrol relay saluran |
| 1 | XC4411 | Uno dengan wifi |
Seperti biasa, Anda harus menginstal perpustakaan ESP8266 di alat Arduino IDE Anda, bersama dengan plugin data-upload ESP8266. Jika tidak, Anda bisa mendapatkan salah satunya dari bawah:
Sistem ini adalah pengaturan yang cukup sederhana. Seperti yang kita ketahui, XC4411 adalah UNO dan ESP yang digabungkan ke dalam pengaturan papan tunggal. Bagian ESP akan menangani menjalankan jenis program "aplikasi web" sederhana, yang kemudian akan berkomunikasi dengan UNO.

Bagian UNO dari kode hanya akan bertanggung jawab untuk mengaktifkan dan mengendalikan relay setelah menerima perintah.
XC4411 menghubungkan UNO dan ESP bersama -sama melalui port serial, yang berarti kita hanya perlu melakukan beberapa Serial.read() dan Serial.write() untuk berkomunikasi di antara mereka berdua. Agar hal-hal sederhana, kita akan menjaga aliran data di satu arah, sehingga ESP tidak akan pernah tahu bagaimana tampilan relay, yang berarti aplikasi web tidak akan dapat menunjukkan seperti apa relay yang sebenarnya, tetapi kita dapat membuat tebakan sederhana.
Ini adalah build one-module sederhana, berkat kesederhanaan papan XC4411.

Cukup hubungkan 5V dan GND ke dua pin teratas papan relai, (Anda harus menemukan bahwa mereka diberi label VCC dan GND ). Kemudian hubungkan semua yang lain IN# ke pin digital UNO. Untuk menjaga hal -hal sederhana, kami menjaga pin tetap teratur, mulai dari Pin 2 dan naik ke Pin 9 - ini akan cocok dengan apa yang ada di papan estafet, mulai dari sisi bawah.
Merupakan ide yang masuk akal untuk menjaga tab hijau antara pin COM dan GND di papan relai juga.
Di XC4411 Anda harus menemukan deretan saklar dip. Ini digunakan untuk mengatur mode apa perangkat ini.

(Kami sedikit kotor karena seberapa sering kami menggunakannya).
Untuk bagian ini kami akan ingin memprogram sisi UNO, jadi gunakan pena atau untuk mengatur saklar dips seperti itu:
| Pin | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| Negara | MATI | MATI | PADA | PADA | MATI | MATI | MATI | MATI |
Kemudian buka bagian uno/uno.ino dari kode di editor IDE Arduino, dan unggah seperti biasa.
Anda harus dapat menguji sisi ini, dengan membuka Serial Monitor dan mengatur opsi untuk:
115200 baudKemudian ketik perintah seperti:
>4a
Jika Anda benar -benar ingin men -debug kode, Anda harus menemukan beberapa definisi pada baris 10 dan 11 dari kode UNO. Satu pada baris 10 akan mengeluarkan teks yang mirip dengan di bawah ini.

Define lain (pada baris 11) tidak akan melakukan apa pun, dan hanya akan menyalakan relai. Anda ingin baris 11 didefinisikan saat Anda menyelesaikan proyek.
Atur switch dip-saklon seperti di bawah ini.
| Pin | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| Negara | MATI | MATI | MATI | MATI | PADA | PADA | PADA | MATI |
Untuk porsi ini Anda perlu membuka kode ESP/ESP.INO di IDE Arduino, dan ubah jenis papan menjadi papan Generic ESP8266 .
Ubah "ukuran flash" dari program menjadi 4M (3M SPIFFS) - ini akan memisahkan beberapa kode sehingga kami dapat masuk dalam data/ folder kami. Anda akan menemukan kode situs web kami di folder data, yang ingin kami masukkan ke dalam ESP. Di bawah ini adalah tangkapan layar dari pengaturan kami.

Pertama, unggah kode seperti biasa. Jika Anda menekan unggahan dan Anda menemukan bahwa IDE gagal mengunggah, atau Anda mendapatkan beberapa output seperti ini:

Ini hanya berarti bahwa IDE sedang menunggu ESP reboot. Tekan tombol RESET di papan saat Anda melihat IDE menunjukkan pesan ini. Itu harus mengunggah tanpa hambatan.
Setelah kode selesai, gunakan ESP Data Upload Tool (seperti yang disorot pada gambar di atas) untuk mengunggah situs web kami ke ESP. Anda harus menekan tombol reset yang mirip dengan sebelumnya. Setelah diprogram, Anda dapat mematikan DIP -SWITCH 7 dan membuka monitor serial untuk melihat output apa yang dimiliki ESP ketika Anda terhubung ke hotspot "Relay Controller" dan menavigasi ke http://192.168.4.1 - atau lanjutkan.
Mirip dengan kode UNO, kami memiliki banyak definisi untuk debugging. Anda dapat mengaktifkan atau menonaktifkan pesan debug dengan cara ini.
Beberapa hal penting yang perlu diingat, saat mengubah kode:
Flash size tetap sama. Jika Anda mengubahnya, Anda harus mengunggah kembali kode dan situs web.Setelah kedua bagian diprogram, akhirnya beralih sakelar DIP ke di bawah ini.
| Pin | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| Negara | PADA | PADA | MATI | MATI | MATI | MATI | MATI | MATI |
Ini akan menghubungkan serial ESP ke serial UNO. Sekarang hanya ditenagai oleh USB dan monitor serial tidak akan terhubung ke apa pun.
Buka wifi ponsel Anda dan reboot XC4411 - Anda harus menemukan bahwa ada jaringan nirkabel baru yang disebut "Relay Controller". Hubungkan ke sana, lalu buka browser dan buka: http://192.168.4.1

Situs web tidak banyak untuk dilihat, tetapi berhasil. Anda harus dapat menekan tombol dan menemukan relay dihidupkan dan dimatikan. Jika Anda tahu cara membuat situs web terlihat bagus dan ingin memiliki suntikan membuat ini terlihat lebih baik, harus mengembangkan data/ folder baru dan mengirimkannya pada tab Masalah GitHub, atau garpu repo dan mengirimkan permintaan tarik.
Jika Anda menemukan beberapa hal yang tidak berfungsi, sambungkan komputer Anda ke jaringan (sebagai alternatif, hubungkan ESP ke jaringan rumah Anda) dan buka situs web di komputer Anda. Anda harus dapat membuka "Chrome Inspector Tool" dan menemukan konsol yang akan menghasilkan pesan.
Namun, cara yang pasti untuk menguji apa yang terjadi, adalah dengan menghubungkan monitor serial ke perangkat (dengan sakelar dip yang sesuai dengan bagian mana yang Anda uji) dan uji setiap bagian dari kode yang Anda butuhkan.
>3a menyalakan Relay 3, dan >3d mematikan relay 3.>1a pada monitor serial. Jelas situs web perlu bekerja, tetapi sejumlah perubahan dapat terjadi pada proyek ini. Anda masih harus memiliki beberapa pin gratis dan semua yang harus Anda lakukan untuk menambahkan sesuatu adalah:
Di bawah ini adalah beberapa segmen kode untuk dijelaskan.
Di situs web adalah tombol yang kami gunakan untuk menyalakan relai, ini adalah elemen <button id='3' class='relay'></button> yang memiliki ID dari apa pinnya (tidak sepenuhnya, tetapi cukup dekat untuk contoh ini).
Kemudian kami memiliki beberapa kode JavaScript (disederhanakan):
$ ( "button.relay" ) . on ( "click" , function ( ) {
//do this when a button with the class 'relay' is clicked
} ) ; Dalam fungsi ini kami fetch() halaman web baru, yang menunjuk ke /relay , dan jika status pengembalian baik-baik saja, kami menambahkan kelas "ison" ke tombol:
fetch ( "relay?relay=3&mode=activate" ) . then ( response => {
if ( response . status == 200 ) {
button . addClass ( "isOn" ) ;
}
} ) ; Ini berarti situs web akan mencoba mengakses halaman web baru di http://192.168.4.1/relay dengan parameter ?relay=3&mode=activate . Mari kita periksa kode ESP:
// firstly, set the handler function in the setup():
server.on( " /relay " , handleRelayCommand);
// ... later ...
void handleRelayCommand (){
String relayNumber = server. arg ( " relay " );
String mode = server. arg ( " mode " );
// ...
} Perintah server.arg("relay"); Cukup mendapatkan apa pun argumen "relay" yang telah diatur. Dalam permintaan asli kami : ?relay=3&mode=activate ini akan menjadi string "3" . Demikian pula, argumen mode diatur ke string "activate"
Kami kemudian hanya melakukan beberapa cek, menemukan apa yang disampaikan "3" sesuai dengan dan apakah "activate" berarti kami menyalakan relai, dan mengirimkannya sebagai perintah ke UNO:
Serial.write( ' > ' ); // start of command
Serial.write( ' 3 ' ); // relay 3
Serial.write( ' a ' ); // activate, or turn onIni akan ditafsirkan oleh UNO, yang kemudian akan benar -benar menyalakan relai:
Di uno.ino (sekali lagi, disederhanakan):
while (Serial.read() != ' > ' ) // do nothing until we get '>'
continue ;
char relay = Serial.read(); // next character is relay;
char mode = Serial.read(); // next character is mode;
// ... do some checks, turn char into int, see if it's valid, etc.
digitalWrite (theRelay, theMode); Satu hal yang perlu diperhatikan adalah bahwa aliran data hanya satu arah dalam kode ini, tidak ada Serial.write() pada uno untuk menjadi Serial.read() oleh ESP.