תוכן עניינים:
- שלב 1: לוגיקת תוכנה: ארכיטקטורת מערכת
- שלב 2: שלב 1: חיווט חומרה
- שלב 3: שלב 2: ארדואינו
- שלב 4: שלב 3: NodeJS
- שלב 5: שלב 4: ממשק האינטרנט
- שלב 6: תוצאה
וִידֵאוֹ: פרויקט Arduino: בקרת אלקטרוניקה באינטרנט באמצעות Nodejs + מסד נתונים ואתר SQL .: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
פרויקט מאת: Mahmed.tech
תאריך יצירה: 14 ביולי 2017
רמת קושי: מתחיל עם ידע בתכנות.
דרישת חומרה:
- Arduino Uno, Nano, Mega (אני חושב שרוב ה- MCU עם החיבור הטורי יעבוד)
- LED יחיד ונגד הגבלת זרם. השתמש במחשבון זה אם אינך בטוח: מחשבון חוק אוהם
- פוטנציומטר 10K.
דרישת תוכנה:
- Arduino IDE
- Node. JS (זוהי תוכנה במחשב, פשוטה מאוד להתקנה)
- שרת MySQL (הדרך הקלה ביותר שמצאתי היא להשתמש באירוח אתרים זול. תוכל גם לקבל שמות דומיינים בחינם)
שפת תכנות וסקריפטים בשימוש:
Arduino (משתנה C/C ++), JavaScript (Nodejs), PHP, HTML ו- CSS
מבוא פרויקט זה בקצרה: שליטה על מיקרו -בקר ארדואינו מממשק אינטרנט. לכן שלוט בכל מכשיר חשמלי מכל מקום עם אינטרנט. רציתי למתוח את ההבנה שלי בתכנות ופיתוח אתרים ואיזו דרך טובה יותר לעשות זאת מאשר לעשות פרויקט פשוט אך יעיל. החומרה נשמרת במינימום כדי שאוכל להתמקד יותר בתוכנה. מכאן שהלכתי עם LED פשוט, התקנת סירים. הסיר ישלח נתונים וה- LED יקבל (בהירות PWM). באמצעות NodeJS הנתונים הטוריים נקראו (ערך פוטנציומטר) ונכתבו (בהירות LED). החלק הקשה בפרויקט זה היה קבלת נתוני קלט ממיקום מרוחק (שרת אינטרנט)
שלב 1: לוגיקת תוכנה: ארכיטקטורת מערכת
נתוני פוטנציומטר:
זה מתחיל בארדואינו, ערך הקריאה הוא הדפסה סדרתית. עם זאת, הפעם נשתמש ב- Node. JS לקריאת הערך. NodeJS יפתח תקשורת טורית לאותה יציאה שבה מחובר הארדואינו ויקרא את ערך הסיר המודפס. NodeJS יעלה את הנתונים למסד נתונים מרוחק של SQL, זה יקרה בכל פעם שיודפס ערך סיר חדש. דף אינטרנט יתחבר למרווח הגדרות מסד הנתונים של SQL ויאחזר את ערך הפוטנציומטר. לאחר מכן זה יוצג בדף האינטרנט.
נתוני Led:
עבור LED הבהירות PWM תוגדר על ידי המשתמש בדף אינטרנט מרוחק, כך שהמסע שלו מתחיל בקצה הנגדי של הספקטרום. נתוני הקלט נשמרים במסד נתונים של SQL, כל מרווח קבוצות שבסיס הנתונים נבדק על שינוי ב- PWM מוביל, זה נעשה על ידי NodeJS. אם הערך שונה מהערך הקודם, הערך החדש יישלח לארדואינו באמצעות אוטובוס סדרתי. ה- Arduino משנה את ערך PWM הפלט של ה- led כדי לשנות את בהירותו.
מחשבון חוק אוהם משתמש בנוסחה V = IR ו- P = IV = I²R = V²/R עבור פרויקט זה אשתמש בלד כחול. זה חשוב מכיוון שככל שתדר האור גדל גם ירידת המתח עולה. מכיוון שלאור כחול יש תדירות גבוהה יותר בהשוואה למשהו כמו LED אדום. המשמעות היא מתח קדימה גבוה יותר. בהתאם לייצור, סוג וגודל טווח העבודה ישתנה. עבור ההתקנה שלי, השתמשתי בנגד 220 Ω בסדרה, שלילי לקרקע וחיובי לסיכת PWM על Arduino. הסיר היה מחובר לסיכה אנלוגית. עם 5VCC קצה אחד GND השני והסיכה האמצעית מחוברים לסיכה אנלוגית (A0 במקרה שלי).
שלב 2: שלב 1: חיווט חומרה
זה פשוט מאוד: פשוט חבר את הנגד המגביל הנוכחי שלך בסדרה עם ה- LED וודא שההנהגה שלך תקינה. נקודה אחת תגיע ל- GND ואילו קצה אחר יגיע לסיכת Arduino. עבור ההתקנה שלי, השתמשתי בסיכה 12 עבור LED ו- A7 עבור Pot. אין לי סכמטי מאז המעגל הפשוט מאוד שלו. עם זאת, מצאתי את זה באינטרנט (תמונה)
שלב 3: שלב 2: ארדואינו
ראשית, הלייד והסיר נבדקו אם הם עובדים כצפוי. זה היה על ידי תוכנית פשוטה שבה ערך הסיר שולט ב- LED. השתמשתי בפונקציית אילוץ כדי לשנות את טווח הסירים של 0 עד 1023 ל -0 ל- 255, אבל גם פשוט /4 עובד. ערך הסיר הוחלק על ידי לקיחת הממוצע הממוצע מ -10 קריאות רצופות, זאת כדי להסיר קוצים. (עם זאת, החלקה זו גרמה לבעיות ב- NodeJS כך שהוסרה בהמשך הפרויקט - עוד על כך)
קוד ארדואינו
הקריאה / כתיבה סדרתית השלב הבא הוא לקחת קלט משתמשים באמצעות חלונות הצג הטוריים המסופקים על ידי ה- Arduino ide כדי להגדיר את הבהירות. לשם כך, נעשה שימוש ב- serial.parseInt () שלוקח ערך שלם ומתעלם ממחרוזת. כמו כן, בדיקת שגיאה מתווספת לקוד. הטווח התקף של ערך PWM הוא 0 - 255, כאשר משתמש מזין> 255 אז הוא מקצה את הערך 255 ואם המשתמש מזין ערך או <+/- 5 עשיתי זאת כדי להפוך את הקריאה ליציבה יותר מכיוון שהיא הייתה תנודה. מדוע זו בעיה גדולה הקשורה לעדכון SQL, עוד על כך בהמשך.
שלב 4: שלב 3: NodeJS
אני לא הולך להראות לך כיצד להשיג או להגדיר שרת SQL. יש טונות של הדרכות בחוץ.
לתוכנית NodeJS יש 3 היבטים עיקריים:
קרא נתונים סידוריים
כתוב נתונים סידוריים
עדכן את מסד הנתונים של SQL
כדי ליצור חיבור טורי בתוך NodeJS, יש להוריד מודול בשם serialport שניתן לבצע אותו באמצעות הפקודה npm. פתח את CMD בתיקייה שבה תוכנת NodeJS תישמר, התקן על ידי הקלדה: npm install serialport כמו כן יש להתקין את מודול SQL כדי להתחבר למסד הנתונים SQL: npm להתקין mysql NodeJS - יציאה סידרית השלב הראשון שלי עם ה- NodeJS התוכנית הייתה לקרוא את הנתונים המודפסים ולשלוח בהירות pwm ל- Arduino. זה נעשה על ידי פתיחת חיבור טורי באותו קורבנות ויציאה זהים. לאחר חיבור הקשר קראתי הודעות נכנסות והדפסתי אותו על חלון הקונסולה. הבעיה עלתה כאשר ניסיתי לכתוב את ערך pwm כדי לשלוט על הבהירות.
הוא המשיך לזרוק שגיאות: יציאה לא פתוחה, הפתרון הראשוני שלי היה להתקשר לפונקציית הכתיבה כשיש נתונים נכנסים. עם זאת זה היה תיקון גרוע ואני די לא מרוצה מהפתרון, למרות שהוא עבד הוא ישלח רק כאשר ערך הסיר ישתנה. הקוד לדוגמה של המודול הסידורי לא יפעל גם אם תטיל את אותה השגיאה. מאוחר יותר גיליתי שהתוכנית מנסה לבצע את פונקציית הכתיבה מבלי לפתוח את היציאה, מה שגרם לשגיאה זו. הגעתי לבעיה זו באמצעות הפונקציה setInterval ()
NodeJS - MySQL ספריית MySQL שימשה (npm להתקין MySQL) כדי להתחבר למסד הנתונים של SQL מכיוון שהשרת במיקום מרוחק השתמש בכתובת ה- IP של השרת במקום ב- localhost.
var con מחזיק את פרטי החיבור בפורמט JSON, לאחר שהחיבור בוצע בהצלחה, מסד הנתונים יכול להישאל. 2 פונקציות נוצרו אחת לעדכון הטבלה בחירה אחרת עם פרמטרים הנוטלים שאילתת SQL. טבלת העדכונים נקראת כאשר מתקבל ערך סיר חדש ושאילתת בדיקת הבהירות תפעל מעת לעת.
NodeJSCode Link
שלב 5: שלב 4: ממשק האינטרנט
ממשק אינטרנט
דף האינטרנט הראשי נכתב ב- PHP מכיוון שכבר היה לי ניסיון כלשהו ממאגרי ה- CO323 שלי וממודול האינטרנט באוניברסיטה. טבלת וטופס HTML שימשו להצגת נתוני ה- sql.
קוד גישה של PHP PHP: קישור גלול למקטע ממשק אינטרנט.
HTML & CSS * קוד דף אינטרנט של Javascript: קישור גלול לתחתית
דף אינטרנט סופי
מוּמלָץ:
צור תוכנת מסד נתונים של Access Access להכין משכורת בחברה שלך: 6 שלבים
צור תוכנת מסד הנתונים של MS להכין משכורת בחברה שלך: אני אתן לך את ההנחיה הקצרה ליצירת מערכת שכר באמצעות גישה ל- MS ליצירת משכורות חודשיות והדפסת תלושי משכורת בקלות עם זה. כך תוכל לשמור כל חודש את רשומות פרטי השכר תחת מסד הנתונים ולערוך או לבדוק מאוחר
מערכת נוכחות מבוססת טביעות אצבע ו RFID באמצעות מסד פטל ו- Database MySQL: 5 שלבים
מערכת נוכחות מבוססת טביעות אצבע ו- RFID באמצעות מסד פטל ו- MySQL: סרטון של פרויקט זה
UCL-IIOT-מערכת אזעקה עם מסד נתונים וצומת אדום: 7 שלבים
UCL-IIOT-מערכת אזעקה עם מסד נתונים וצומת אדום: מטרת בנייה זו היא ללמד על חיבור Arduino עם Node-red ומסד נתונים, כך שתוכל לרשום נתונים וגם לאסוף אותם לשימוש מאוחר יותר. מערכת אזעקה ארדואינו פשוטה שמפיקה 5 מספרי נתונים, כל אחד מופרד עם
יצירת מסד נתונים באמצעות XAMPP: 4 שלבים
יצירת מסד נתונים עם XAMPP: XAMPP היא הפצה חופשית לחלוטין של Apache המכילה MariaDB, PHP ו- Perl. XAMPP מספק ממשק גרפי ל- SQL, המאפשר לך לאחסן מידע במאגר הנתונים שניצור היום. כשהתחלתי להשתמש במאגרי מידע לפרויקטים
צור מסד נתונים במשרד פתוח: 7 שלבים
צור מסד נתונים ב- Open Office: בסיסי נתונים יכולים להיות מאוד מועילים. הם יכולים להיות מיוצרים לדברים אישיים, כמו אוסף תקליטורים למשל, או עסקים, למשהו כמו כמה מכוניות יש להם. אז עכשיו, אני הולך להראות לך כיצד ליצור מסד נתונים ב- Openoffice.Org