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

ColorPicker: 10 алхам
ColorPicker: 10 алхам

Видео: ColorPicker: 10 алхам

Видео: ColorPicker: 10 алхам
Видео: Герметик радиатора LAVR. Устраняем течь за 10 минут 2024, Аравдугаар сар
Anonim
Өнгө сонгогч
Өнгө сонгогч

Энэхүү төслийн зорилго нь өнгийг хэмжих, бусад өнгөний системд орчуулах явдал юм. Зөвхөн мэдрэгчийн өгсөн RGB утгыг ашигласнаар та HSL, CYMK, HEX, мөн хамгийн ойрын RAL кодыг орчуулж болно (будгийн стандарт). Энэхүү төсөл нь Python, MySQL, Linux болон Javascript -ийн анхан шатны мэдлэгтэй байхыг шаарддаг.

Хэрэв та Flask framework болон SocketIO -ийг сайн мэддэг бол энэ төслийн кодыг ойлгоход хялбар байх ёстой.

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

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

Хангамж

Бид энэ хэсгийг хоёр хэсэгт хувааж болно

  • Техник хангамж
  • Програм хангамж

Техник хангамж

Бид дараах бүрэлдэхүүн хэсгүүдийг ашигладаг

  • HC04: Зайны мэдрэгч, бид объектоос хэр хол зайг хэмжиж байна
  • LCD дэлгэц 2x16
  • LCD I2C модуль (HW061)
  • TCS34725 Өнгөний мэдрэгч модуль (Adafruit)
  • Цагаан LED
  • Raspberry Pi 3 (Аливаа Raspberry Pi ажиллах ёстой)
  • 5х 1к Ом эсэргүүцэл
  • 1х 220 эсвэл 330 Ом эсэргүүцэл
  • SD карт 16GB (14.4GB)

Програм хангамж

  • Python IDE, жишээ нь Visual Code эсвэл Pycharm (Pycharm энд ашиглагддаг)
  • MySQL ажлын ширээ
  • Шаваас (шаваас татаж авах)
  • Rufus эсвэл бусад SD карт зохиогч (Rufus татаж авах)

Үнэ

Хэрэв танд Rapsberry Pi байгаа бол энэ төсөл маш хямд болно.

  • HC04: Ойролцоогоор 2.5 еврогоос (Хятад), бусад орон нутгийн дэлгүүрүүдэд 6 еврогоос эхэлнэ.
  • LCD: ойролцоогоор 6-8 евро.
  • I2C модуль: 1 еврогоос (Хятад) хямд боловч илүү дотоодын дэлгүүрүүдэд 4 евро хүртэл.
  • TCS34725: Ойролцоогоор 9-12 евро. Хамгийн үнэтэй хэсэг (RPi -г оруулаагүй)
  • Цагаан удирдсан: Бөөнөөр худалдаж авсан, 20 LED нь 1 еврогоос бага үнэтэй
  • Raspberry Pi: Аль хувилбараас хамаарч ойролцоогоор 40 евро
  • Эсэргүүцэл: Нэг эсэргүүцэгчийн хувьд 0.10 евро
  • SD карт: ойролцоогоор 8 евро

Raspberry Pi -ийн цахилгаан хувиргагчийг үнийн зардалд оруулдаггүй, учир нь энэ адаптер нь нэлээд түгээмэл байдаг.

Үнийн дээд хязгаар: ойролцоогоор 70 евро, хэрэв та Raspberry Pi болон төслийн хайрцгийг оруулсан бол.

Хэргийг бүтээхийн тулд би хөнгөн нимгэн мод ашигласан. Би энэ модыг тавилга дээрээс дахин боловсруулсан. Хэргийн материал танд хамаарна.

Алхам 1: Алхам 1: RPi OS суулгах, SSH болон интернет хандалтыг тохируулах

Алхам 1: RPi OS суулгах, SSH болон интернет хандалтыг тохируулах
Алхам 1: RPi OS суулгах, SSH болон интернет хандалтыг тохируулах
Алхам 1: RPi OS суулгах, SSH болон интернет хандалтыг тохируулах
Алхам 1: RPi OS суулгах, SSH болон интернет хандалтыг тохируулах
Алхам 1: RPi OS суулгах, SSH болон интернет хандалтыг тохируулах
Алхам 1: RPi OS суулгах, SSH болон интернет хандалтыг тохируулах
Алхам 1: RPi OS суулгах, SSH болон интернет хандалтыг тохируулах
Алхам 1: RPi OS суулгах, SSH болон интернет хандалтыг тохируулах

Алхам 1.1: Зургийг суулгах

Raspberry Pi -ийн албан ёсны сайтаас зургийг татаж аваарай. Ямар зураг суулгах нь хамаагүй. Энэ төслийн хувьд GUI шаардлагагүй, учир нь бид зөвхөн SSH ашиглан холбогдох болно.

Зургийг (хоосон) SD картанд бичнэ үү (Карт дээрх бүх файлыг устгах болно).

SD картанд бүх зүйлийг бичихийн тулд бид 'Rufus' нэртэй хэрэгслийг ашиглах болно. Зургийг татаж авсны дараа Rufus -ийг нээгээд зургийн файлыг сонгоно уу. Зорилтот дискийг сонгоод дүрсийг хөтөч дээр бичнэ үү. Үүнд хэсэг хугацаа шаардагдаж магадгүй.

> Rufus

Алхам 1.2: SSH суулгах

Дараагийн алхам бол SD карттай холболт үүсгэх явдал юм. Үүнийг хийхийн тулд бид SSH -ийг идэвхжүүлэх хэрэгтэй.

Үүнийг монитор ашиглахгүйгээр хийхийн тулд файл хайгчаа нээгээд SD картны ачаалах хэсгийг нээнэ үү. Файлын өргөтгөлгүйгээр "ssh" нэртэй хоосон файл үүсгээрэй.

Мөн "cmdline.txt" -ийг нээнэ үү.

Файлын төгсгөлд "169.254.10.1" гэж нэмээд хадгална уу.

SD картыг салгаад Raspberry Pi -д оруулна уу.

Одоо бид Raspberry Pi -г тэжээлийн эх үүсвэрт холбож, SSH ашиглан ачаалах, холбох боломжтой боллоо.

SSH ашиглан холбогдохын тулд бид "Шаваас" програмыг ашигладаг. Үүнийг хийхийн өмнө RPi болон компьютерээ ehternet кабель ашиглан холбоно уу. Putty -ийг нээгээд SSH таб руу очоод энэ IP -ийг бөглөнө үү: 169.254.10.1. 'Холбох' дээр дарна уу, та холбогдох болно.

> Шаваас

Raspberry Pi -ийн ашигладаг анхдагч нэвтрэлт бол хэрэглэгчийн нэрийн хувьд 'pi', нууц үгийн хувьд 'бөөрөлзгөнө' юм.

Алхам 1.3: Утасгүй холболт

Таны Raspberry Pi одоо асаалттай байна.

Бид мөн Wifi ашиглан RPi -тэй холбогдохыг хүсч байна, ингэснээр бидэнд ethernet кабель хэрэггүй болно.

Дараах мөрийг ажиллуулна уу.

'sudo нано /etc/wpa_supplicant/wpa_supplicant.conf'

Энэ нь өндөр эрхтэй "нано" текст засварлагчийг нээх болно.

Файлд дараах мөрүүдийг нэмнэ үү.

сүлжээ = {

ssid = "SSID"

psk = "Нууц үг"

}

"SSID" -г өөрийн Wifi сүлжээний SSID -ээр солино уу

"Нууц үг" -ийг нууц үгээр солино уу.

Дараа нь Ctrl+X товчийг дараад 'тийм' сонголтыг сонгоно уу. Одоо файл хадгалагдах болно.

Одоо бид сүлжээний үйлчилгээг дахин эхлүүлэх хэрэгтэй

Дараах тушаалуудыг ажиллуулна уу.

  • 'sudo -i'
  • 'sudo systemctl сүлжээг дахин эхлүүлэх'

Та wget командыг ашиглан интернет холболтоо туршиж үзэх боломжтой.

Жишээ: 'wget google.com'

> Wget тушаал

Алхам 2: Алхам 2: RPi дээр програм суулгах

Энэ төслийн хувьд бид хэд хэдэн номын сан суулгах хэрэгтэй.

  • Mariadb: MySQL мэдээллийн сан (sudo apt-get install mariadb-server)
  • Өнгө мэдрэгчийн Adafruit номын сан: Өнгийг хэмжих (pip3 суулгах adafruit-circuitpython-tcs34725)
  • PHPmyAdmin: ('sudo apt install phpmyadmin', apache вэб серверийг сонгоно уу)

Мөн дараах пип номын сангуудыг суулгаарай.

  • flask_socketio
  • колбо
  • flask_cors
  • самбар
  • автобус
  • сүлжээнүүд

Алхам 3: Алхам 3: MySQL мэдээллийн санд холбогдох, мэдээллийн бааз үүсгэх

Алхам 3: MySQL мэдээллийн санд холбогдох, мэдээллийн бааз үүсгэх
Алхам 3: MySQL мэдээллийн санд холбогдох, мэдээллийн бааз үүсгэх
Алхам 3: MySQL мэдээллийн санд холбогдох, мэдээллийн бааз үүсгэх
Алхам 3: MySQL мэдээллийн санд холбогдох, мэдээллийн бааз үүсгэх
Алхам 3: MySQL мэдээллийн санд холбогдох, мэдээллийн бааз үүсгэх
Алхам 3: MySQL мэдээллийн санд холбогдох, мэдээллийн бааз үүсгэх

Дараагийн алхам бол MySQL ажлын ширээ ашиглан MySQL мэдээллийн санд холбогдох явдал юм.

> IP а

Дээрх зурагт үзүүлсэн шиг 'ip a' командыг ажиллуулна уу (Холбоос дээр дарна уу)

Ихэнх тохиолдолд 3 бичлэгийг харуулах болно. Бидэнд 'wlan0' оруулга хэрэгтэй. IP -ийг 'inet' -ийн хажууд эсвэл энэ жишээнд '192.168.1.44' хуулж бичнэ үү.

. >> Шинэ холболт үүсгэх

Дээрх зурагт үзүүлсэн шиг дараах параметрүүдээр шинэ холболт үүсгэнэ үү (Доорх зургуудын хувьд)

> Холболтын параметрүүд

Холбохын тулд шинээр үүсгэсэн холболтыг хоёр дарна уу.

Хэрэв сануулга гарч ирвэл 'Тийм' дээр дарна уу.

Энэ нь хоосон мэдээллийн сан хэвээр байгаа тул хэдэн хүснэгт нэмж оруулъя.

Эхлээд схем үүсгээрэй, ингэхийн тулд зүүн талд нь "баруун товчлуур дээр дараад" схемийг үүсгэх "-ийг сонгоно уу.

Схемд нэр өгч баталгаажуулна уу.

Одоо бид хүснэгт нэмэх хэрэгтэй. Схемийг өргөжүүлж, 'хулганы баруун товчийг дарна уу', 'хүснэгтүүд'.

Дараах схемүүдийг үүсгэнэ үү

> Хүснэгт 1: RALcolors

> Хүснэгт 2: Мэдрэгчийн төрөл

> Хүснэгт 3: Хэмжилт (Зураг дээр 'metingen' ашиглаж байна, хэмжихэд Голланд хэл)

> Хүснэгт 4: Website_data || Доод талд 4 -р хүснэгт

MySQL бол харьцангуй мэдээллийн сангийн систем бөгөөд энэ нь бид хүснэгтүүдийн хооронд харилцаа үүсгэх боломжтой гэсэн үг юм.

Бидний үүсгэх ёстой хамгийн эхний харилцаа бол 'sensor_type' ба 'хэмжилт' хооронд байна.

Зураг дээр үзүүлсэн шиг хоёр түлхүүрийг холбоно уу.

> Хүснэгт ба холбоосын түлхүүрүүдийг засах

Доод буланд байгаа 'Apply' дээр дарж өөрчлөлтүүдийг хадгалахаа бүү мартаарай.

Мөн 'website_data' хүснэгтийг засаад 'MetingID' холбоно уу.

Одоо бид хүснэгт үүсгэж, харилцаа холбоог бий болгож байна.

Өгөгдөл нэмж байна:

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

маш амархан.

> Excel файлыг татаж авах

Дээрх Excel файлыг татаж аваад бүх өгөгдлийг сонгоод 'хуулбарлах'. Зураг дээрх шиг хий

> Хүснэгт харуулах

Ширээн дээр 'хулганы баруун товчийг дараад' Мөрүүдийг буулгах 'командыг сонгоно уу. Өгөгдлийг нэмэхийн тулд доод буланд байгаа 'Apply' дээр дарна уу.

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

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

> Sensortype өгөгдөл

Тэмдэглэл: Мэдрэгчийн тайлбарыг "Голланд" хэл дээр бичсэн болно.

Алхам 4: Алхам 4: Filezilla

Алхам 4: Filezilla
Алхам 4: Filezilla

Raspberry Pi -тэй хялбархан холбогдох, файл дамжуулахын тулд бид Filezilla ашиглаж болно.

> Filezilla татаж авах

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

> Github эх сурвалж

Дээрх github эх сурвалжаас файлуудыг татаж аваарай.

Алхам 5: Алхам 5: Вэбсайт үүсгэх

Алхам 5: Вэбсайт үүсгэх
Алхам 5: Вэбсайт үүсгэх
Алхам 5: Вэбсайт үүсгэх
Алхам 5: Вэбсайт үүсгэх

Вэбсайтыг байршуулахын тулд бид PHPmyAdmin болон Apache2 -ийг ашигладаг.

Raspberry Pi дээрх вэб сервер нь '/var/www/html' лавлахыг root болгон ашигладаг.

Хэрэв та файлуудаа тэнд байрлуулбал Raspberry Pi -ийн IP дээр байршуулах болно. (IP = "ip a" -г үзнэ үү)

Та шаардлагатай файлуудыг миний github репо дээрээс татаж авах боломжтой (өмнөх алхам)

'/Var/www/html/' хэсэгт 'Frontend' фолдероос бүх файлыг буулгана уу.

>/var/www/html/

Алхам 6: Алхам 6: Арын дэвсгэр (колбо) үүсгэх

Вэбсайтын арын хэсэг нь Flask дээр суурилсан болно.

Бүх файлыг github репо дээрээс олж болно.

Бүх файлыг Raspberry Pi дээрх дурын директор руу хуулж ав.

Жишээлбэл '/home/pi/colorpicker.

Директор үүсгэхийн тулд 'cd' ашиглан очих лавлах руу очоод 'mkdir' командыг ажиллуулна уу.

Одоохондоо энэ л байна. Кодыг дараагийн алхамуудад тайлбарлах болно.

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

> Татаж авах схем

Дээрх баримт бичигт үзүүлсэн шиг схемийг үүсгэнэ үү.

ТАЙЛБАР: Нэг цагаан LED, нэг эсэргүүцэлтэй (220 эсвэл 330 Ом).

Тоног төхөөрөмжийг тайлбарлах

HC04

HC04 мэдрэгч нь долгион ялгаруулдаг бөгөөд үүнийг тусгаж, мэдрэгчээр дахин хүлээн авдаг.

Ялгарах ба хүлээн авах хоёрын хоорондох дельта тооцоолсноор бид зайг тооцоолж чадна.

Зай = ((Timestamp_recieve - Timestamp_emit) / дууны хурд) / 2

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

LCD

Бид LCD дэлгэцийг ашиглан RGB ба HEX -ийг програм эхлэхэд IP хаягийг харуулдаг.

Энэхүү LCD -ийн хувьд би I2C модулийг худалдаж авсан. Одоо бидэнд зөвхөн 4 утас хэрэгтэй. SDA, SCL, GND, VCC

Энэхүү LCD дэлгэцийг ашиглахын тулд би ашиглахад хялбар болгох үүднээс Python анги бичсэн.

TCS 34725

Энэхүү мэдрэгч нь өнгийг хэмжих боломжийг олгодог. Бид RGB -ийн утгыг хэмжихийн тулд номын сан ашигладаг.

Алхам 8: Алхам 8: Кодыг тайлбарлав

Алхам 8: Кодыг тайлбарлав
Алхам 8: Кодыг тайлбарлав
Алхам 8: Кодыг тайлбарлав
Алхам 8: Кодыг тайлбарлав
Алхам 8: Кодыг тайлбарлав
Алхам 8: Кодыг тайлбарлав
Алхам 8: Кодыг тайлбарлав
Алхам 8: Кодыг тайлбарлав

Урд хэсэг

Урд хэсэг нь гурван үндсэн хэсгээс бүрдэнэ.

Нэгдүгээрт, манай вэбсайтын бүтцийг бий болгодог боловч агуулаагүй эсвэл хамгийн бага зохион байгуулалттай html файлууд юм.

Хоёрдугаарт, манай вэбсайтын хэв маяг, зохион байгуулалтыг харуулдаг CSS файлууд эсвэл загварын файлууд байдаг.

Энэ хоёрыг унших, ойлгоход маш хялбар тул би тайлбарлахгүй байна.

Хамгийн сүүлд бидэнд хоёр номын сантай Javascript байна.

Ашигласан хоёр номын сан нь SocketIO ба URLSearchParams юм.

SocketIO нь арын хэсгээс фронт руу мессеж илгээх боломжийг олгодог.

Мессежийг нэг үйлчлүүлэгч рүү илгээж болохоос гадна олон үйлчлүүлэгч рүү илгээж болно (Өргөн нэвтрүүлэг)

> Socket IO Javascript

> Socket IO Python

Дээрх зургуудаас та энэ төсөл дээр хийгдсэн сокет холболтуудын нэгийг харж болно.

Мессеж илгээх команд нь 'emit' бөгөөд хүлээн авах нь 'on' дээр хийгддэг.

URLSearchParms нь хайлтын мөрөөс утгыг хялбархан авах боломжийг танд олгоно.

Жишээ асуулгын мөр: example.com/index.html?id=1

URLSearchParams танд буцааж өгөх болно: {'id' = '1'}

> URLSearchParams -ийн жишээ

Арын хэсэг

Арын хэсэг нь олон тооны номын сантай Python хэл дээр бүрэн бичигдсэн байдаг.

Бидний оруулж ирдэг анхны номын сан бол 'Колбо' юм. Энэхүү номын сан нь API үүсгэх, MySQL мэдээллийн баазын бүх CRUD үйлдлийг хийхэд шаардлагатай. CRUD гэдэг нь Унших унших шинэчлэлтийг устгах гэсэн утгатай.

> Колбо

Дээрх зураг нь колбоны цөөн хэдэн маршрутыг харуулж байна. Маршрут руу аялах замаар та 'GET' аргыг автоматаар хийх болно, кодыг гүйцэтгэх бөгөөд буцаах аргын утгыг хүлээн авах болно. 'POST', 'DELETE' гэх мэт өөр аргууд байдаг. Ийм аргуудыг туршихын тулд танд Postman гэх мэт програм хэрэгтэй болно.

Дараагийн импортын номын сан бол SocketIO бөгөөд үүнийг би урд хэсэгт нь тайлбарласан болно.

Дараагийнх нь GPIO юм.

Энэ нь Rapsberry Pi -ийн GPIO зүүг хянах боломжийг танд олгоно.

Хамгийн чухал тушаалууд нь:

  • GPIO.setmode (GPIO. BCM) Голуудын тохиргоог сонгоно уу.
  • GPIO.output (, GPIO. LOW эсвэл GPIO. HIGH) Зүү рүү LOW эсвэл HIGH гэж бичнэ үү.
  • GPIO.setup (,) ПИН кодыг оролт эсвэл гаралт, доош татах эсвэл татах гэж тодорхойлно уу

Дараа нь бид урсгалтай байна.

Бидний ашигладаг цорын ганц тушаалууд нь:

  • Утас (зорилтот =)
  • .start ()

Утас ашиглан бид олон тооны кодын тохиолдлуудыг нэгэн зэрэг ажиллуулж болно. Ингэснээр бид зайг хэмжиж, io ирж буй сокет мессежийг сонсох боломжтой болно.

Эхний тушаал Thread (target =) нь "start () 'ашиглаж эхэлмэгц Thread класс үүсгэх бөгөөд анги үүсэхэд өгсөн" target "түлхүүр үг дэх функцийг ажиллуулах болно.

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

Хамгийн сүүлд бид интернет сүлжээтэй болсон. Энэ нь утасгүй болон утастай холболтод ашигладаг IP хаягийг сэргээх боломжийг бидэнд олгодог.

Хамгийн сүүлд би зайны мэдрэгч, LED, LCD -ийн хэд хэдэн хичээлийг өөрөө хийсэн.

Эдгээр нь хэрхэн ажилладагийг би тайлбарлахгүй.

Алхам 9: Алхам 9: Кейс үүсгэх

Алхам 9: Кейс үүсгэх
Алхам 9: Кейс үүсгэх
Алхам 9: Кейс үүсгэх
Алхам 9: Кейс үүсгэх
Алхам 9: Кейс үүсгэх
Алхам 9: Кейс үүсгэх

Энэ төслийн хувьд би модон хайрцаг хийсэн.

Мод нь хөнгөн, нимгэн, нэг их зардал шаарддаггүй.

Миний ашигласан хэмжээсүүдийн хувьд:

  • Өндөр: 5 см
  • Өргөн: 10.5 см
  • Урт: 12.5 см

Мэдрэгчийн хувьд та 2 цооног нэмж, бие биенийхээ хажууд байрлуулах хэрэгтэй.

Кейсийг үүсгэсний дараа мэдрэгч, LED, LCD -ийг суулгана уу.

Алхам 10: Эцсийн алхамууд

Бүх зүйлийг үндсэндээ хийдэг.

Одоо бид зөвхөн кодоо цахилгаан тэжээлийн эх үүсвэрээ залгах мөчөөс эхлэн ажиллаж эхлэх ёстой.

Үүнийг хийх маш олон арга бий.

> Жишээ

Бид эхний аргыг ашиглах болно.

Энэ мөрийг ажиллуулна уу: 'sudo nano /etc/rc.local'

Кодыг ажиллуулахын тулд тушаалаа нэмнэ үү: 'sudo python3'

Ctrl-X ашиглан файлыг хадгална уу.

Хэрэв танд засварлах асуудал байгаа бол. Энэ алхамыг дахин хий, гэхдээ эхлээд 'sudo -i' -г ажиллуулна уу.

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