فهرست مطالب:
- مرحله 1: تجهیزات مورد نیاز ما..
- مرحله 2: اتصالات سخت افزاری
- مرحله 3: کد
- مرحله 4: کار با کد
- مرحله 5: برنامه ها و ویژگی ها
- مرحله 6: منابع برای پیشرفت بیشتر
تصویری: جهت گیری نقشه از طریق وب سرور: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
اینترنت اشیاء (IoT) یکی از موضوعات محبوب در حال حاضر در کره زمین است. و ، با اینترنت ، روز به روز در حال رشد سریع است. اینترنت اشیا خانه های ساده را به خانه های هوشمند تبدیل می کند ، جایی که همه چیز از چراغ تا قفل شما را می توان از طریق تلفن هوشمند یا رومیزی کنترل کرد. این همان تجملاتی است که همه می خواهند صاحب آن شوند.
ما همیشه با ابزارهایی که به دست آورده ایم بازی می کنیم و به کار خود ادامه می دهیم تا به مرحله بعدی محدودیت خود برویم. ما سعی می کنیم چشم اندازی از آخرین فناوری ها و ایده ها به مشتریان خود ارائه دهیم. بنابراین ، می توانید خانه خود را به خانه های هوشمند تبدیل کنید و از طعم لوکس بدون تلاش زیاد لذت ببرید.
امروز ، ما در حال کار روی یکی از مهمترین موضوعات در اینترنت اشیا - جهت گیری نقشه دیجیتال هستیم.
ما یک سرور وب ایجاد خواهیم کرد که از طریق آن می توانیم حرکات هر دستگاه یا چیزی را تحت نظر داشته باشیم (این به شما بستگی دارد ، شما چه کسی را جاسوسی می کنید ؛)). شما همیشه می توانید در مورد ارتقاء این پروژه به سطح بعدی با برخی تغییرات فکر کنید و فراموش نکنید که در نظرات زیر به ما بگویید.
بیایید شروع کنیم تا.. !!
مرحله 1: تجهیزات مورد نیاز ما..
1. سنسور LSM9DS0
سنسور 3 در 1 تولید شده توسط STMicroelectronics ، LSM9DS0 یک سیستم در بسته است که دارای یک سنسور شتاب دیجیتال سه بعدی خطی ، یک سنسور نرخ زاویه ای دیجیتال سه بعدی و یک سنسور مغناطیسی دیجیتال سه بعدی است. LSM9DS0 دارای مقیاس کامل شتاب خطی ± 2g/± 4g/± 6g/± 8g/± 16g ، میدان مغناطیسی مقیاس کامل ± 2/± 4/± 8/± 12 gauss و نرخ زاویه ای 245 ± است /± 500/± 2000 dps.
2. Adafruit Huzzah ESP8266
پردازنده ESP8266 از Espressif یک میکروکنترلر 80 مگاهرتز با یک WiFi کامل جلو (هم به عنوان مشتری و هم به عنوان نقطه دسترسی) و پشته TCP/IP با پشتیبانی DNS نیز می باشد. ESP8266 یک پلت فرم باور نکردنی برای توسعه برنامه های اینترنت اشیا است. ESP8266 یک پلت فرم بالغ برای نظارت و کنترل برنامه ها با استفاده از زبان Arduino Wire Language و Arduino IDE فراهم می کند.
3. برنامه نویس USB ESP8266
آداپتور میزبان ESP8266 وی به طور خاص توسط فروشگاه Dcube برای نسخه Adafruit Huzzah از 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 روی آن نصب شود (تصویر بالا را ببینید).
با کمک ESP8266 USB Programmer ، برنامه ریزی ESP بسیار آسان است. تنها کاری که باید انجام دهید این است که سنسور را به USB Programmer وصل کنید و راه خوبی است. ما ترجیح می دهیم از این آداپتور استفاده کنیم زیرا اتصال سخت افزار را بسیار آسان می کند. در مورد لحیم کردن پایه های ESP به سنسور یا خواندن نمودارها و برگه اطلاعات نگران نباشید. ما می توانیم از چندین سنسور به طور همزمان استفاده کرده و روی آن کار کنیم ، شما فقط باید یک زنجیره بسازید. بدون این برنامه USB Plug and play Programmer ، احتمال ایجاد اتصال اشتباه وجود دارد. یک سیم کشی اشتباه می تواند وای فای شما و همچنین سنسور شما را از بین ببرد.
توجه: سیم قهوه ای همیشه باید اتصال Ground (GND) بین خروجی یک دستگاه و ورودی دستگاه دیگر را دنبال کند.
تغذیه مدار
کابل Mini USB را به پریز برق Adafruit Huzzah ESP8266 وصل کنید. آن را روشن کنید و ویولا ، ما خوب هستیم!
مرحله 3: کد
کد ESP برای سنسور Adafruit Huzzah ESP8266 و LSM9DS0 در مخزن github ما موجود است.
قبل از رفتن به کد ، مطمئن شوید که دستورالعمل های ارائه شده در فایل Readme را مطالعه کرده اید و Adafruit Huzzah ESP8266 خود را مطابق آن تنظیم کرده اید. راه اندازی ESP تنها 5 دقیقه طول می کشد.
کد طولانی است اما به ساده ترین شکل است که می توانید تصور کنید و در درک آن مشکلی نخواهید داشت.
برای راحتی بیشتر ، می توانید کد ESP کارکرد این سنسور را از اینجا کپی کنید:
// با مجوز اراده آزاد توزیع می شود. // از آن به هر نحوی که می خواهید ، سود یا رایگان استفاده کنید ، مشروط بر اینکه در مجوزهای آثار مرتبط با آن متناسب باشد. // LSM9DSO // این کد برای کار با TCS3414_I2CS I2C Mini Module موجود در dcubestore.com طراحی شده است.
#عبارتند از
#عبارتند از
#عبارتند از
#عبارتند از
// آدرس LSM9DSO Gyro I2C 6A (106) است
#تعریف Addr_Gyro 0x6A // آدرس LSM9DSO Accl I2C 1E (30) #تعریف Addr_Accl 0x1E
const char* ssid = "ssid شما"؛
const char* رمز عبور = "گذرواژه شما"؛ int xGyro ، yGyro ، zGyro ، xAccl ، yAccl ، zAccl ، xMag ، yMag ، zMag ؛
سرور ESP8266WebServer (80) ؛
void handleroot ()
{داده int بدون علامت [6] ؛
// شروع انتقال I2C
Wire.beginTransmission (Addr_Gyro) ؛ // انتخاب control control 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) ؛ // انتخاب control control 1 Wire.write (0x20)؛ // سرعت شتاب داده = 100Hz ، X ، Y ، Z-Axis فعال است ، روشن کردن Wire.write (0x67) ؛ // توقف انتقال I2C در دستگاه Wire.endTransmission ()؛
// شروع انتقال I2C
Wire.beginTransmission (Addr_Accl) ؛ // کنترل کنترل را انتخاب کنید 2 Wire.write (0x21)؛ // مقیاس کامل +/- 16g 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 gauss Wire.write (0x60)؛ // توقف I2C Transmission Wire.endTransmission ()؛
// شروع انتقال I2C
Wire.beginTransmission (Addr_Accl) ؛ // کنترل کنترل را انتخاب کنید 7 Wire.write (0x26)؛ // حالت عادی ، حالت تبدیل پیوسته مغناطیسی Wire.write (0x00) ؛ // توقف I2C Transmission Wire.endTransmission ()؛ تأخیر (300) ؛
برای (int i = 0 ؛ i <6؛ i ++) {// شروع I2C Transmission Wire.beginTransmission (Addr_Gyro) ؛ // انتخاب ثبت نام Wire.write ((40 + i))؛ // توقف I2C Transmission Wire.endTransmission ()؛
// درخواست 1 بایت داده
سیم. درخواست از (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]) ؛
برای (int i = 0 ؛ i <6؛ i ++) {// راه اندازی I2C Transmission Wire.beginTransmission (Addr_Accl) ؛ // انتخاب ثبت نام Wire.write ((40 + i))؛ // توقف I2C Transmission Wire.endTransmission ()؛
// درخواست 1 بایت داده
سیم. درخواست از (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]) ؛
برای (int i = 0 ؛ i <6؛ i ++) {// راه اندازی I2C Transmission Wire.beginTransmission (Addr_Accl) ؛ // انتخاب ثبت نام Wire.write ((8 + i))؛ // توقف I2C Transmission Wire.endTransmission ()؛
// درخواست 1 بایت داده
سیم. درخواست از (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 ("Magnetic filed in Z-Axis:")؛ Serial.println (zMag) ؛
// خروجی داده ها به سرور وب
server.sendContent ("
فروشگاه DCUBE
www.dcubestore.com
"" LSM9DS0 Sensor I2C Mini Module
);
server.sendContent ("
X-Axis of rotation = " + String (xGyro))؛ server.sendContent ("
Y-Axis of rotation = " + String (yGyro))؛ server.sendContent ("
Z-Axis of rotation = " + String (zGyro))؛ server.sendContent ("
شتاب در X-Axis = " + رشته (xAccl)) ؛ server.sendContent ("
شتاب در Y-Axis = " + رشته (yAccl)) ؛ server.sendContent ("
شتاب در Z-Axis = " + رشته (zAccl)) ؛ server.sendContent ("
مغناطیسی در X-Axis = " + String (xMag)) ؛ server.sendContent ("
مغناطیسی در Y-Axis = " + String (yMag)) ؛ server.sendContent ("
مغناطیسی در Z-Axis = " + String (zMag)) ؛ تاخیر (1000)؛}
void setup ()
{// راه اندازی ارتباط I2C به عنوان MASTER Wire.begin (2 ، 14) ؛ // راه اندازی ارتباط سریال ، تنظیم نرخ baud = 115200 Serial.begin (115200)؛
// اتصال به شبکه WiFi
WiFi.begin (ssid ، رمز عبور) ؛
// منتظر اتصال باشید
while (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 pull) کرده و در Arduino IDE باز کنید.
کد را کامپایل و بارگذاری کنید و خروجی را در Serial Monitor ببینید.
توجه: قبل از بارگذاری ، مطمئن شوید که شبکه SSID و رمز عبور خود را در کد وارد کرده اید.
آدرس IP ESP8266 را از Serial Monitor کپی کرده و در مرورگر وب خود جایگذاری کنید. یک صفحه وب با محور چرخش ، شتاب و خواندن میدان مغناطیسی در 3 محور مشاهده خواهید کرد.
خروجی سنسور روی Serial Monitor و Web Server در تصویر بالا نشان داده شده است.
مرحله 5: برنامه ها و ویژگی ها
LSM9DS0 یک سیستم در بسته است که دارای یک سنسور شتاب دیجیتالی خطی سه بعدی ، یک سنسور نرخ زاویه ای دیجیتال سه بعدی و یک سنسور مغناطیسی دیجیتال سه بعدی است. با اندازه گیری این سه ویژگی ، می توانید اطلاعات زیادی در مورد حرکت یک جسم به دست آورید. با اندازه گیری نیرو و جهت میدان مغناطیسی زمین با یک مغناطیس سنج ، می توانید عنوان خود را تقریب بزنید. شتاب سنج موجود در تلفن شما می تواند جهت نیروی جاذبه را اندازه گیری کرده و جهت گیری (عمودی ، منظره ، مسطح و غیره) را تخمین بزند. کوادکوپترها با ژیروسکوپ های داخلی می توانند به دنبال رول ها یا زمین های ناگهانی باشند. ما می توانیم از آن در سیستم موقعیت یابی جهانی (GPS) استفاده کنیم.
برخی از برنامه های دیگر شامل ناوبری داخلی ، رابط کاربری هوشمند ، تشخیص حرکت پیشرفته ، دستگاه های ورودی بازی و واقعیت مجازی و غیره است.
با کمک ESP8266 ، می توانیم ظرفیت آن را به طول بیشتری افزایش دهیم. ما می توانیم لوازم خانگی خود را کنترل کرده و عملکرد دستگاه های رومیزی و دستگاه های تلفن همراه خود را کنترل کنیم. ما می توانیم داده ها را به صورت آنلاین ذخیره و مدیریت کنیم و در هر زمان برای اصلاح آنها را مطالعه کنیم. برنامه های کاربردی دیگر شامل اتوماسیون خانگی ، شبکه مش ، کنترل بی سیم صنعتی ، مانیتورهای کودک ، شبکه های حسگر ، وسایل الکترونیکی پوشیدنی ، دستگاه های آگاه از مکان Wi-Fi ، چراغ های سیستم موقعیت مکانی Wi-Fi است.
مرحله 6: منابع برای پیشرفت بیشتر
برای اطلاعات بیشتر در مورد LSM9DS0 و ESP8266 ، پیوندهای زیر را بررسی کنید:
- برگه اطلاعات سنسور LSM9DS0
- نمودار سیم کشی LSM9DS0
- برگه اطلاعات ESP8266
توصیه شده:
تهیه نقشه نقشه با استفاده از Google Maps: 17 مرحله (همراه با تصاویر)
با استفاده از Google Maps یک نقشه نقشه بسازید: روز دیگر من در کتابفروشی به دنبال راهنمای خیابان در DuPage County ، IL بودم ، زیرا دوست دخترم آنجا زندگی می کند و به نقشه خیابانی دقیق نیاز دارد. متأسفانه ، تنها موردی که نزدیک داشتند یکی برای شهرستان کوک بود (مانند این
دستبند جهت گیری متصل: 6 مرحله
دستبند جهت گیری متصل: این پروژه دانشگاهی ، دستبند جهت گیری متصل ، توسط چهار دانش آموز از دانشکده مهندسی Polytech Paris-UPMC انجام شد: S & eacute؛ bastien Potet ، Pauline Pham ، Kevin Antunes و Boris Bras. پروژه ما چیست؟ در طول یک ترم ،
مطالعه جهت گیری با Raspberry Pi و MXC6226XU با استفاده از پایتون: 6 مرحله
مطالعه جهت گیری با Raspberry Pi و MXC6226XU با استفاده از پایتون: صداها تنها بخشی از کارکردن یک وسیله نقلیه هستند. صدای همهمه موتور خودرو بسیار تنظیم شده صدایی باشکوه است. لاستیک در جاده زمزمه می کند ، باد هنگام حرکت در اطراف آینه ها ، تکه های پلاستیکی و قطعاتی که در داشبورد قرار دارد ، صدای جیغ می کشد
طراحی و تحقق سیستم جهت گیری پانل های فتوولتائیک: 5 مرحله
طراحی و تحقق سیستم جهت گیری پانل های فتوولتائیک: طراحی و تحقق سیستم جهت گیری پانل های فتوولتائیک
ربات جهت گیری خودکار پایه آردوینو: 8 مرحله (همراه با تصاویر)
ربات Arduino Base Auto Direction: این ربات است که با اجتناب از موانع حرکت می کند. این شیء و نمای اطراف را حس می کند و در جایی که فضای آزاد در دسترس است ادامه می دهد