פרסומת
Wi-Fi הוא ערכה חיונית עבור כל פרויקטים DIY של אינטרנט של דברים (IoT), אך הארדואינו החביב שלנו לא מגיע עם Wi-Fi, והוספת מגן Wi-Fi יכולה להביא את העלות הכוללת לסביבות 40 $. מה אם הייתי אומר לך שיש לוח פיתוח תואם Arduino עם Wi-Fi מובנה בפחות מ -10 $? ובכן, יש.
הכירו את רוצח ארדואינו: ESP8266. זה היה רק עניין של זמן עד שנגנב הכתר מהראש המבריק של לוח הפיתוח של ארדואינו היקר שלנו. האם אפשר להתאהב בלוח מעגלים?
מלבד שמות תפסים, ESP8266 (המכונה גם NodeMCU) שווק במקור כתוסף Wi-Fi בעלות נמוכה עבור לוחות ארדואינו, עד שקהילת ההאקרים הבינה שאפשר לחתוך את הארדואינו מהמשוואה לגמרי.
בתוך פחות משנה, ה- ESP8266 זכה לפופולריות רבה, וכעת הוא תומך ופיתח כל כך טוב, שאם אתה משתמש כרגע בארדואינו, אתה צריך לקום ולשים לב. קנה אחד עכשיולאחר מכן עקוב אחר מדריך זה כדי להתחיל בתכנות של ה- ESP8266 שלך - הכל מתוך ה- IDE של Arduino המוכר.
אתה לא מוגבל להשתמש ב- IDE של ארדואינו כמובן - הם גם תואמים את לואה (שנראה כמו פיתון מרופד בעיניי עיניים מתחילות), אבל מכיוון שאנו מתמודדים עם זה מנקודת המבט של אלה שלמדנו על ארדואינו, זה מה שנכסה בלעדית היום.
יש לא מעט דגמים של ESP8266 עכשיו, אבל אני הולך להמשיך ולהמליץ על הדגם הזה: ESP-12E (ידוע גם בשם NodeMCU 1.0, או שזה האח הכי חדש של NodeMCU 2.0).
הוא מעט יקר יותר מהאחרים (6.50 $ לעומת 4 $!), אבל כולל את מנהל ההתקן הסדרתי הדרוש לתכנת השבב, ויש לו רגולטור כוח מובנה, כמו גם המון סיכות IO. זה נתמך באופן נרחב וממש לא צריך שום דבר מלבד חיבור USB לתכנות או חשמל, כך שזה הכי קל לעבוד איתו. אם אתה קונה לוח ESP8266 מסוג אחר, יתכן שתזדקק לווסת חשמל נפרד 3.3V ולחיבור FTDI מתאים לתכנות.
תחילת העבודה עם ESP8266-12E וארדואינו
ראשון, התקן את מנהלי ההתקן הסדריים עבור הלוח הזה. יתכן שתצטרך השבת חתימת KEXT אם אתה מנהל את אל קפיטן בגלל מערכות אבטחה חדשות.
בשלב הבא עלינו לאפשר תמיכה ב- ESP8266 ממנהל הלוח של Arduino IDE. פתח את העדפות והזן את כתובת האתר הבאה שבה כתוב כתובות אתרים נוספות של מנהל הלוח:
לחץ על אישור, ואז פתח את מנהל לוחות מ כלים -> לוח בתפריט, חפש את esp8266 והתקן את הפלטפורמה. כעת אתה אמור לראות בחירה עבור NodeMCU 1.0.
השאירו את המעבד והעלו מהירות כמות שהוא, ובחרו את היציאה הטורית החדשה שלכם. ב- Mac זה מופיע כ- cu. SLAB_USBtoUART.
כתוכנית ראשונה, הייתי מציע לסורק ה- Wi-Fi הפשוט - מצא אותו מ- קובץ -> דוגמאות -> ESP8266WiFi -> WifiScan. שים לב שהוא לאט להעלות, אך בסופו של דבר יאמר "הועלה שהושלמה" ובנקודה זו (לא לפני כן, או שתשבור את תהליך ההעלאה), אתה יכול לפתוח את המסך הסידורי. אתה אמור לראות משהו דומה לזה:
הצלחה! עכשיו, נסה להתחבר לאחד.
להלן קוד פשוט של עצמות בר לחיבור לרשת Wi-Fi. זה לא עושה שום דבר מלבד רק להתחבר, אבל זה משהו שתוכל להוסיף יותר מאוחר מדי. רק זכור לשנות את YOUR_SSID ו- YOUR_PASSWORD לפרטי ה- Wi-Fi שלך. העלה, פתח את המסוף הסידורי וכדאי שתראה שהוא מתחבר.
#include const char * ssid = "YOUR_SSID"; const char * סיסמא = "YOUR_PASSWORD"; WiFiClient wifiClient; הגדרת חלל () {Serial.begin (115200); Serial.print ("מתחבר ל"); Serial.println (ssid); WiFi.begin (ssid, סיסמא); while (WiFi.status ()! = WL_CONNECTED) {עיכוב (500); Serial.print ("."); } Serial.println (""); Serial.println ("חיבור WiFi"); Serial.println ("כתובת IP:"); Serial.println (WiFi.localIP ()); } לולאת חלל () {}
האין זה נהדר עד כמה זה היה פשוט מגוחך?
לפני שנמשיך הנה להלן תרשים הפינה - זה עשוי להועיל בהמשך. שים לב שמספרי הסיכה המוזכרים בקוד הם מספרי ה- GPIO, ולא ה- D0-16 שנכתב ככל הנראה על לוח הלוח של הלוח שלך. אם אתה, באופן חיובי, לא מצליח להבין מדוע חיישן לא עובד, כנראה שילבת את מספרי הסיכה.
חיישן בית חכם מהיר עם MQTT ו- DHT11
הנה דוגמה מעשית שתוכלו להשתמש בהן מייד למעקב אחר הבית שלכם. אנו נוסיף חיישן טמפרטורה ולחות DHT11 ונדווח על הערכים באמצעות פרוטוקול MQTT דרך רשת ה- Wi-Fi, במקרה שלי למערכת אוטומציה ביתית DIY של OpenHAB (אם לא, אולי תרצה לקרוא שלנו מדריך למתחילים להעלאת OpenHAB על Pi פטל תחילת העבודה עם אוטומציה ביתית של OpenHAB ב- Raspberry PiOpenHAB היא פלטפורמת אוטומציה ביתית לבוגרת עם קוד פתוח הפועלת על מגוון חומרה והיא פרוטוקול אגנוסטי, כלומר זה יכול להתחבר כמעט לכל חומרת אוטומציה ביתית בשוק היום. קרא עוד , וחלק 2 העוסק באופן ספציפי התקנת שרת MQTT מדריך למתחילים של OpenHAB חלק 2: ZWave, MQTT, כללים ומפותOpenHAB, תוכנת האוטומציה של הקוד הפתוח, חורגת בהרבה מהיכולות של מערכות אוטומציה ביתיות אחרות בשוק - אך לא קל להתקין אותה. למעשה, זה יכול להיות מתסכל לחלוטין. קרא עוד ).
בצד החיווט, חבר את חיישן ה- DHT אליו GND, 3.3v, ו ~ D4 (או GPIO 2). זה כל מה שאנחנו צריכים לעת עתה.
הורד ספריות MQTT ו- DHT. גם אם כבר יש לך אותם, הורידו את אלה בכל מקרה, גבו את מה שיש ברשותכם, והחלו עם אלה. ספריית DHT11 האחרונה של Adafruit משתמשת באלגוריתם אוטומטי לקביעת המהירות שבה נתונים נקראים מהחיישן, אך הם באגים ב- ESP8266 ו 90% מהזמן גורמים לכישלון קריאות.
עם הגרסה הישנה 1.0 של הספרייה שכללתי בהורדה, אתה יכול לשנות את התזמון באופן ידני: 11 עובד בצורה הטובה ביותר עבור לוחות ESP2866 אלה. עברתי גם עותקים רבים של ספריית MQTT בניסיון למצוא אחד טוב התקשר חזרה פונקציה, סוף סוף נוחתת על זו הכלולה. תצטרך להפעיל מחדש את ה- IDE של ארדואינו לאחר החלפת אלה.
הנה ה קוד מלא לפרויקט. בחלקו העליון כל המשתנים שאתה צריך לשנות, כולל פרטי Wi-Fi, שרת MQTT (ניתן להשתמש בכתובת URL במקום זאת אם אתה משתמש בשרת ענן, אם כי אין אימות במקום), וערוצים לפרסום נתונים עליהם.
כך זה עובד וכמה הערות:
- ראשית אנו מתחברים ל- Wi-Fi, אחר כך לשרת MQTT, ואז מתחילים את הראשי לולאה ().
- בתוך הלולאה אנו סוקרים את חיישן DHT כל 60 שניות ומפרסמים קריאות לערוצי MQTT הרלוונטיים. שוב, אם אתה מוצא את מרבית תוצאות הקריאה בהודעת כישלון, יש לך את הגירסה הלא נכונה של ספריית DHT - שדרג לאחור ל- v1.0.
- client.loop () מעביר שליטה לספריית MQTT, ומאפשר לה להגיב להודעות נכנסות.
- יש הודעה התקבלה() פונקציה בה אנו מטפלים בהודעות נכנסות - פשוט עשה הצהרה פשוטה אם אם להשוות את העומס עם ההודעה שאתה מצפה לה. אתה יכול להשתמש בזה להפעלת ממסר למשל.
- לאחר שהפעלתי את אלה במשך כמה ימים, גיליתי שהם יפסיקו לעבוד באופן אקראי - אני מניח שמדובר בסוג של דליפת זיכרון, אך אין לי את מיומנות הקידוד להתמודד עם זה וזה יכול להיות עם ספריות הליבה, בחרתי לאפס פשוט רך כל יום. יום אחד בדיוק לאחר שהצמתים של החיישנים מופעלים לראשונה, הם יופעלו מחדש.
- כשאתה מפעיל את המודולים הזולים של DHT11 מ- 3.3v, ערכי הלחות נמוכים בהרבה ממה שהם צריכים להיות. פתרתי זאת עם כפל פשוט, וכיילתי מול חיישן מסחרי. אני ממליץ לך לאשר גם נגד המקור הידוע שלך לפני שתסתמך על הקריאות. לחלופין, כוח אותם עם 5V - אבל עליך למקם מחלף ברמה ההיגיון של 5v-3.3v בין סיכת הנתונים לבין ESP8266, אחרת אתה תפגע בו.
אם הכל התנהל כשורה, כעת עליך לקבל קריאות חיישנים במתווך MQTT שלך, ותוכל להמשיך בחיבור אלה ל- OpenHAB כמפורט ב חלק 2 במדריך למתחילים שלנו מדריך למתחילים של OpenHAB חלק 2: ZWave, MQTT, כללים ומפותOpenHAB, תוכנת האוטומציה של הקוד הפתוח, חורגת בהרבה מהיכולות של מערכות אוטומציה ביתיות אחרות בשוק - אך לא קל להתקין אותה. למעשה, זה יכול להיות מתסכל לחלוטין. קרא עוד , שם גם הראיתי לכם כיצד לתאר את הנתונים.
פרידה ארדואינו, אהבנו אותך כל כך. רק צוחק: לא בכל מקום בבית שלי אפילו יכול לקבל Wi-Fi, כך שבמקומות האלה אני עדיין אצטרך רשת רשת עם מקלטים של ארדואינו ו- RF.
לפרויקט מהנה, בדקו כיצד ליצור כפתור Wi-Fi באמצעות ESP8266 כיצד ליצור לחצן Wi-Fi משלך מחובר באמצעות ESP8266במדריך זה תלמדו כיצד ליצור כפתור המאפשר Wi-Fi באמצעות NodeMCU ו- IFTTT. קרא עוד .
אבל מה תעשה עם ESP8266? יש לך פרויקטים המשתמשים ב- ESP8266 שתרצה להירשם באתר MakeUseOf? ספרו לנו בתגובות!
ג'יימס הוא בעל תואר ראשון בבינה מלאכותית, והוא מוסמך CompTIA A + ו- Network +. הוא המפתח הראשי של MakeUseOf, ומבלה את זמנו הפנוי במשחקי פיינטבול VR ומשחקי לוח. הוא בנה מחשבים אישיים מאז שהיה ילד.