Daftar Isi:
- Langkah 1: Logika Perangkat Lunak: Arsitektur Sistem
- Langkah 2: Langkah 1: Pengkabelan Perangkat Keras
- Langkah 3: Langkah 2: Arduino
- Langkah 4: Langkah 3: NodeJS
- Langkah 5: Langkah 4: Antarmuka Web
- Langkah 6: Hasil
Video: Proyek Arduino: Kontrol Elektronik Melalui Internet Menggunakan Nodejs + Database SQL & Situs Web.: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Proyek Oleh: Mahmed.tech
Tanggal Pembuatan: 14 Juli 2017
Tingkat Kesulitan: Pemula dengan beberapa pengetahuan pemrograman.
Persyaratan Perangkat Keras:
- Arduino Uno, Nano, Mega (saya pikir sebagian besar MCU dengan koneksi serial akan berfungsi)
- Resistor pembatas LED & Arus tunggal. Gunakan kalkulator ini jika Anda tidak yakin: Kalkulator Hukum Ohm
- Potensiometer 10K.
Persyaratan Perangkat Lunak:
-Arduino IDE
- Node. JS (ini adalah perangkat lunak di komputer, sangat mudah dipasang)
- Server MySQL (cara termudah yang saya temukan adalah dengan menggunakan web hosting murah. Anda juga bisa mendapatkan nama domain gratis)
Bahasa Pemrograman & Scripting yang digunakan:
Arduino (C/C++ yang Dimodifikasi), JavaScript (Nodejs), PHP, HTML & CSS
PendahuluanProyek ini secara singkat: Mengontrol mikrokontroler Arduino dari antarmuka web. Oleh karena itu kendalikan perangkat listrik apa pun dari mana saja dengan internet. Saya ingin memperluas pemahaman saya tentang pemrograman dan pengembangan web dan cara apa yang lebih baik untuk melakukan ini selain melakukan proyek yang sederhana namun efektif. Perangkat keras dijaga seminimal mungkin sehingga saya bisa lebih fokus pada perangkat lunak. Karenanya saya menggunakan LED sederhana, pengaturan pot. Panci akan mengirim data dan led akan menerima (kecerahan PWM). Menggunakan NodeJS data serial dibaca (nilai potensiometer) dan ditulis (kecerahan led). Bagian tersulit dari proyek ini adalah mendapatkan data input dari lokasi yang jauh (server web)
Langkah 1: Logika Perangkat Lunak: Arsitektur Sistem
Data Potensiometer:
Ini dimulai di Arduino, nilai pot baca adalah cetak serial. Namun kali ini kita akan menggunakan Node. JS untuk membaca nilainya. NodeJS akan membuka komunikasi serial ke port yang sama dengan Arduino yang terhubung dan membaca nilai pot yang dicetak. NodeJS kemudian akan mengunggah data ke database SQL jarak jauh, ini akan terjadi setiap kali nilai pot baru dicetak. Halaman web akan terhubung ke interval set database SQL dan mengambil nilai potensiometer. Ini kemudian akan ditampilkan di halaman web.
Data yang Dipimpin:
Untuk led, kecerahan PWM akan diatur oleh pengguna di halaman web jarak jauh, jadi perjalanannya dimulai di ujung spektrum yang berlawanan. Data input disimpan ke database SQL, setiap interval set database diperiksa untuk perubahan PWM yang dipimpin, ini dilakukan oleh NodeJS. Jika nilainya berbeda dengan nilai sebelumnya maka nilai yang baru akan dikirimkan ke Arduino melalui serial bus. Arduino mengubah nilai PWM output dari led untuk mengubah kecerahannya.
Kalkulator hukum Ohm menggunakan rumus V = IR dan P = IV = I²R = V²/R Untuk proyek ini, saya akan menggunakan led biru. Ini penting karena ketika frekuensi cahaya meningkat, penurunan tegangan juga meningkat. Karena cahaya biru memiliki frekuensi yang lebih tinggi dibandingkan dengan sesuatu seperti led merah. Ini berarti tegangan maju yang lebih tinggi. Tergantung pada merek, jenis, dan ukuran, rentang kerja akan bervariasi. Untuk pengaturan saya, saya menggunakan resistor 220 secara seri, negatif ke ground dan positif ke pin PWM pada Arduino. Panci terhubung ke pin analog. Dengan 5VCC satu ujung GND yang lain dan pin tengah terhubung ke pin analog (A0 dalam kasus saya).
Langkah 2: Langkah 1: Pengkabelan Perangkat Keras
Ini sangat sederhana: Cukup sambungkan resistor pembatas arus Anda secara seri dengan LED, pastikan Anda dipimpin dengan benar. Satu titik akan menuju ke GND sementara ujung lainnya akan menuju ke pin Arduino. Untuk setup saya, saya menggunakan pin 12 untuk led dan A7 untuk Pot. Saya tidak punya skema karena rangkaiannya sangat sederhana. Namun, saya menemukan ini online (gambar)
Langkah 3: Langkah 2: Arduino
Pertama, led dan pot diperiksa apakah berfungsi seperti yang diharapkan. Ini diturunkan oleh program sederhana di mana nilai pot mengontrol led. Saya menggunakan fungsi kendala untuk mengubah rentang pot dari 0 hingga 1023 menjadi 0 hingga 255, tetapi /4 sederhana juga berfungsi. Nilai pot dihaluskan dengan mengambil rata-rata rata-rata dari 10 pembacaan berturut-turut, ini untuk menghilangkan paku. (Namun, perataan ini menyebabkan masalah dengan NodeJS jadi ini dihapus nanti di proyek - lebih lanjut tentang itu)
Kode Arduino
Baca / Tulis Serial Langkah selanjutnya adalah mengambil input pengguna melalui jendela serial monitor yang disediakan oleh ide Arduino untuk mengatur kecerahan. Untuk melakukan ini, serial.parseInt() digunakan yang mengambil nilai integer dan mengabaikan string. Juga, pemeriksaan kesalahan ditambahkan ke kode. Rentang valid dari nilai PWM adalah 0 - 255, ketika pengguna memasukkan >255 maka memberikan nilai 255 dan jika pengguna memasukkan nilai atau < +/-5 saya telah melakukan ini untuk membuat pembacaan lebih stabil karena fluktuasi. Mengapa ini adalah masalah besar yang terkait dengan pembaruan SQL, lebih lanjut tentang itu nanti.
Langkah 4: Langkah 3: NodeJS
Saya tidak akan menunjukkan cara mendapatkan atau mengatur dan SQL server. Ada banyak tutorial di luar sana.
Ada 3 aspek utama dari program NodeJS:
Baca Data Serial
Tulis Data Seri
Perbarui Basis Data SQL
Untuk membuat koneksi serial dalam NodeJS, modul bernama serialport harus diunduh yang dapat dilakukan dengan menggunakan perintah npm. Buka CMD pada folder dimana program NodeJS akan disimpan, install dengan mengetik: npm install serialport Juga modul SQL harus diinstal untuk dapat terhubung ke database sql: npm install mysql NodeJS - Serial Port Langkah pertama saya dengan NodeJS Program ini untuk membaca data yang dicetak dan mengirim kecerahan pwm ke Arduino. Hal ini dilakukan dengan membuka serial connect pada braudrate dan port yang sama. Setelah koneksi dibuat, saya membaca pesan masuk dan mencetaknya ke jendela konsol. Masalah muncul ketika saya mencoba menulis nilai pwm untuk mengontrol kecerahan.
Itu terus menimbulkan kesalahan: Port Not Open, solusi awal saya adalah memanggil fungsi tulis ketika ada data yang masuk. Namun ini adalah perbaikan yang buruk dan saya cukup tidak puas dengan solusinya, meskipun berhasil, itu hanya akan dikirim ketika nilai pot diubah. Kode contoh untuk modul serial tidak akan berfungsi baik dengan kesalahan yang sama. Saya kemudian mengetahui bahwa program tersebut mencoba menjalankan fungsi tulis tanpa membuka port, yang mengakibatkan kesalahan itu. Saya mengatasi masalah ini dengan menggunakan fungsi setInterval()
NodeJS - MySQL Pustaka MySQL digunakan (npm install MySQL) untuk terhubung ke database SQL karena server di lokasi yang jauh menggunakan alamat IP server sebagai ganti localhost.
var con menyimpan informasi koneksi dalam format JSON, setelah koneksi berhasil dibuat, database dapat di-query. 2 fungsi dibuat satu untuk memperbarui tabel, lainnya memilih dengan parameter yang diambil dalam kueri SQL. Tabel pembaruan dipanggil ketika nilai pot baru diterima dan kueri pemeriksaan kecerahan akan dijalankan secara berkala.
Tautan NodeJSCode
Langkah 5: Langkah 4: Antarmuka Web
Antarmuka Web
Halaman web utama ditulis dalam PHP karena saya sudah memiliki beberapa pengalaman dari Database CO323 saya dan modul Web di universitas. Tabel & formulir html digunakan untuk menampilkan data sql.
Kode Akses SQL PHP: Tautan Gulir ke bagian antarmuka web.
HTML & CSS * Kode Halaman Web Javascript: Tautan Gulir ke bawah
Halaman Web Akhir
Direkomendasikan:
Cara Menghubungkan NodeMCU ESP8266 ke Database MySQL: 7 Langkah
Cara Menghubungkan NodeMCU ESP8266 ke Database MySQL: MySQL adalah sistem manajemen basis data relasional (RDBMS) yang banyak digunakan yang menggunakan bahasa kueri terstruktur (SQL). Pada titik tertentu, Anda mungkin ingin mengunggah data sensor Arduino/NodeMCU ke database MySQL. Dalam Instruksi ini, kita akan melihat bagaimana menghubungkan
Buat Software Database Ms Access untuk Mempersiapkan Gaji di Perusahaan Anda: 6 Langkah
Buat Software Database Ms Access untuk Mempersiapkan Gaji di Perusahaan Anda: Saya akan memberikan instruksi singkat untuk membuat sistem Payroll menggunakan akses MS untuk menghasilkan gaji bulanan dan mencetak slip gaji dengan mudah dengan ini. Dengan cara ini Anda dapat menyimpan catatan detail gaji setiap bulan di bawah basis data dan dapat mengedit atau meninjau terlambat
Sistem Absensi Berbasis Sidik Jari dan RFID Menggunakan Raspberry Pi dan Database MySQL: 5 Langkah
Sistem Absensi Berbasis Sidik Jari dan RFID Menggunakan Raspberry Pi dan Database MySQL: Video Proyek Ini
Cara Mendesain Database Relasional di Microsoft Access untuk Pemula: 17 Langkah
Cara Merancang Basis Data Relasional di Microsoft Access untuk Pemula: Instruksi selanjutnya mengatur merinci cara merancang basis data relasional di Microsoft Access. Panduan ini pertama-tama akan menunjukkan cara menghubungkan dua (2) tabel dengan benar. Saya kemudian akan merinci cara membuat formulir dari hubungan baru ini, memungkinkan pengguna untuk memasukkan
NODEMCU LUA ESP8266 Terhubung ke Database MySQL: 6 Langkah
NODEMCU LUA ESP8266 Terhubung ke Database MySQL: Instruksi ini bukan untuk yang lemah hati karena menggunakan XAMPP (Apache, MySQL & PHP), HTML dan tentu saja LUA. Jika Anda yakin dalam menangani ini, baca terus! Saya menggunakan XAMPP karena dapat diatur pada pen drive atau hard drive Anda dan dikonfigurasi