תוכן עניינים:
- שלב 1: ציוד שאנחנו צריכים..
- שלב 2: חיבורי חומרה
- שלב 3: קוד
- שלב 4: עבודה של קוד
- שלב 5: יישומים ותכונות
- שלב 6: משאבים להמשך הדרך
וִידֵאוֹ: כיוון המפה באמצעות שרת האינטרנט: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
Internet of Things, (IoT) הוא אחד הנושאים הפופולריים על כדור הארץ כרגע. וזה גדל במהירות מיום ליום עם האינטרנט. אינטרנט הדברים משנה בתים פשוטים לבתים חכמים, שבהם ניתן לשלוט על הכל מהאורות שלך ועד למנעולים מהסמארטפון או משולחן העבודה שלך. זהו המותרות שכולם רוצים להחזיק.
אנחנו תמיד משחקים בכלים שקיבלנו וממשיכים לעבוד על השלב הבא של הגבולות שלנו. אנו מנסים לתת ללקוח שלנו חזון של הטכנולוגיות והרעיונות העדכניים ביותר. אז, שתוכל להפוך את הבית שלך לבתים חכמים וליהנות מטעם המותרות ללא הרבה מאמצים.
כיום אנו חושבים על עבודה על אחד הנושאים החשובים ביותר ב- IoT - כיוון מפות דיגיטליות.
נבנה שרת אינטרנט שדרכו נוכל לעקוב אחר התנועות של כל מכשיר או דבר (זה תלוי בך, שאתה רוצה לרגל;)). אתה תמיד יכול לחשוב על שדרוג הפרויקט הזה לשלב הבא עם כמה שינויים ואל תשכח לספר לנו בתגובות למטה.
נתחיל מ.. !!
שלב 1: ציוד שאנחנו צריכים..
1. חיישן LSM9DS0
חיישן 3-in-1 המיוצר על ידי STMicroelectronics, ה- LSM9DS0 הוא מערכת-בתוך-חבילה הכוללת חיישן האצה לינארית תלת-ממדית, חיישן תלת-ממדי דיגיטלי וחיישן מגנטי דיגיטלי תלת-ממדי. ל- LSM9DS0 האצה לינארית בקנה מידה מלא של ± 2g/± 4g/± 6g/± 8g/± 16g, שדה מגנטי בקנה מידה מלא של ± 2/± 4/± 8/± 12 גאוס וקצב זוויתי של ± 245 /± 500/± 2000 dps.
2. חזרת Adafruit ESP8266
מעבד ESP8266 מ- Espressif הוא מיקרו-בקר 80 מגה-הרץ עם חזית WiFi מלאה (הן כלקוח ונקודת גישה) וערימת TCP/IP עם תמיכה ב- DNS גם כן. ה- ESP8266 היא פלטפורמה מדהימה לפיתוח יישומי IoT. ה- ESP8266 מספק פלטפורמה בוגרת לניטור ובקרה של יישומים באמצעות שפת החוטים של Arduino ו- Arduino IDE.
3. מתכנת USB ESP8266
מתאם המארח ESP8266 שלו תוכנן במיוחד על ידי חנות Dcube לגרסת החומרה Adafruit של ESP8266, המאפשרת ממשק I²C.
4. כבל חיבור I2C
5. מיני כבל USB
כבל USB המיני ספק הכוח הוא בחירה אידיאלית להפעלת ה- Adafruit Huzzah ESP8266.
שלב 2: חיבורי חומרה
באופן כללי, יצירת קשרים היא החלק הקל ביותר בפרויקט זה. עקוב אחר ההוראות והתמונות, ולא אמורות להיות לך בעיות.
קודם כל קח את Adafruit Huzzah ESP8266 והנח עליו את מתכנת ה- USB (עם יציאת I²C כלפי פנים). לחץ על מתכנת ה- USB בעדינות וסיימנו עם שלב זה קל כמו עוגה (ראו תמונה למעלה).
חיבור החיישן ו Adafruit Huzzah ESP8266 קח את החיישן וחבר איתו את כבל I²C. להפעלה תקינה של כבל זה, זכור יציאת I²C מתחברת תמיד לכניסת I²C. אותו הדבר היה צריך לעקוב אחר Adafruit Huzzah ESP8266 כאשר מתכנת ה- USB מותקן מעליו (ראה התמונה למעלה).
בעזרת מתכנת USB ESP8266, קל מאוד לתכנת ESP. כל מה שאתה צריך לעשות הוא לחבר את החיישן למתכנת USB ואתה מוכן ללכת. אנו מעדיפים להשתמש במתאם זה מכיוון שהוא הרבה יותר קל לחבר את החומרה. אין לדאוג לגבי הלחמת סיכות ה- ESP לחיישן או קריאת תרשימי הפינים וגיליון הנתונים. אנחנו יכולים להשתמש ולעבוד על מספר חיישנים בו זמנית, אתה רק צריך ליצור שרשרת. ללא מתכנת USB מסוג plug and play, קיים סיכון רב לביצוע חיבור שגוי. חיווט גרוע יכול להרוג את ה- wifi שלכם וגם את החיישן שלכם.
הערה: החוט החום צריך תמיד לעקוב אחר חיבור הארקה (GND) בין הפלט של התקן אחד לקלט של התקן אחר.
הפעלת המעגל
חבר את כבל המיני USB לשקע החשמל של Adafruit Huzzah ESP8266. הדליקו אותו וואלה, אנחנו מוכנים לצאת לדרך!
שלב 3: קוד
קוד ESP לחיישן Adafruit Huzzah ESP8266 ו- LSM9DS0 זמין במאגר github שלנו.
לפני שתמשיך עם הקוד, הקפד לקרוא את ההוראות המופיעות בקובץ ה- Readme ולהגדיר את Adafruit Huzzah ESP8266 בהתאם לכך. ייקח רק 5 דקות להגדיר את ה- ESP.
הקוד ארוך אך הוא בצורה הפשוטה ביותר שתוכל לדמיין ולא תתקשו להבין אותו.
לנוחיותכם, תוכלו להעתיק מכאן גם את קוד ה- ESP שעובד עבור חיישן זה:
// מופץ ברישיון רצון חופשי. // השתמש בו בכל דרך שתרצה, להרוויח או בחינם, בתנאי שהוא מתאים לרישיונות של העבודות המשויכות אליו. // LSM9DSO // קוד זה נועד לעבודה עם מודול מיני TCS3414_I2CS I2C הזמין באתר dcubestore.com.
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל
// כתובת LSM9DSO Gyro I2C היא 6A (106)
#define Addr_Gyro 0x6A // LSM9DSO כתובת Accl I2C היא 1E (30) #define Addr_Accl 0x1E
const char* ssid = "ssid שלך";
const char* password = "הסיסמה שלך"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;
שרת ESP8266 WebServer (80);
void handleroot ()
{נתוני int ללא חתום [6];
// התחל את שידור I2C
שידור Wire.beginTransmission (Addr_Gyro); // בחר פקד בקרה 1 Wire.write (0x20); // קצב נתונים = 95Hz, X, Y, Z-Axis מופעל, הפעל Wire.write (0x0F); // עצור את I2C Transmission Wire.endTransmission ();
// התחל את שידור I2C
שידור Wire.beginTransmission (Addr_Gyro); // בחר פקד בקרה 4 Wire.write (0x23); // 2000 dps בקנה מידה מלא, עדכון רציף Wire.write (0x30); // עצור את I2C Transmission Wire.endTransmission ();
// התחל את שידור I2C
שידור Wire.beginTransmission (Addr_Accl); // בחר פקד בקרה 1 Wire.write (0x20); // קצב נתוני האצה = 100Hz, X, Y, Z-Axis מופעל, הפעל Wire.write (0x67); // עצור את שידור I2C במכשיר Wire.endTransmission ();
// התחל את שידור I2C
שידור Wire.beginTransmission (Addr_Accl); // בחר פקד בקרה 2 Wire.write (0x21); // בחירה בקנה מידה מלא +/- 16 גרם Wire.write (0x20); // עצור את I2C Transmission Wire.endTransmission ();
// התחל את שידור I2C
שידור Wire.beginTransmission (Addr_Accl); // בחר פקד בקרה 5 Wire.write (0x24); // רזולוציה גבוהה מגנטית, קצב נתוני פלט = 50Hz Wire.write (0x70); // עצור את I2C Transmission Wire.endTransmission ();
// התחל את שידור I2C
שידור Wire.beginTransmission (Addr_Accl); // בחר פקד בקרה 6 Wire.write (0x25); // מגנטי בקנה מידה מלא +/- 12 גאוס Wire.write (0x60); // עצור את I2C Transmission Wire.endTransmission ();
// התחל את שידור I2C
שידור Wire.beginTransmission (Addr_Accl); // בחר פקד בקרה 7 Wire.write (0x26); // מצב רגיל, מצב המרה רציף מגנטי Wire.write (0x00); // עצור את I2C Transmission Wire.endTransmission (); עיכוב (300);
for (int i = 0; i <6; i ++) {// התחל I2C Transmission Wire.beginTransmission (Addr_Gyro); // בחר את רישום הנתונים Wire.write ((40 + i)); // עצור את I2C Transmission Wire.endTransmission ();
// בקש בתים של נתונים
Wire.requestFrom (Addr_Gyro, 1);
// קרא 6 בתים של נתונים
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb if (Wire.available () == 1) {data = Wire.read (); }}
// המר את הנתונים
int xGyro = ((נתונים [1] * 256) + נתונים [0]); int yGyro = ((נתונים [3] * 256) + נתונים [2]); int zGyro = ((נתונים [5] * 256) + נתונים [4]);
for (int i = 0; i <6; i ++) {// התחל I2C Transmission Wire.beginTransmission (Addr_Accl); // בחר את רישום הנתונים Wire.write ((40 + i)); // עצור את I2C Transmission Wire.endTransmission ();
// בקש בתים של נתונים
Wire.requestFrom (Addr_Accl, 1);
// קרא 6 בתים של נתונים
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb // zAccl lsb, zAccl msb if (Wire.available () == 1) {data = Wire.read (); }}
// המר את הנתונים
int xAccl = ((נתונים [1] * 256) + נתונים [0]); int yAccl = ((נתונים [3] * 256) + נתונים [2]); int zAccl = ((נתונים [5] * 256) + נתונים [4]);
for (int i = 0; i <6; i ++) {// התחל I2C Transmission Wire.beginTransmission (Addr_Accl); // בחר את רישום הנתונים Wire.write ((8 + i)); // עצור את I2C Transmission Wire.endTransmission ();
// בקש בתים של נתונים
Wire.requestFrom (Addr_Accl, 1);
// קרא 6 בתים של נתונים
// xMag lsb, xMag msb, yMag lsb, yMag msb // zMag lsb, zMag msb if (Wire.available () == 1) {data = Wire.read (); }}
// המר את הנתונים
int xMag = ((נתונים [1] * 256) + נתונים [0]); int yMag = ((נתונים [3] * 256) + נתונים [2]); int zMag = ((נתונים [5] * 256) + נתונים [4]);
// נתוני פלט לצג הסדרתי
Serial.print ("ציר X של סיבוב:"); Serial.println (xGyro); Serial.print ("ציר סיבוב Y:"); Serial.println (yGyro); Serial.print ("ציר סיבוב Z:"); Serial.println (zGyro); Serial.print ("האצה בציר X:"); Serial.println (xAccl); Serial.print ("האצה בציר Y:"); Serial.println (yAccl); Serial.print ("האצה בציר Z:"); Serial.println (zAccl); Serial.print ("שדה מגנטי בציר X:"); Serial.println (xMag); Serial.print ("שדה מגנטי בציר Y:"); Serial.println (yMag); Serial.print ("מגנטי הוגש ב- Z-Axis:"); Serial.println (zMag);
// נתוני פלט לשרת האינטרנט
server.sendContent ("
חנות DCUBE
www.dcubestore.com
"" מודול מיני חיישן LSM9DS0 חיישן I2C
);
server.sendContent ("
ציר X של סיבוב = " + מחרוזת (xGyro)); server.sendContent ("
ציר Y של סיבוב = " + מחרוזת (yGyro)); server.sendContent ("
ציר סיבוב Z = " + מחרוזת (zGyro)); server.sendContent ("
האצה ב- X-Axis = " + String (xAccl)); server.sendContent ("
האצה בציר Y = " + מחרוזת (yAccl)); server.sendContent ("
האצה ב- Z-Axis = " + מחרוזת (zAccl)); server.sendContent ("
מגנטית מתועדת ב- X-Axis = " + String (xMag)); server.sendContent ("
Magnetic הופיע ב- Y-Axis = " + String (yMag)); server.sendContent ("
מגנטי שהוגש ב- Z-Axis = " + מחרוזת (zMag)); עיכוב (1000);}
הגדרת חלל ()
{// אתחול תקשורת I2C כ- MASTER Wire.begin (2, 14); // אתחל תקשורת טורית, הגדר קצב שידור = 115200 Serial.begin (115200);
// התחבר לרשת WiFi
WiFi.begin (ssid, סיסמא);
// המתן לחיבור
בעוד (WiFi.status ()! = WL_CONNECTED) {עיכוב (500); Serial.print ("."); } Serial.println (""); Serial.print ("מחובר ל-"); Serial.println (ssid);
// קבל את כתובת ה- IP של ESP8266
Serial.print ("כתובת IP:"); Serial.println (WiFi.localIP ());
// הפעל את השרת
server.on ("/", handleroot); server.begin (); Serial.println ("שרת HTTP הופעל"); }
לולאת חלל ()
{server.handleClient (); }
שלב 4: עבודה של קוד
כעת, הורד (או git משוך) את הקוד ופתח אותו ב- Arduino IDE.
הידור והעלה את הקוד וראה את הפלט ב- Monitor Serial.
הערה: לפני ההעלאה, הקפד להזין את קוד ה- SSID והסיסמה שלך.
העתק את כתובת ה- IP של ESP8266 מהצג הסידורי והדבק אותה בדפדפן האינטרנט שלך. תראה דף אינטרנט עם ציר סיבוב, האצה וקריאת שדות מגנטיים בציר 3 הצירים.
פלט החיישן במסך טורי ובשרת האינטרנט מוצג בתמונה למעלה.
שלב 5: יישומים ותכונות
ה- LSM9DS0 הוא מערכת-בתוך-חבילה הכוללת חיישן האצה ליניארי תלת-ממדי, חיישן תדר זוויתי דיגיטלי תלת-ממדי וחיישן מגנטי דיגיטלי תלת-ממדי. על ידי מדידת שלושת המאפיינים הללו, תוכל לצבור ידע רב אודות תנועת אובייקט. מדידת הכוח והכיוון של השדה המגנטי של כדור הארץ בעזרת מגנטומטר, תוכל לקבוע את הכותרת שלך בערך. מד תאוצה בטלפון שלך יכול למדוד את כיוון כוח הכובד ולהעריך כיוון (דיוקן, נוף, שטוח וכו '). Quadcopters עם ג'ירוסקופים מובנים יכולים להשגיח על לחמניות או מגרשים פתאומיים. אנו יכולים להשתמש בזה במערכת מיקום גלובלית (GPS).
עוד כמה יישומים כוללים ניווט פנימי, ממשקי משתמש חכמים, זיהוי מחוות מתקדם, התקני קלט משחקים ומציאות מדומה וכו '.
בעזרת ESP8266, אנו יכולים להגדיל את הקיבולת שלו לאורך רב יותר. אנו יכולים לשלוט במכשירי החשמל שלנו ולפקח שם על הביצועים מהשולחנות והמכשירים הניידים שלנו. אנו יכולים לאחסן ולנהל את הנתונים באופן מקוון וללמוד אותם בכל עת לשינויים. יישומים נוספים כוללים אוטומציה ביתית, רשת רשת, בקרה אלחוטית תעשייתית, צגי תינוקות, רשתות חיישנים, אלקטרוניקה לבישה, התקני Wi-Fi המודעים למיקום, משואות מערכת מיקום Wi-Fi.
שלב 6: משאבים להמשך הדרך
למידע נוסף על LSM9DS0 ו- ESP8266, עיין בקישורים הבאים:
- גיליון נתונים של חיישן LSM9DS0
- תרשים חיווט LSM9DS0
- גליון נתונים ESP8266
מוּמלָץ:
שליטה ב- Led באמצעות אפליקציית Blynk באמצעות Nodemcu דרך האינטרנט: 5 שלבים
שליטה באמצעות LED באמצעות אפליקציית Blynk באמצעות Nodemcu דרך האינטרנט: שלום לכולם היום נראה לכם כיצד תוכלו לשלוט על LED באמצעות סמארטפון דרך האינטרנט
ESP8266 ו- Visuino: שרת האינטרנט טמפרטורה ולחות DHT11: 12 שלבים
ESP8266 ו- Visuino: שרת אינטרנט של טמפרטורה ולחות DHT11: מודולי ESP8266 הם בקרים עצמאיים בעלי עלות נמוכה בעלי Wi-Fi מובנה, וכבר הכנתי מספר הוראות עליהם. DTH11/DTH21/DTH22 ו- AM2301 הם טמפרטורה משולבת מאוד פופולרית. וחיישני Arduino לחות, ועשיתי מספר
נקודת גישה ESP8266 NodeMCU (שרת אינטרנט) עבור שרת אינטרנט עם חיישן טמפרטורה DT11 והדפסת טמפרטורה ולחות בדפדפן: 5 שלבים
נקודת גישה ESP8266 NodeMCU (AP) עבור שרת אינטרנט עם חיישן טמפרטורה DT11 וטמפרטורת הדפסה ולחות בדפדפן: שלום חברים ברוב הפרויקטים בהם אנו משתמשים ב- ESP8266 וברוב הפרויקטים אנו משתמשים ב- ESP8266 כשרת אינטרנט כך שניתן יהיה לגשת לנתונים ב כל מכשיר באמצעות wifi על ידי גישה לשרת האינטרנט המתארח על ידי ESP8266 אך הבעיה היחידה היא שאנחנו צריכים נתב עובד עבור
IOT: ESP 8266 Nodemcu השליטה ברצועת LED Neopixel Ws2812 באמצעות האינטרנט באמצעות אפליקציית BLYNK: 5 שלבים
IOT: ESP 8266 Nodemcu השליטה ברצועת LED Neopixel Ws2812 באמצעות האינטרנט באמצעות אפליקציית BLYNK: שלום חבר'ה, במדריך זה הכנתי מנורה באמצעות רצועת LED של neopixel הניתנת לשליטה באינטרנט מכל רחבי העולם באמצעות אפליקציית BLYNK ו- nodemcu היא עובד כמוח של הפרויקט הזה, אז הפוך את אור הסביבה שלך עבורך
עקיפת שרת חומת אש/שרת proxy: 3 שלבים
עקיפת שרת חומת אש/שרת proxy: סטודנטים רבים אחרים הגיעו ושאלו אותי כיצד ניתן להגיע לחומות האש והפרוקסי. אנשי IT בבית הספר הופכים חכמים יותר בנוגע לתלמידים שמשתמשים בפרוקסיות. חשבתי על הנושא הזה זמן מה ויש לי פתרון. למה לא ליצור דפי אינטרנט משלך