תוכן עניינים:

ColorPicker: 10 שלבים
ColorPicker: 10 שלבים

וִידֵאוֹ: ColorPicker: 10 שלבים

וִידֵאוֹ: ColorPicker: 10 שלבים
וִידֵאוֹ: Windows 10 Clear Everything 2024, נוֹבֶמבֶּר
Anonim
בוחר צבעים
בוחר צבעים

מטרת הפרויקט היא למדוד צבעים ולתרגם אותם למערכות צבע אחרות. באמצעות רק ערכי ה- RGB שנתנו החיישן, ניתן לתרגם ל- HSL, CYMK, HEX וגם את קוד ה- RAL הקרוב ביותר (תקן המשמש לצבע). פרויקט זה דורש ידע בסיסי ב- Python, MySQL, Linux ו- Javascript.

אם אתה מכיר גם את מסגרת הבקבוק ואת SocketIO, אז הקוד לפרויקט זה אמור להיות קל להבנה עבורך.

פרויקט זה יכול לשמש ציירים, מעצבים ביניים או סתם כל מי שצריך למדוד צבעים.

פרויקט זה אינו כל כך יקר, ועלותו נאמדת ב- _ יורו, משלוח אינו כלול.

אספקה

אנו יכולים לחלק את החלק הזה לשני חלקים:

  • חוּמרָה
  • תוֹכנָה

חוּמרָה

אנו משתמשים ברכיבים הבאים

  • HC04: חיישן מרחק, כמה רחוק אנו מודדים מהאובייקט
  • צג LCD 2x16
  • מודול I2C LCD (HW061)
  • מודול חיישן צבע TCS34725 (Adafruit)
  • LED לבן
  • Raspberry Pi 3 (כל Raspberry Pi אמור לעבוד)
  • נגד 5x 1k אוהם
  • נגד 220 או 330 אוהם
  • כרטיס SD 16GB (14.4GB)

תוֹכנָה

  • Python IDE, כמו קוד Visual או Pycharm (Pycharm משמש כאן)
  • MySQL Workbench
  • מרק (הורד מרק)
  • רופוס או כל כותב כרטיסי SD אחר (הורד את רופוס)

תמחור

הפרויקט הזה הוא די זול, אם כבר יש לך Rapsberry Pi.

  • HC04: החל בסביבות 2.5 אירו (סין) ועד 6 אירו לחנויות מקומיות נוספות.
  • LCD: בסביבות 6-8 יורו.
  • מודול I2C: זול מתחת ל- 1 € (סין), אך עד 4 € לחנויות מקומיות נוספות.
  • TCS34725: בסביבות 9-12 יורו יורו. החלק היקר ביותר (לא כולל RPi)
  • LED לבן: נקנה בכמויות גדולות, 20 נוריות LED עד 1 יורו
  • פטל פטל: תלוי באיזו גרסה, בסביבות 40 אירו
  • נגדים: 0.10 € לנגד אחד
  • כרטיס SD: בסביבות 8 אירו

מתאם החשמל ל- Raspberry Pi אינו נכלל במחיר המחיר, מכיוון שמתאם זה נפוץ למדי.

טווח מחירים כולל: כ -70 יורו, אם כללת את ה- Raspberry Pi ואת המארז לפרויקט.

לבניית המארז השתמשתי בעץ דק קל. מיחזרתי את העץ הזה מרהיטים. החומר למקרה תלוי בך.

שלב 1: שלב 1: התקנת מערכת הפעלה RPi, הגדרת SSH וגישה לאינטרנט

שלב 1: התקנת מערכת הפעלה RPi, הגדרת SSH וגישה לאינטרנט
שלב 1: התקנת מערכת הפעלה RPi, הגדרת SSH וגישה לאינטרנט
שלב 1: התקנת מערכת הפעלה RPi, הגדרת SSH וגישה לאינטרנט
שלב 1: התקנת מערכת הפעלה RPi, הגדרת SSH וגישה לאינטרנט
שלב 1: התקנת מערכת הפעלה RPi, הגדרת SSH וגישה לאינטרנט
שלב 1: התקנת מערכת הפעלה RPi, הגדרת SSH וגישה לאינטרנט
שלב 1: התקנת מערכת הפעלה RPi, הגדרת SSH וגישה לאינטרנט
שלב 1: התקנת מערכת הפעלה RPi, הגדרת SSH וגישה לאינטרנט

שלב 1.1: התקנת התמונה

הורד את התמונה מהאתר הרשמי של פטל הפטל. זה לא ממש משנה איזו תמונה אתה מתקין. לפרויקט זה, אין צורך ב- GUI, מכיוון שנתחבר רק באמצעות SSH.

כתוב את התמונה לכרטיס ה- SD (הריק) (כל הקבצים בכרטיס יימחקו).

כדי לכתוב הכל לכרטיס ה- SD, נשתמש בכלי בשם 'רופוס'. לאחר הורדת התמונה, פתח את Rufus ובחר את קובץ התמונה. בחר את כונן היעד וכתוב את התמונה לכונן. זה יכול לקחת זמן.

> רופוס

שלב 1.2: התקנת SSH

השלב הבא הוא יצירת חיבור לכרטיס ה- SD. לשם כך עלינו לאפשר SSH.

לשם כך מבלי להשתמש במסך, פתח את סייר הקבצים ופתח את מחיצת האתחול של כרטיס ה- SD. צור קובץ ריק בשם "ssh", ללא סיומת קובץ.

כמו כן, פתח את "cmdline.txt"

הוסף "169.254.10.1" בסוף הקובץ ושמור אותו.

נתק את כרטיס ה- SD והכנס אותו ל- Raspberry Pi.

כעת נוכל לחבר את ה- Raspberry Pi למקור חשמל ולאתחל ולהתחבר באמצעות SSH.

כדי להתחבר באמצעות SSH, אנו משתמשים בתוכנית "מרק". חבר את ה- RPi והמחשב האישי שלך באמצעות כבל ehternet לפני שתעשה זאת. פתח את מרק ועבור ללשונית SSH ומלא את ה- IP הזה: 169.254.10.1. לחץ על 'התחבר' ותהיה מחובר.

> מרק

כניסת ברירת המחדל המשמשת את ה- Raspberry Pi היא 'pi' כשם משתמש ו'פטל 'עבור הסיסמה.

שלב 1.3: חיבור אלחוטי

ה- Raspberry Pi שלך מופעל כעת.

אנחנו גם רוצים להתחבר ל- RPi באמצעות Wifi, כך שאנחנו לא צריכים עוד כבל אתרנט.

בצע את השורה הבאה:

'sudo nano /etc/wpa_supplicant/wpa_supplicant.conf'

פעולה זו תפתח את עורך הטקסט 'ננו' בעל זכויות גבוהות.

הוסף את השורות הבאות בקובץ:

רשת = {

ssid = "SSID"

psk = "סיסמה"

}

החלף את "SSID" ב- SSID של רשת ה- Wifi שלך

החלף את "סיסמה" בסיסמה שלך.

לאחר מכן בצע 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)

התקן גם את ספריות ה- pip הבאות:

  • 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: צבעי RAL

> טבלה 2: סוגי חיישן

> טבלה 3: מדידות (בתמונה משתמשים ב- 'metingen', הולנדית למדידות)

> טבלה 4: נתוני אתר || שולחן 4 תחתון

MySQL היא מערכת מסדי נתונים יחסיים, כלומר אנו יכולים ליצור יחסים בין הטבלאות.

הקשר הראשון שעלינו ליצור הוא בין 'סוג חיישן' לבין 'מדידות'.

כפי שמוצג בתמונה, קשר את שני המקשים.

> ערוך מפתחות טבלה וקישור

אל תשכח לשמור את השינויים על ידי לחיצה על 'החל' בפינה התחתונה.

ערוך גם את הטבלה 'website_data' וקישור 'MetingID'.

כעת סיימנו ליצור את הטבלאות וליצור מערכות יחסים.

הוספת נתונים:

טבלת RALcolors היא טבלה קבועה, שבה הערכים לעולם לא ישתנו. אנו יכולים להוסיף ערכים אלה

מאוד בקלות.

> הורד קובץ אקסל

הורד את קובץ האקסל למעלה ובחר את כל הנתונים ו'העתק '. עשה כמו בתמונה

> הצג שולחן

'לחץ לחיצה ימנית' על הטבלה ובחר 'הדבק שורות'. 'לחץ' 'החל' בפינה התחתונה כדי להוסיף את הנתונים.

כעת כל 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' כשורש.

אם תמקם את הקבצים שלך שם, הם יתארחו ב- IP של ה- Raspberry Pi. (IP = ראה 'ip a')

אתה יכול להוריד את הקבצים הנדרשים מ- github repo שלי (שלב קודם)

בתוך '/var/www/html/', הדבק את כל הקבצים מהתיקייה 'Frontend'.

>/var/www/html/

שלב 6: שלב 6: יצירת ה- backend (בקבוק)

ה backend של האתר מבוסס על 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, כדי להקל על השימוש בו.

TCS34725

חיישן זה מאפשר לך למדוד צבעים. אנו משתמשים בספרייה למדידת ערך ה- RGB.

שלב 8: שלב 8: קוד מוסבר

שלב 8: קוד מוסבר
שלב 8: קוד מוסבר
שלב 8: קוד מוסבר
שלב 8: קוד מוסבר
שלב 8: קוד מוסבר
שלב 8: קוד מוסבר
שלב 8: קוד מוסבר
שלב 8: קוד מוסבר

הקצה הקדמי

החזית קיימת מתוך שלושה חלקים עיקריים.

ראשית קבצי html, הבונים את מבנה האתר שלנו, אך אינם מכילים או פריסה מינימלית.

שנית יש לנו את קבצי ה- css, או קבצי הסגנון, אשר מעצבים ומעצבים את האתר שלנו.

השניים די קלים לקריאה ולהבנה, ולכן לא אסביר אותם.

אחרונה יש לנו Javascript, עם שתי ספריות.

שתי הספריות בהן נעשה שימוש הן SocketIO ו- URLSearchParams.

SocketIO מאפשר לך לשלוח הודעות מה- backend אל frontend, ולהיפך.

ניתן לשלוח את ההודעות ללקוח אחד, אך גם למספר לקוחות (שידור)

> Socket IO Javascript

> Socket IO Python

בתמונות למעלה אתה יכול לראות את אחד מחיבורי ה- Socket שנעשו בפרויקט זה.

הפקודה לשלוח הודעות היא 'פלט', הקבלה מתבצעת על ידי 'על'.

URLSearchParms מאפשרים לך לקבל ערכים ממחרוזת שאילתה בקלות.

מחרוזת שאילתה לדוגמה: example.com/index.html?id=1

URLSearchParams יחזיר לך: {'id' = '1'}

> URLSearchParams דוגמה

הקצה האחורי

הקצה האחורי כתוב במלואו בפייתון, עם חבורה של ספריות.

הספרייה הראשונה שאנו מייבאים היא 'בקבוק'. יש צורך בספרייה זו ליצירת API, לביצוע כל פעולות ה- CRUD עבור מסד הנתונים MySQL. CRUD מייצג Create Read Update Update Delete.

> בקבוק

התמונה למעלה מציגה כמה 'מסלולים' של הבקבוק. על ידי גלישה למסלול, תבצע אוטומטית שיטת 'GET', הקוד יבוצע ותקבל את הערך משיטת ההחזרה. ישנן גם שיטות אחרות, כמו 'POST' ו- 'DELETE'. כדי לבדוק שיטות כאלה, תזדקק לתוכנית כמו דואר.

ספריית הייבוא הבאה היא SocketIO, שהסברתי כבר בחלק הקדמי.

הבא הוא GPIO.

זה מאפשר לך לשלוט בסיכות GPIO של ה- Rapsberry Pi.

הפקודות החשובות ביותר הן:

  • GPIO.setmode (GPIO. BCM) בחר את תצורת הפינים.
  • פלט GPIO.output (, GPIO. LOW או GPIO. HIGH) כתוב LOW או HIGH לסיכה.
  • GPIO.setup (,) הגדר קוד PIN כקלט או פלט, או הנפתח או pullup

הבא יש לנו שרשור.

הפקודות היחידות בהן אנו משתמשים הן:

  • נושא (יעד =)
  • .הַתחָלָה()

באמצעות שרשורים, נוכל להריץ מספר מופעי קוד בו זמנית. כך נוכל למדוד מרחק ובמקביל להקשיב להודעות שקע io נכנסות.

הפקודה הראשונה Thread (target =) תיצור מחלקת Thread, אשר עם תחילת השימוש ב- 'start ()' תפעיל את הפונקציה במילת המפתח 'target', שניתנה בעת יצירת המחלקה.

לאחר מכן יש לנו את הספרייה של חיישן הצבעים, שהיא די קדימה. אני לא מסביר את הספרייה הזו, כי השיטות מאוד ברורות ומוסברות בקוד.

אחרון יש לנו רשתות. זה מאפשר לנו לאחזר את כתובת ה- IP שבה אנו משתמשים לחיבור אלחוטי וקווי.

לאחרונה עשיתי כמה שיעורים בעצמי עבור חיישן המרחק, הלד וה- 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'.

מוּמלָץ: