Isi kandungan:

Laman Utama_X: 5 Langkah
Laman Utama_X: 5 Langkah

Video: Laman Utama_X: 5 Langkah

Video: Laman Utama_X: 5 Langkah
Video: K-CLIQUE | SAH TU SATU (OFFICIAL MV) 2024, Julai
Anonim
Laman Utama_X
Laman Utama_X

Saya pelajar di Howest Kortrijk yang belajar Teknologi Media dan Komunikasi Baru (NMCT).

Kita semua harus membuat projek yang berpusat di sekitar raspberry dan / atau Arduino. Kami terpaksa menggunakan sensor dan pangkalan data untuk menunjukkan data di laman web, dan ketika itulah saya muncul idea untuk membuat rumah pintar mini.

Dengan rumah pintar, anda akan dapat melihat semua bacaan sensor di laman web.

Dalam arahan ini saya akan membimbing anda melalui setiap langkah supaya anda dapat membuat projek ini sendiri.

Langkah 1: Bahan: Apa Yang Anda Perlu

  • Pai raspberi
  • DHT22
  • Grove - Sensor kualiti udara
  • Grove - Sensor Gas (MQ2)
  • Papan roti
  • Raspberry Pi T Cobbler
  • Wayar Pelompat Lelaki / Perempuan
  • LED 5mm
  • Perintang
  • Kayu dan alatan
  • Motor Servo
  • GrovePi +

Anda boleh membeli barang-barang ini secara dalam talian (Ali express, amazon, elektronik kiwi…) atau di kedai-kedai tempatan anda.

Senarai terperinci bahagian dengan pautan ke kedai diberikan di bawah di BOM.

Langkah 2: Pendawaian

Pendawaian
Pendawaian
Pendawaian
Pendawaian

Saya menggunakan pendawaian Fritzing untuk mendapatkan gambaran keseluruhan bagaimana pendawaian saya harus dilakukan. Saya sendiri menggunakan GrovePi + untuk 2 sensor saya. Sekiranya anda merancang untuk membuat ini tanpa GrovePi + ikuti skema Fritzing. Sensor tidak berfungsi untuk anda, cuba gunakan pin yang berbeza.

Anda boleh mendapatkan fail Fritzing di bawah.

Langkah 3: Pangkalan Data Menggunakan MySQL

Pangkalan Data Menggunakan MySQL
Pangkalan Data Menggunakan MySQL

Salah satu tugas terpenting yang harus kami laksanakan adalah hubungan dengan pangkalan data MySQL.

Setiap kali sensor mendapat bacaan atau lampu menyala, anda akan melihat perubahan ini dalam pangkalan data.

Pangkalan data kemudian menghantar data ini ke laman web sehingga pengguna dapat melihatnya di sana juga.

Di bawah ini anda dapat mencari fail.xml saya di mana anda mempunyai gambaran keseluruhan bagaimana pangkalan data berfungsi, tetapi pertama anda harus memasang MySQL dan termos pada Raspberry Pi.

Pengekodan sensor berlaku melalui pycharm jadi pastikan juga dipasang (di komputer anda).

Mula-mula anda perlu memeriksa kemas kini dan memasang pakej, seperti ini:

sudo apt-get update && sudo apt-get upgrade

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Sekarang kita akan menggunakan persekitaran maya:

me @ my-rpi: ~ $ python3 -m pip install - upgrade pip setuptools wheel virtualenvme @ my-rpi: ~ $ mkdir project1 && cd project1 me @ my-rpi: ~ / project1 $ python3 -m venv --system- pakej laman web env me @ my-rpi: ~ / project1 $ source env / bin / activate (env) me @ my-rpi: ~ / project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Ia harus memberitahu anda bahawa mariadb.service aktif.

Sekarang, dalam pycharm pergi ke VCS> Import dari Version Control> GitHub en clone

Kemudian konfigurasikan konfigurasi penyebaran untuk direktori yang baru anda buat, mis. / rumah / saya / projek1.

Setelah ini, pergi ke tetapan jurubahasa dan konfigurasikan persekitaran maya yang baru anda buat, mis. / rumah / saya / projek / env / bin / python. Pemetaan laluan perlu diisi juga.

Sekiranya anda melakukan semua ini, pangkalan data sudah semestinya berjalan.

sudo systemctl status mysql

Sekarang kita perlu membuat pengguna untuk pangkalan data kita, seperti:

sudo mariadb

BUAT PENGGUNA 'project-admin' @ 'localhost' DIKENALI OLEH 'adminpassword'; BUAT PENGGUNA 'project-web' @ 'localhost' DIKENALI OLEH 'webpassword'; BUAT PENGGUNA 'project-sensor' @ 'localhost' DIKENALI OLEH 'sensorpassword'; BUAT projek DATABASE;

HANTAR SEMUA KEISTIMEWAAN PADA projek. * Kepada 'project-admin' @ 'localhost' DENGAN PILIHAN GRANT; GRANT SELECT, INSERT, UPDATE, DELETE ON project. * KE 'project-web' @ 'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project. * KE 'project-sensor' @ 'localhost'; KEISTIMEWAAN FLUSH;

Sekarang untuk melihat pangkalan data kami di pycharm kita harus membuat sambungan.

Kita dapat melakukannya dengan pergi ke Lihat> Alat Windows> Pangkalan Data dan mengklik butang hijau "tambah".

Sumber Data> MySQL dan klik (jika ada) pada butang Muat turun pemacu yang muncul.

Kemudian pergi ke SSH / SSL dan periksa SSH. Isi host / pengguna / kata laluan untuk pi dan gunakan port 22 jika belum diisi.

Sekiranya anda mahu pycharm mengingat kata laluan anda, tandakan kotak pilihan "Ingat kata laluan".

Pada tab "Umum", isi localhost di host, projek di Pangkalan Data dan gunakan admin-projek dengan kata laluan untuk dapat menguji sambungannya.

Untuk membuat pangkalan data dapat digunakan, anda perlu menjalankan.sql yang saya letakkan di bawah. Cuba gunakan pilihan import, jika anda tidak dapat mengimport dumpfile, anda harus menambahkan jadual secara manual.

Selepas ini selesai, anda perlu mencari direktori conf dengan dua fail perkhidmatan. Di sana ubah setiap seb yang anda dapati dengan nama pengguna yang anda gunakan pada pi anda. Kumpulan juga perlu menggunakan data www.

Langkah seterusnya adalah memulakan perkhidmatan ini pada pi anda, seperti:

sudo cp conf / project - *. service / etc / systemd / system /

sudo systemctl daemon-tambah nilai

sudo systemctl memulakan projek- *

projek status sudo systemctl- *

Anda mesti melihat dua perkhidmatan aktif apabila semuanya berjalan mengikut rancangan.

Langkah terakhir adalah mengaktifkan nginx.

Periksa dahulu apache2 pada pi anda, jika anda memasangnya, hapus atau lumpuhkannya.

Dalam fail nginx anda harus menukar uwsgi_pass terlebih dahulu, kemudian jalankan perintah ini.

sudo cp conf / nginx / etc / nginx / laman web-tersedia / projek

sudo rm / etc / nginx / sites-enabled / default

sudo ln -s / etc / nginx / sites-available / project1 / etc / nginx / sites-enabled / projek

sudo systemctl mulakan semula nginx.service

sudo systemctl status nginx.service

Nginx harus aktif dan berjalan. Sekiranya semuanya betul, anda kini boleh melayari laman web anda. Anda akan melihat "Hello world" pada mulanya tetapi anda masih perlu menukar kandungan fail tersebut dengan kod saya di bawah.

Anda boleh mengaktifkan perkhidmatan sehingga mereka akan berjalan secara automatik semasa pi bermula.

Semasa anda melakukan ini, pastikan anda meletakkan sekurang-kurangnya 1 rumah dengan alamat dalam pangkalan data. Anda boleh melakukan ini dengan memasukkan mudah ke dalam.

Langkah 4: Pengekodan

Pengekodan
Pengekodan
Pengekodan
Pengekodan

Anda boleh memuat turun kod melalui Github:

github.com/NMCT-S2-Project-I/projek-i-Tib…

Kod untuk sensor dimasukkan dalam fail sensor.py.

Jangan lupa untuk menukar nama saya menjadi nama anda (atau pengguna daripada yang anda gunakan pada pi anda) dalam fail perkhidmatan supaya mereka dapat berjalan dengan baik dan meletakkan kod saya dalam fail yang sudah ada di Pycharm anda.

Langkah 5: Perumahan

Perumahan
Perumahan
Perumahan
Perumahan
Perumahan
Perumahan
Perumahan
Perumahan

Saya membuat gambar ringkas bagaimana saya mahukan rumah saya, tetapi rumah anda boleh kelihatan sama sekali berbeza. Anda hanya perlu memastikan anda mempunyai keseluruhan supaya servo dapat membuka dan menutup tingkap.

Saya menggunakan gerudi kecil dan gergaji untuk memotong kayu. Saya juga memastikan bahawa dindingnya cukup tebal sehingga saya dapat meletakkan servo saya di dalamnya.

Apabila anda selesai dengan reka bentuk anda dan servo sudah siap, anda hanya perlu menyambungkan sensor dan meletakkan pi di dalam rumah dan anda sudah bersedia.

Seperti yang saya nyatakan sebelum rumah anda kelihatan sama seperti rumah saya, anda hanya perlu memberi ruang untuk servo dan tingkap.

Akhirnya anda selesai dengan projek itu. Saya harap panduan ini cukup jelas sehingga anda juga dapat membuat smarthouse yang hebat seperti saya.

Semoga berjaya.

Disyorkan: