Daftar Isi:

Proyek Arduino: Kontrol Elektronik Melalui Internet Menggunakan Nodejs + Database SQL & Situs Web.: 6 Langkah
Proyek Arduino: Kontrol Elektronik Melalui Internet Menggunakan Nodejs + Database SQL & Situs Web.: 6 Langkah

Video: Proyek Arduino: Kontrol Elektronik Melalui Internet Menggunakan Nodejs + Database SQL & Situs Web.: 6 Langkah

Video: Proyek Arduino: Kontrol Elektronik Melalui Internet Menggunakan Nodejs + Database SQL & Situs Web.: 6 Langkah
Video: Cara koneksi NodeMCU dengan database mysql dan PHP | Tutorial Pemrograman Arduino dan IoT 2024, November
Anonim
Proyek Arduino: Kontrol Elektronik Melalui Internet Menggunakan Nodejs + Database SQL & Situs Web
Proyek Arduino: Kontrol Elektronik Melalui Internet Menggunakan Nodejs + Database SQL & Situs Web
Proyek Arduino: Kontrol Elektronik Melalui Internet Menggunakan Nodejs + Database SQL & Situs Web
Proyek Arduino: Kontrol Elektronik Melalui Internet Menggunakan Nodejs + Database SQL & Situs Web
Proyek Arduino: Kontrol Elektronik Melalui Internet Menggunakan Nodejs + Database SQL & Situs Web
Proyek Arduino: Kontrol Elektronik Melalui Internet Menggunakan Nodejs + Database SQL & Situs Web

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

Logika Perangkat Lunak: Arsitektur Sistem
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

Langkah 1: Pengkabelan Perangkat Keras
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

Langkah 4: Antarmuka Web
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: