Агуулгын хүснэгт:

TheAir - Хийн мэдрэгч төсөл: 10 алхам
TheAir - Хийн мэдрэгч төсөл: 10 алхам

Видео: TheAir - Хийн мэдрэгч төсөл: 10 алхам

Видео: TheAir - Хийн мэдрэгч төсөл: 10 алхам
Видео: Как принять квартиру у застройщика? Ремонт в НОВОСТРОЙКЕ от А до Я. #1 2024, Долдугаар сарын
Anonim
TheAir - Хийн мэдрэгч төсөл
TheAir - Хийн мэдрэгч төсөл

Нүүрстөрөгчийн дутуу исэл ба нүүрстөрөгчийн давхар исэл, үүнийг CO ба CO2 гэж нэрлэдэг. Хаалттай өрөөнд өндөр концентрацитай байх үед өнгөгүй, үнэргүй, амтгүй, илэн далангүй аюултай хий. Жишээлбэл, хэрэв та оюутны өрөөнд муу тусгаарлагдсан, агаарын урсгал муу, ямар нэг шалтгаанаар талх шарах талх шарах талхнаас хачин чимээ гаргадаг гэж хэлээрэй. Дараа нь та эдгээр хийтэй холбоо барьж магадгүй бөгөөд ийм зүйл тохиолдвол энэ нь зөвхөн бага зэргийн толгой өвдөхөд л хүрнэ гэж найдаж байна.

Тиймээс би энэ төслийг гаргахаар шийдсэн. Миний санаа бол энгийн, фенүүдээ ашиглан агаарын урсгалыг хий. Агаар сайн орж, муу агаар гарч байна. Нэмэлт хэрэгцээг хангахын тулд би нэмэлт температур мэдрэгч, гараар идэвхжүүлэх фенүүдийн товчлуур, статистик мэдээллийг үзэх,/эсвэл фенүүдээ компьютерээс идэвхжүүлэх дуртай хүмүүст зориулсан вэбсайтыг нэмж оруулав.

Оюутан, эцэг эх, ганц бие хүн эсвэл амьд амьтан. Энэ бол өөрийн байшингийн тав тухтай орчинд амьдрахаас зайлсхийхийг хүсдэг зүйл юм. Энэ нь амьдралаа жаахан хөнгөвчлөх дуртай хүмүүст тусалдаг.

Хангамж

  • Raspberry Pi 3+
  • Мини-USB цэнэглэгч 5V/2.5A
  • Micro-sd карт
  • Мэдрэгч

    • MQ-7 (CO)
    • MQ-135 (CO2)
    • DS18B20 (температур)
  • 2 x 12V тогтмол гүйдлийн сэнс
  • 2 x 2n2222 транзистор
  • LCD 16*2 дэлгэцтэй
  • Дарах товчлуур
  • MCP3008
  • Логигийн түвшний хөрвүүлэгч
  • Ethernet кабель (тохируулгын шалтгаанаар)

Алхам 1: Raspberry Pi -ийн тохиргоо

Raspberry Pi -ийн тохиргоо
Raspberry Pi -ийн тохиргоо
Raspberry Pi -ийн тохиргоо
Raspberry Pi -ийн тохиргоо

Rpi -тэй ажиллахаас өмнө бидэнд зарим програм хангамж хэрэгтэй болно.

  • WinSCP эсвэл FilleZilla (хэрэв та компьютерээсээ файлыг Rpi руу шилжүүлэхийг хүсвэл заавал биш)
  • Win32 диск эсвэл Etcher (танд илүү их таалагддаг)
  • Шаваас эсвэл MobaXterm (танд илүү их таалагддаг)
  • Ширээний компьютер бүхий Raspbian зураг

Эхлэхээсээ өмнө би энэ хичээлийг хийхдээ програмыг нөгөөгөөсөө илүү сонгохдоо үүнийг санал болгож байна гэсэн үг биш гэдгийг дурдахыг хүсч байна. Жишээлбэл, би etcher ашиглах дуртай, учир нь хэрэглэгчдэд илүү ээлтэй боловч Win32 дээр нөөцлөлт хийх сонголт байдаг. Одоо энэ миний системд байхгүй байна, эхэлцгээе.

Хэрэв танд wifi сүлжээнд холбогдсон Rpi байгаа бол 3 -р алхам руу орно уу.

Эхлээд бид Etcher -ийг ашиглан Raspbian зургийг таны sd карт дээр байрлуулах болно. Одоо бид sd картыг сугалж авахаасаа өмнө cmdline.txt файл дотор байгаа зарим зүйлийг "зураг" дээрээс өөрчлөх болно.. Txt файлыг нээнэ үү -> Энэ мөрийг "ip = 169.254.10.1" (ишлэлгүй) мөрийн төгсгөлд нэмнэ үү (бүгд 1 мөрөнд байна) -> Файлыг хадгалах

Хоёрдугаарт, ачаалах хэсэгт "ssh" нэртэй хоосон фолдер хий (ишлэлгүйгээр).

Үүний дараа та Microsd -ийг аюулгүйгээр гаргаж аваад Rpi -д оруулж болно.

Хатуу кодлогдсон статик IP -ийн шалтгаан нь Rpi -тэй холбогдоход хялбар болгох явдал юм. Хэрэв ямар нэг шалтгааны улмаас Rpi -д DHCP -тэй ip байхгүй бол та статик ip -ийг хялбархан ашиглаж болно.

Алхам 2: Холболт хийж, Rpi утасгүй холболтыг дотоод сүлжээндээ холбоно уу

Холболт хийх, дотоод сүлжээндээ Rpi утасгүй холбох
Холболт хийх, дотоод сүлжээндээ Rpi утасгүй холбох
Холболт хийх, дотоод сүлжээндээ Rpi утасгүй холбох
Холболт хийх, дотоод сүлжээндээ Rpi утасгүй холбох
Холболт хийх, дотоод сүлжээндээ Rpi утасгүй холбох
Холболт хийх, дотоод сүлжээндээ Rpi утасгүй холбох
Холболт хийх, дотоод сүлжээндээ Rpi утасгүй холбох
Холболт хийх, дотоод сүлжээндээ Rpi утасгүй холбох

Бид Rpi -> Ethernet кабелийг компьютер болон Rpi хооронд холбоно.

  1. Putty -ийг эхлүүлж үүнийг бөглөнө үү.

    • Хостын нэр (эсвэл IP хаяг): 169.254.10.1
    • Боомт: 22
  2. Терминал гарч ирэх бөгөөд та анхдагч хэрэглэгчийн нэр, нууц үгээ оруулна уу.

    • Хэрэглэгчийн нэр: pi
    • Нууц үг: бөөрөлзгөнө

Одоо бид орон нутгийн хэмжээнд rpi -тэй холбогдсон тул Rpi -ийг таны wifi -тай холбохыг хүсч байна.

  1. Нэмэлт: "sudo raspi-config" гэж бичнэ үү.
  2. Энд та pi хэрэглэгчийн нууц үгийг өөрчлөх шаардлагатай болно (аюулгүй байдлын үүднээс)
  3. Үүний дараа Локалчлалын сонголтууд -> Цаг өөрчлөх (зөвийг нь сонгох) -> Дараа нь Wifi Улс руу очно уу -> улсыг сонгоно уу.
  4. Raspi-config-ийг хааж, дахин ачаална уу.
  5. Нэвтэрсэн үедээ өөрийгөө root хэрэглэгч болгох -> sudo -i
  6. Сүлжээгээ Rpi -д нэмэхийн тулд энэ тушаалыг бичнэ үү (жагсаалтын доорх код)

    • нууц үг = "нууц үг" (ишлэл бүхий)
    • Нэрийн сүлжээ = "SSID"
    • Давхар >> ашиглахаа мартуузай! Чухал!

echo "нууц үг" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

Одоо дахин дахин ачаална уу

Дахин холбогдохдоо ip -ээ шалгаад дараах зүйлийг бичнэ үү.

ifconfig

inet -ийн хажууд байгаа wlan0 -г шалгана уу.

Одоо бид интернет холболттой болсон тул "хурдан" шинэчлэлт хийцгээе.

sudo apt update

sudo apt dist -upgrade -y

Үүнд хэсэг хугацаа шаардагдаж магадгүй.

Алхам 3: DS18B20 мэдрэгч (температур)-1 утастай

Мэдрэгч DS18B20 (температур)-1 утастай
Мэдрэгч DS18B20 (температур)-1 утастай
Мэдрэгч DS18B20 (температур)-1 утастай
Мэдрэгч DS18B20 (температур)-1 утастай

Төсөл болгонд хийх ёстой онцгой зүйл байх болно, эс бөгөөс энэ нь ажиллахгүй болно.

Энэ удаад бид DS18B20 температур мэдрэгчтэй бөгөөд 1 утастай бөгөөд яагаад гэдгийг нь би тайлбарлахгүй, гэхдээ яаж үүнийг хэрхэн яаж хийхийг тайлбарлах болно.

Үүний тулд бид сайхан цэнхэр дэлгэц болох Rpi дээрх raspi-тохиргоо руу буцах ёстой.

  1. Интерфэйсийн сонголтууд руу очно уу
  2. 1-утсыг сонгоод идэвхжүүлэхийг сонгоно уу.

Дууссан…

Тоголсон юм.

Одоо бид /boot/config.txt -ийг тохируулах хэрэгтэй болно

sudo нано /boot/config.txt

Энэ мөрийг доод хэсэгт нэмнэ үү.

# Нэг утсыг идэвхжүүлэх

dtoverlay = w1-gpio

Одоо sudo энэ зүйлийг дахин ачаалж, одоо бид дууслаа.

Ажиллаж байгаа эсэхийг шалгахын тулд мэдрэгчийг Rpi руу холбоод терминал руу буцаж очоод энэ кодыг бичнэ үү (Температур мэдрэгчийг хэрхэн холбох талаар дараагийн алхамыг үзнэ үү).

cd/sys/bus/w1/devices/w1_bus_master1

ls

Та зүүн дээд талд хар хөх өнгийн тоо, үсэг бүхий зүйлийг харах ёстой бөгөөд github кодтой ажиллахдаа дараа нь энэ мэдээллийг бичихээ мартуузай.

Хэрэв ямар нэг шалтгаанаар энэ нь ажиллахгүй бол илүү гүнзгийрсэн холбоосыг шалгана уу.

Алхам 4: MCP3008 - Аналог мэдрэгч

MCP3008 - Аналог мэдрэгч
MCP3008 - Аналог мэдрэгч
MCP3008 - Аналог мэдрэгч
MCP3008 - Аналог мэдрэгч

Бид температур мэдрэгчийн хувьд өөрчлөлт хийснийхээ дараа бусад мэдрэгчүүдэд аналог өгөгдлийг унших шаардлагатай байдаг тул зарим өөрчлөлтийг хийх шаардлагатай болдог. Энд MCP3008 хэрэг болоход бид SPI интерфэйсийг өөрчлөх хэрэгтэй болно.

sudo raspi-config

Interfacing Options -> SPI сонгох -> идэвхжүүлэх хэсэгт очно уу.

Дараа нь дуусгах.

Алхам 5: Техник хангамж

Бид Rpi -ийг бүрэн гүйцэд хийгээгүй байгаа боловч тоног төхөөрөмжийг барьж, нийлүүлж эхлэхэд хангалттай юм.

Rpi -ийг дэлбэлэхгүй байхын тулд барилга барихдаа холболтоо сайтар шалгаж үзээрэй.

Түүнчлэн, схемд бид нэг бүрэлдэхүүн хэсгээс 1 -ээс илүүтэй ажиллах боловч зарим бүрэлдэхүүн хэсгүүд зөвхөн нэг удаа байгааг анзаарах болно. Энэ нь 1 бүрэлдэхүүн хэсгийг бүтээх үйл явцыг давтах ёстой гэсэн үг юм. 1 жижиг үл хамаарах зүйл байдаг, mq-x мэдрэгч нь нэмэлт түвшний хөрвүүлэгч эсвэл MCP3008 шаардлагагүй. Түвшин хөрвүүлэгч болон MCP3008 дээр нэмэлт ногоон кабель (pdf форматаар) нэмээрэй.

Нэмэлт засвар: Фенүүд транзисторыг шилжүүлэгч болгон ашиглах шаардлагатай. Би 1 сэнсний хувьд 2n2222A транзистор ашигладаг, учир нь 2 сэнс нь хүнд ачаатай байж магадгүй юм.

Хэрэв танд илүү том гүйдэл дамжуулах чадвартай транзистор байгаа бол энэ алхмын сүүлийн хэсгийг алгасаарай.

Хэрэв танд над шиг хүн байхгүй бол та үүнийг 1 сэнс = 1 транзистор, 2 сэнс = 2 транзистор гэх мэтээр хийх хэрэгтэй болно (фен бүр pdf дээрх шиг өөрийн транзистор + диод).

Та мөн дараа нь 7 -р алхам: Git код дээр backend_project дахь app.py -д зарим код оруулах шаардлагатай болно.

Алхам 6: Mariadb мэдээллийн бааз үүсгэх

Мариадб мэдээллийн санг бий болгох
Мариадб мэдээллийн санг бий болгох

Гарчигнаас харахад бид мэдрэгчийнхээ өгөгдлийг хадгалах газартай болохын тулд мэдээллийн бааз бий болгох гэж байна.

Юуны өмнө Mariadb -ийг Rpi дээр татаж аваарай.

sudo apt-get суулгах mariadb-сервер

Суулгасны дараа үүнийг ашиглацгаая.

mysql -u root

Нууц үг хоосон тул бичих зүйл алга. Enter дарна уу.

Одоо хэрэглэгч үүсгэе.

USER 'user'@'%' IDENTIFIED BY 'userdb' үүсгэ;

БҮХ НЭР ХУВИЙГ АВАХ *. * GRANT OPTION -тай 'user'@'%' - д өгөх;

FLUSH давуу эрх;

Ctrl + C дарж гараад үйлчилгээг хурдан дахин эхлүүлнэ үү.

sudo үйлчилгээ mysql -ийг дахин эхлүүлнэ үү

Хэрэглэгчийн нэрээр нэвтэрнэ үү: хэрэглэгч & нууц үг: userdb:

mysql -u хэрэглэгч -p

Одоо мэдээллийн бааз үүсгэх цаг болжээ.

Өгөгдлийн бааз үүсгэх project_db DEFAULT CHARACTER SET utf8;

Project_db ашиглах

"Historiek" (түүхийг хэлнэ) хүснэгт үүсгээрэй.

Хэрэв байхгүй бол ХҮСНЭГТ үүсгэх

`sensorID` VARCHAR (5) NOT NULL,` datum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT (4) NULL DEFAULT 0, PRIMARY KEY (` id`)) ENGINE = InnoDB;

Мөн voila, мэдээллийн санг хийдэг.

Алхам 7: Github код ба тест

Github код ба тест
Github код ба тест

Бид төслийнхөө төгсгөлд ойртож байна.

Кодыг авахаасаа өмнө бид зарим модулийг Rpi руу оруулах шаардлагатай болно.

pip3 Flask_MySQL -ийг суулгана уу

pip3 колбо-сокетийг суулгана уу

pip3 суулгах -U колбо -корс

pip3 spidev суулгана уу

Үүнийг ажиллуулахын тулд бидэнд код хэрэгтэй байна, терминалыг бичнэ үү:

git clone

Фолдер байгаа эсэхийг шалгана уу:

ls

Одоо танд 2 терминал хэрэгтэй болно, тиймээс терминал дээр хулганы баруун товчийг дараад "Давхардсан сессия" дээр дарна уу.

Cd командыг ашиглан backend_project ба температур руу очно уу.

Туршилтын зорилгоор програмыг эхлүүлэхийн өмнө. Зарим тоонуудыг бичих шаардлагатай 1 утастай мэдрэгчтэй 3-р алхамыг та одоо хүртэл санаж байна уу? Хэрэв танд санаа зовох зүйл байхгүй бол 3 -р алхамыг дахин үзээрэй.

Бид эдгээр тоонуудыг кодонд оруулах болно, учир нь үүнийг ашиглахдаа зөв мэдрэгчийг мэдэх шаардлагатай болно.

Температур хавтас бүхий терминал, та app.py. Бид үүнийг нээх гэж байна.

sudo нано апп.py

"Def temperatuur ():" гэж нэрлэгддэг функцийг хайж олоорой, та "**" -ийг бичсэн тоонуудаар солих шаардлагатай болно. Миний хувьд энэ кодын мөрийг авах болно (тоо бүр өвөрмөц).

sensor_file_name = '/sys/devices/w1_bus_master1/28-0316a4be59ff/w1_slave

Туршилтын хугацаа. Backend_project болон температурын хавтсанд хоёулаа терминал бичнэ үү:

python3 апп.py

5 -р алхамыг санаарай: хэрэв та олон сэнс, транзистор ашиглаж байгаа бол код нэмэх шаардлагатай тоног төхөөрөмж үү?

Сайн байна, хэрэв 5 -р алхам руу буцахгүй бол.

Одоо бид backend_project дээр app.py дээр дурдсанчлан кодыг нэмэх хэрэгтэй. Үүнийг хөнгөвчлөхийн тулд би кодын жишээг үзүүлэв. "Fan1" гэсэн комментийн кодын мөр бүр дээр эдгээр мөр болон voila -г тайлбарлаагүй бол одоо та 2 фен ашиглаж болно.

Хэрэв та илүү их 2 фен ашиглахыг хүсвэл ижил кодыг доор нь хуулаад өөр дугаараар буулгаарай. Үүний сул тал бол таны хувийн ажил бөгөөд gpio.pins бага байдаг. Үүнд миний мэдэх давуу тал байхгүй.

Алхам 8: Boot Up дээр кодыг ажиллуулна уу

Ачаалах үед кодыг ажиллуулна уу
Ачаалах үед кодыг ажиллуулна уу

Бид эдгээр 2 питон скриптийг манай Rpi ачаалах үед ажиллуулахыг хүсч байна, хэрэв скрипт сүйрэх юм бол өөрөө дахин эхлүүлэх ёстой. Үүнийг хийхийн тулд бид 2 үйлчилгээ хийх гэж байна.

Үүнийг хийхийн тулд бичнэ үү:

sudo нано /etc/systemd/system/temperature.service

Үүнийг температурт хуулж буулгах.үйлчилгээ:

[Нэгж] Тодорхойлолт = Температурын үйлчилгээ дараа = олон хэрэглэгчийн.зорилт

Зөрчилдөөн [email protected]

[Үйлчилгээ] Төрөл = энгийн

ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py

StandardInput = tty-force

Дахин эхлүүлэх = амжилтгүй болох

RestartSec = 60 -аад он

[Суулгах]

WantedBy = multi-user.target

Хааж, дахин хий, гэхдээ дараа нь backend_project.service:

Эхний нээлттэй текст:

sudo нано /etc/systemd/system/backend_project.service

Дараа нь дахин хуулж буулгана уу:

[Нэгж] Тодорхойлолт = backend_project үйлчилгээ

Дараа = олон хэрэглэгчийн зорилт

Зөрчилдөөн [email protected]

[Үйлчилгээ]

Төрөл = энгийн

ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py

StandardInput = tty-force

Дахин эхлүүлэх = амжилтгүй болох

RestartSec = 60 -аад он

[Суулгах]

WantedBy = multi-user.target

Хадгалаад хаах.

Сүүлийн хэсэг нь үүнийг бичиж байна:

sudo systemctl демон дахин ачаална

sudo systemctl температурыг идэвхжүүлнэ. үйлчилгээ sudo дахин ачаална

Одоо манай 2 питон скрипт ачаалах үед автоматаар ажиллах ёстой.

Алхам 9: Вэбсайтыг тохируулах

Та репозиторыг татаж авахдаа бас урд нэртэй хавтас авах ёстой байсан. Энэ бол вэбсайтын агуулга юм.

Фолдерыг ашиглахаас өмнө бидэнд apache хэрэгтэй болно. Apache -ийг авахын тулд энэ линк дээрх гарын авлагыг дагана уу.

Та бэлэн болмогц. Урд талын фолдер байрладаг газар руу очно уу:

cd /Documents /nmct-s2-project-1-TheryBrian

Дараа нь бичнэ үү:

sudo mv front/var/www/html

Үүнийг хийсний дараа html хавтас руу орж, уйтгартай ажилд бэлдээрэй (миний буруу).

cd/var/www/html/

Дараа нь урд хавтас руу ороод бүх зүйлийг html хавтас руу зөөж эхлээрэй.

жишээ:

sudo mv css/var/www/html

Дараа нь урд талын фолдерыг устга.

Тэгээд бид бүх зүйлээ дуусгасан.

Амжилт хүсье:).

Алхам 10: Нэмэлт - Бяцхан прототип

Нэмэлт - Бяцхан прототип
Нэмэлт - Бяцхан прототип
Нэмэлт - Бяцхан прототип
Нэмэлт - Бяцхан прототип

Туршилтын шалтгаанаар би бүх тоног төхөөрөмж бүхий хайрцгийн загварыг хийсэн тул бүх зүйл захиалгаар ажилладаг эсэхийг харж болно.

Дүрмээр бол энэ төслийг илүү өргөн хүрээнд хийх болно. Жишээлбэл: өрөө, байшин, үйлдвэр, дэлгүүр гэх мэт …

Гэхдээ бид ханан дээр нүх гаргаж эхлэхээс өмнө (сайхан шүлэг). Энэ нь зүгээр л ажилладаг эсэхийг бид эхлээд харахыг хүсч байна. Туршилтанд зориулж хайрцаг хийх шаардлагагүй боловч гар урлал хийх нь үргэлж хөгжилтэй байдаг.

Энд миний жишээ байна.

Зөвлөмж болгож буй: