Daftar Isi:

UCL - Rumah Kaca IIOT: 11 Langkah
UCL - Rumah Kaca IIOT: 11 Langkah

Video: UCL - Rumah Kaca IIOT: 11 Langkah

Video: UCL - Rumah Kaca IIOT: 11 Langkah
Video: SULTAN MEDAN INDRAKENZ NAIK JET PRIBADI KE PULAU PRIBADI!! 2024, Juli
Anonim
UCL - Rumah Kaca IIOT
UCL - Rumah Kaca IIOT

Proyek ini merupakan perpanjangan dari proyek kami sebelumnya dengan Rumah Kaca (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

Dalam proyek ini kami menambahkan database, di mana kami mencatat semua data kami dan kemudian memvisualisasikannya dengan node-red untuk gambaran yang lebih besar.

Konten yang kami log di database kami adalah Kelembaban, Suhu dan kelembaban tanah, yang ditunjukkan dalam diagram yang berbeda.

Selain dataloggin, kita juga dapat mengontrol profil mana yang aktif di Greenhouse dan mengontrolnya dari jarak jauh.

Kemudian kita juga bisa mengontrol pompa dan kipas secara manual.

Langkah 1: Panduan Instalasi

Petunjuk pemasangan
Petunjuk pemasangan

Langkah pertama adalah menginstal semua komponen yang berbeda.

Di dalam tanda kurung (), kami telah mencantumkan di mana komponen terhubung. Jadi misalnya Arduino terhubung ke Raspberry Pi melalui kabel USB.

Perangkat keras yang digunakan:

  • Arduino (Raspberry Pi)
  • Raspberry Pi 3 B+
  • Higrometer tanah (Arduino)
  • Sensor DHT11 (Arduino)
  • Pompa Air Submersible HG-320 (Relay)
  • Relai 5V (Arduino)
  • Kipas komputer (Relay)
  • Catu daya 230V (Pompa)

Perangkat lunak yang digunakan:

  • Raspbian (OS untuk Raspberry Pi)
  • Arduino IDE
  • Python (Raspberry Pi)- PySerial- MySQLclient
  • Node-Red (Raspberry Pi)- Pythonshell- Summariser- MySQL- Dashboard
  • Server MySQL (freemysqlhosting.net)

Pertama, Anda harus menghubungkan komponen perangkat keras, jadi ikuti panduan ini untuk membangun rumah kaca: Panduan Instal.

Kemudian Anda harus menginstal OS Raspbian di Raspberry Pi Anda. Setelah itu Anda harus menginstal Python, dan kemudian menginstal pustaka python.

Langkah selanjutnya adalah menginstal Node-Red pada Raspberry Pi, lalu arahkan ke manajer palet dan instal modul yang disebutkan sebelumnya.

Lalu buka situs ini Server MySQL Gratis dan buat server MySQL gratis.

Ketika semua ini selesai, Anda siap untuk mentransfer skrip python ke Raspberry Pi Anda, mengimpor skrip Node-Red dan mengunggah kode untuk Arduino.

Langkah 2: Etalase Kontrol

Image
Image

Langkah 3: Daftar Bagian/perangkat lunak yang Digunakan dalam Proyek

Kami telah menggunakan teknologi berikut untuk membuat Rumah Kaca

  • Arduino
  • Raspberry Pi
  • Node-Merah
  • Python
  • PHPMyAdmin

Langkah 4: Daftar I/0

Diagram pengkabelan
Diagram pengkabelan

Langkah 5: Diagram Pengkabelan

Langkah 6: Kode Arduino

Kode Arduino bekerja dengan mencetak data yang diukur oleh sensor ke koneksi serial yang dibaca oleh Raspberry Pi dan ditransfer ke database.

Arduino juga memiliki beberapa pin input digital yang terhubung ke Raspberry Pi yang dibaca oleh Arduino dan jika salah satu dari ketiganya menjadi TINGGI profilnya akan berubah karena pernyataan IF.

Kami juga telah memutakhirkan kode untuk menggunakan Millis alih-alih penundaan yang memungkinkan buttoms dan sisa kode untuk dibaca sepanjang waktu alih-alih interval oleh penundaan lama.

Langkah 7: Raspberry Pi 3 B+

Raspberry Pi 3 B+
Raspberry Pi 3 B+

Kami menggunakan Raspberry Pi 3 B+ untuk menghubungkan Arduino kami dengan internet dan database MySQL. Ini memungkinkan kami untuk menyimpan data dari sensor kami dan membuat antarmuka visual untuk pengguna akhir. Untuk antarmuka pengguna kami menggunakan Node-Red dengan palet Dashboard.

Tetapi sebelum kami dapat menampilkan data sensor kami di Node-Red, kami membutuhkan cara untuk mengunggah data ke database MySQL, dan untuk itu kami membuat skrip Python yang akan berjalan di Raspberry Pi kami.

Langkah 8: Python

Python
Python

Skrip Python digunakan untuk menerima data dari komunikasi serial yang berasal dari Arduino. Script kemudian mengirimkan data ke database MySQL.

Kami menggunakan dua perpustakaan, pyserial dan mysqlclient.

Jadi langkah pertama adalah mengunduh dua perpustakaan ini:

  1. PySerial
  2. klien MySQL

PySerial digunakan untuk mengumpulkan data dari Arduino melalui komunikasi serial.

perangkat = '/dev/ttyUSB0'

arduino = serial. Serial(perangkat, 9600)

Baris pertama digunakan untuk mendefinisikan COM-port kami. Di Raspberry Pi adalah /dev/ttyUSB0, yang kami gunakan untuk Arduino. Baris kedua adalah untuk membuka port serial ke Arduino. Kami hanya menentukan port COM mana dan pada kecepatan apa koneksi berjalan.

Sisa kode berjalan dalam loop sementara.

Selanjutnya kita menggunakan beberapa blok Coba dan Kecuali. Pertama kode mencoba dijalankan di dalam blok Coba, jika gagal maka ia menjalankan blok Kecuali. Tetapi jika blok Coba berjalan dengan baik, itu tidak menjalankan blok Kecuali, itu hanya menjalankan sisa kode.

Jadi di dalam blok Try kami memiliki kode yang akan membaca komunikasi serial dan kemudian mengirimkannya ke database MySQL kami.

hygrolist = arduino.readlines(1)

templist = arduino.readlines(2)humidlist = arduino.readlines(3)

Jadi kode di atas adalah untuk membaca baris dalam komunikasi serial. Angka di akhir kode mendefinisikan baris yang telah dibaca dalam serial. Jadi garis-garis ini dikategorikan dalam variabel yang berbeda.

Ketika data dari Arduino diterima, kami menggunakan modul mysqlclient untuk mengirim data ke Server MySQL kami.

db = _mysql.connect(host="sql7.freemysqlhosting.net", pengguna="sql7256552", passwd="3ebtbP8FQ2", db="sql7256552")

Baris ini untuk menghubungkan ke database MySQL kami. Ini menentukan server, nama pengguna, kata sandi, dan basis data mana yang harus terhubung di dalam server. Di sini Anda harus menentukan koneksi ke DB MySQL Anda.

db.query("INSERTINTO `TempHumid`(`temp`, `humid`, `hygro`) NILAI (%s, %s, %s)" % (suhu, lembab, higro))

Jadi di sini kami mengambil koneksi DB kami dan membuat kueri SQL. Kueri mengatakan bahwa nilai harus dimasukkan ke dalam tabel "TempHumid" dan kemudian ke dalam kolom "temp", "humid" dan "hygro". Bagian terakhir “(%s, %s, %s)” adalah format string dan digunakan untuk memberikan database format yang dapat dibaca.

Dan semua tindakan ini dimasukkan ke dalam loop sementara, sehingga kami terus mendapatkan data yang dikirim ke server MySQL.

Jika Anda ingin melihat semua kode, unduh skrip python (TempHumid.py).

Langkah 9: MySQL

MySQL
MySQL
MySQL
MySQL

Untuk server MySQL, kami menggunakan layanan gratis di www.freemysqlhosting.net. Kami dapat membuat server secara lokal di Raspberry Pi, tetapi kami menggunakan layanan gratis untuk membuatnya sepenuhnya terhubung ke cloud/internet.

Untuk mengakses MySQL Anda, Anda harus pergi ke phpmyadmin.co dan login dengan kredensial dari akun freemysqlhosting Anda.

Ketika Anda berada di dalam, Anda harus membuat tabel yang disebut "TempHumid", di dalam tabel ini Anda harus membuat 4 kolom yang disebut, "ID", "temp", "humid" dan "hygro". Kolom pertama (ID) Anda harus mencentang kotak A_I (Auto Increment). Ini agar kolom ID memberi setiap dataset sebuah ID. Semua kolom berikut harus ditetapkan sebagai INT (bilangan bulat), dan menetapkan nilai standar ke NULL.

Langkah 10: Node-Merah

Node-Merah
Node-Merah
Node-Merah
Node-Merah
Node-Merah
Node-Merah

Dalam proyek kami, kami menggunakan Node-Red untuk membuat antarmuka grafis. Node-Red berjalan di Raspberry Pi dan mengumpulkan data dari database MySQL kami dan menampilkan data ini dengan pengukur berbentuk donat dan grafik grafik, sehingga pengguna akhir dapat memantau data. Hal cerdas tentang Node-Red adalah dapat dilihat di perangkat apa pun, yang berarti situs akan diubah ukurannya untuk perangkat tertentu yang melihat konten.

Untuk menginstal pemrograman Node-Red kami, lihat Langkah 1 dan unduh dokumen yang disebut "Node-Red.docx". Kemudian salin dan tempel teks ke Node-Red melalui fungsi impor di sudut kanan atas.

Setelah itu ubah pengaturan DB untuk DB MySQL Anda.

Direkomendasikan: