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

מערכת בית חכם ארדואינו: 7 שלבים
מערכת בית חכם ארדואינו: 7 שלבים

וִידֵאוֹ: מערכת בית חכם ארדואינו: 7 שלבים

וִידֵאוֹ: מערכת בית חכם ארדואינו: 7 שלבים
וִידֵאוֹ: ארדוינו - ARDUINO - בעברית! בואו ללמוד לתכנת בחינם. 2024, נוֹבֶמבֶּר
Anonim
מערכת בית חכם ארדואינו
מערכת בית חכם ארדואינו
מערכת בית חכם ארדואינו
מערכת בית חכם ארדואינו

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

שלב 1: כדי להתחיל: חומרים

פרויקט זה דורש את החומרים הבאים:

- Arduino Uno (לפרויקט זה השתמשנו בלוח אדום של Sparkfun)

- פוטורסיסטור אחד

- מנוע מיני סרוו אחד

- מנוע סרוו רציף אחד

- חיישן תנועה אחד של PIR

- חיישן טמפרטורה אחד

- 2 נוריות LED

- חוטים ונגדים לפי הצורך

שלב 2: שלב 2: גישת הבעיה לפתרון

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

שלב 3: שלב 3: הגדרת GUI וזרימת קוד בסיסית

שלב 3: הגדרת GUI וזרימת קוד בסיסית
שלב 3: הגדרת GUI וזרימת קוד בסיסית

כדי להתחיל יהיה עליך לפתוח את MATLABs AppDesigner ולמקם את הדברים הבאים:

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

כפתור לפתיחת הדלת

וארבע מנורות חיווי לאח, לדלת, למאוורר ולמבול.

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

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

גלובלי א

a = arduino ('COM3', 'uno', 'Libraries', 'Servo'); גלובלי s גלובלי p גלובלי hotUI גלובלי coldUI גלובלי נעילה זמנית גלובלית curr_temp גלובלית int_light

כרגע יש לנו רק הקצאה למשתנה כך שהמחשב שלך יכול לקרוא את הארדואינו. COM3 עשוי להשתנות בהתאם לאיזה יציאה המחשב שלך עשוי להשתמש.

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

הערה: לא נתנו הוראות חיווט למערכת. התייחסנו למדריך המצורף ללוח SparkFun Red.

שלב 4: שלב 3: התקנת מערכת התרמוסטט

שלב 3: התקנת מערכת התרמוסטט
שלב 3: התקנת מערכת התרמוסטט
שלב 3: התקנת מערכת התרמוסטט
שלב 3: התקנת מערכת התרמוסטט

הפונקציה של התרמוסטט פועלת כדלקמן:

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

לקידוד מערכת התרמוסטט:

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

p = 'A0' %סיכת פוטורסיסטור

volt = readVoltage (a, temp); celc = (וולט -0.5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str (curr_temp); מספר התווית יכול לשנות את ההשהיה (10); אולי תרצה לשנות !!!!!

לאחר מכן נשלים את מערכת התרמוסטט בתוך המאפיין טיימר.

curr_temp גלובלי

global coldUI global a hotUI גלובלי אם curr_temp hotUI app. FanStateLamp. Color = [0.47 0.67 0.19]; %הופך את מנורת GUI לירוקה writePWMDutyCycle (a, 'D11',.9) %שלוש שורות הקוד הבאות מפעילות את השהיית מאוורר הסרוו (10) writePWMDutyCycle (a, 'D11',.0) אחר app. FireplaceStateLamp. Color = [0.90 0.90 0.90]; %זה מכבה את כל מנורות ה- GUI והאפליקציה האח. FanStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin (a, 'D13', 0); סוֹף

שלב 5: שלב 4: הגדרת מערכת הדלתות

שלב 4: הגדרת מערכת הדלתות
שלב 4: הגדרת מערכת הדלתות

הפונקציה של הדלת פועלת כדלקמן:

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

כדי להגדיר את מנוע הסרוו והפוטורסיסטור:

לקידוד מערכת הדלתות:

נתחיל בתוך פונקציית ההפעלה כדי לבצע את קריאות האור הראשוניות.

s = סרוו (a, 'D9') %הסיכה עשויה להשתנות בהתאם לחיווט

app. Label_4. Text = 'אנא פתח את הדלת לכיול המערכת'; הפסקה (15); %זה נותן למשתמש זמן לפתוח את הדלת int_light = readVoltage (a, p); app. Label_4. Text = 'תוכל להסיר את האצבע';

לאחר מכן, נשלים את הקוד בתוך המאפיין טיימר

נעילה עולמית

global int_light global s global a %קבל קריאת אור עדכנית להשוואת curr_light = readVoltage (a, p); % - נעילת דלת - אם int_light <curr_light writePosition (ים, 1) % מיקומי סרוו עשויים להשתנות לפי הפסקה של המנוע (0.5); app. DoorStateLamp. Color = [0.47 0.67 0.19]; סוף % - נעילת דלת - אם נעילה == 1234 הפסקה (0.5); writePosition (s,.52) app. DoorStateLamp. Color = [0.85 0.33 0.10]; סוֹף

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

נעילה עולמית

ביטול נעילה = 1234;

שלב 6: שלב 6: הגדרת מערכת ה- Flood Light

שלב 6: הגדרת מערכת ה- Flood Light
שלב 6: הגדרת מערכת ה- Flood Light

הפונקציה של אור המבול פועלת כדלקמן:

כאשר אתה מפעיל את קוד MATLAB, חיישן התנועה PIR יתחיל לזהות תנועה. ברגע שהוא מזהה תנועה כלשהי, הוא ינתק אות כוח. ברגע שהאות הזה ייחתך, אור הצפה נדלק מחוץ לבית.

כדי להגדיר את מערכת אור המבול:

לקידוד מערכת המנורות:

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

human_detected = readDigitalPin (a, 'D2'); %סיכה עשויה להשתנות בהתבסס על התצורה אם human_detected == 0 writeDigitalPin (a, 'D7', 1) %סיכה עשויה לשנות app. FloodLightStateLamp. Color = [0.47 0.67 0.19]; elseif human_detected == 1 app. FloodLightStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin (a, 'D7', 0) סוף

שלב 7: סיכום

כעת, לאחר שיש לך טיוטה של ה- GUI שלך עם מעצב האפליקציות והקוד שלך עבור Arduino, אתה מוכן לבצע עריכות משלך או לחבר את Arduino שלך וללכת!

מוּמלָץ: