Isi kandungan:

Rumah Hijau UCL - IIOT: 11 Langkah
Rumah Hijau UCL - IIOT: 11 Langkah

Video: Rumah Hijau UCL - IIOT: 11 Langkah

Video: Rumah Hijau UCL - IIOT: 11 Langkah
Video: Upin Ipin Musim 17 – Rumah Hijau Opah FULL Episod Terbaru 2024 2024, Julai
Anonim
Rumah Hijau UCL - IIOT
Rumah Hijau UCL - IIOT

Projek ini adalah lanjutan dari projek kami yang lebih awal dengan Greenhouse (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

Dalam projek ini kami menambahkan pangkalan data, di mana kami mencatat semua data kami dan kemudian memvisualisasikannya dengan simpul-merah untuk gambaran keseluruhan yang lebih besar.

Kandungan yang kami log masuk dalam pangkalan data kami adalah Kelembapan, Suhu dan kelembapan tanah, yang ditunjukkan dalam rajah yang berbeza.

Selain dataloggin, kami juga dapat mengawal profil mana yang aktif di Greenhouse dan mengawalnya dari jauh.

Kemudian kita juga dapat mengawal pam dan kipas secara manual.

Langkah 1: Panduan Pemasangan

Panduan pemasangan
Panduan pemasangan

Langkah pertama ialah memasang semua komponen yang berbeza.

Di dalam kurungan (), kami telah menyenaraikan tempat komponen tersebut dihubungkan. Sebagai contoh, Arduino disambungkan ke Raspberry Pi melalui kabel USB.

Perkakasan yang digunakan:

  • Arduino (Raspberry Pi)
  • Raspberry Pi 3 B +
  • Hygrometer tanah (Arduino)
  • Sensor DHT11 (Arduino)
  • Pam Air Submersible HG-320 (Relay)
  • Geganti 5V (Arduino)
  • Kipas komputer (Relay)
  • Bekalan kuasa 230V (Pam)

Perisian yang digunakan:

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

Mula-mula anda perlu menyambungkan komponen perkakasan, jadi ikuti panduan ini untuk membina rumah hijau: Panduan Pasang.

Maka anda perlu memasang OS Raspbian pada Raspberry Pi anda. Selepas itu anda perlu memasang Python, dan kemudian memasang perpustakaan python.

Langkah seterusnya adalah memasang Node-Red pada Raspberry Pi, dan kemudian pergi ke pengurus palet dan pasang modul yang dinyatakan sebelumnya.

Kemudian pergi ke laman web ini MySQL Server Percuma dan buat pelayan MySQL percuma.

Apabila semua ini selesai, anda sudah bersedia untuk memindahkan skrip python ke Raspberry Pi anda, mengimport skrip Node-Red dan memuat naik kod untuk Arduino.

Langkah 2: Pameran Kawalan

Image
Image

Langkah 3: Senarai Bahagian / perisian yang Digunakan dalam Projek

Kami telah menggunakan teknologi berikut untuk membuat Rumah Hijau

  • Arduino
  • Pai raspberi
  • Node-Red
  • Python
  • PHPMyAdmin

Langkah 4: Senaraikan I / 0

Gambarajah pendawaian
Gambarajah pendawaian

Langkah 5: Diagram Pendawaian

Langkah 6: Kod Arduino

Kod Arduino berfungsi dengan mencetak data, diukur oleh sensor, ke sambungan bersiri di mana ia dibaca oleh Raspberry Pi dan dipindahkan ke pangkalan data.

Arduino juga mempunyai beberapa pin input digital yang disambungkan ke Raspberry Pi yang dibaca oleh Arduino dan jika salah satu dari tiga menjadi TINGGI profil akan berubah kerana pernyataan IF.

Kami juga telah meningkatkan kod untuk menggunakan Millis dan bukannya penundaan yang membolehkan butang dan selebihnya kod dibaca sepanjang masa dan bukannya selang dengan kelewatan 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 pangkalan data MySQL. Ini memungkinkan kami menyimpan data dari sensor kami dan membuat antara muka visual untuk pengguna akhir. Untuk antara muka pengguna kami menggunakan Node-Red dengan palet Dashboard.

Tetapi sebelum kami dapat menunjukkan data sensor kami di Node-Red, kami memerlukan cara untuk memuat naik data pada pangkalan data 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 bersiri yang berasal dari Arduino. Skrip kemudian menghantar data ke pangkalan data MySQL.

Kami menggunakan dua perpustakaan, pyserial dan mysqlclient.

Jadi langkah pertama adalah memuat turun kedua perpustakaan ini:

  1. PySerial
  2. Pelanggan MySQL

PySerial digunakan untuk mengumpulkan data dari Arduino melalui komunikasi bersiri.

peranti = '/ dev / ttyUSB0'

arduino = bersiri. Siri (peranti, 9600)

Baris pertama digunakan untuk menentukan port COM kami. Pada Raspberry Pi adalah / dev / ttyUSB0, yang kami gunakan untuk Arduino. Baris kedua adalah untuk membuka port bersiri ke Arduino. Kami hanya menentukan port COM dan pada kelajuan apa sambungan berjalan.

Selebihnya kod berjalan dalam beberapa saat.

Seterusnya kami menggunakan beberapa blok Try and Except. Mula-mula kod tersebut cuba dijalankan di dalam blok Cuba, jika gagal maka jalankan blok Kecuali. Tetapi jika blok Cuba berjalan dengan baik, ia tidak menjalankan blok Kecuali, ia hanya menjalankan kod yang lain.

Jadi di dalam blok Cuba kita mempunyai kod yang akan membaca komunikasi bersiri dan kemudian menghantarnya ke pangkalan data MySQL kami.

hygrolist = arduino.readlines (1)

templist = arduino.readlines (2) senarai humid = arduino.readlines (3)

Jadi kod di atas adalah untuk membaca baris dalam komunikasi bersiri. Nombor di akhir kod menentukan garis yang telah dibaca dalam siri. Jadi garis-garis ini dikategorikan dalam pemboleh ubah yang berbeza.

Semasa 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")

Garis ini adalah untuk menyambung ke pangkalan data MySQL kami. Ini menentukan pelayan, nama pengguna, kata laluan dan pangkalan data mana yang harus disambungkan ke dalam pelayan. Di sini anda harus menentukan sambungan ke MySQL DB anda.

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

Jadi di sini kami mengambil sambungan DB kami dan membuat pertanyaan SQL. Pertanyaan mengatakan bahawa nilai harus dimasukkan ke dalam tabel "TempHumid" dan kemudian ke lajur "temp", "lembab" dan "hygro". Bahagian terakhir “(% s,% s,% s)” adalah pemformatan string dan digunakan untuk memberikan pangkalan data format yang dapat dibaca.

Dan semua tindakan ini dimasukkan ke dalam loop sementara, agar kami terus mendapatkan data yang dihantar ke pelayan MySQL.

Sekiranya anda ingin melihat semua kodnya, muat turun skrip python (TempHumid.py).

Langkah 9: MySQL

MySQL
MySQL
MySQL
MySQL

Untuk pelayan MySQL, kami menggunakan perkhidmatan percuma di www.freemysqlhosting.net. Kami mungkin membuat pelayan tempatan di Raspberry Pi, tetapi kami menggunakan perkhidmatan percuma untuk menjadikannya terhubung sepenuhnya ke awan / internet.

Untuk mengakses MySQL anda, anda perlu pergi ke phpmyadmin.co dan log masuk dengan bukti kelayakan dari akaun freemysqlhosting anda.

Apabila anda berada di dalam, anda harus membuat jadual yang disebut "TempHumid", di dalam jadual ini anda harus membuat 4 lajur yang disebut, "ID", "temp", "lembab" dan "hygro". Lajur pertama (ID) anda harus menandakan kotak A_I (Kenaikan Auto). Ini supaya lajur ID memberikan setiap kumpulan data ID. Semua lajur berikut harus ditetapkan sebagai INT (bilangan bulat), dan menetapkan nilai standard ke NULL.

Langkah 10: Node-Red

Node-Red
Node-Red
Node-Red
Node-Red
Node-Red
Node-Red

Dalam projek kami, kami menggunakan Node-Red untuk membuat antara muka grafik. Node-Red berjalan di Raspberry Pi dan mengumpulkan data dari pangkalan data MySQL kami dan menunjukkan data ini dengan alat pengukur berbentuk donat dan grafik, sehingga pengguna akhir dapat memantau data. Perkara yang bijak mengenai Node-Red adalah bahawa ia dapat dilihat di mana-mana peranti, yang bermaksud bahawa laman web akan diubah saiznya untuk peranti tertentu yang melihat kandungannya.

Untuk memasang pengaturcaraan Node-Red kami, lihat Langkah 1 dan muat turun dokumen yang dipanggil "Node-Red.docx". Kemudian salin dan tampal teks ke Node-Red melalui fungsi import di sudut kanan atas.

Selepas itu ubah tetapan DB untuk MySQL DB anda.

Disyorkan: