فهرست مطالب:

Mappifier - نقشه برداری + سیستم اعلان: 9 مرحله
Mappifier - نقشه برداری + سیستم اعلان: 9 مرحله

تصویری: Mappifier - نقشه برداری + سیستم اعلان: 9 مرحله

تصویری: Mappifier - نقشه برداری + سیستم اعلان: 9 مرحله
تصویری: Why Are Millions Left Behind? ~ Abandoned Castle From The 1600's 2024, نوامبر
Anonim
Mappifier - نقشه برداری + سیستم اعلان
Mappifier - نقشه برداری + سیستم اعلان

رانندگی در شب بسیار سرگرم کننده است. اما اغلب ، به نظر می رسد یک کابوس است ، به شکل حیواناتی که از جاده عبور می کنند (به ویژه آن گربه ها و سگ های ولگرد ، که منتظر شما هستند تا در نزدیکی آنها رانندگی کنید تا بتوانند عبور کنند !!). بنابراین من فکر کردم چیزی را تهیه کنم که هنگام نزدیک شدن به این مکان های آسیب پذیر به شما هشدار دهد ، تا بتوانید با دقت بیشتری رانندگی کنید.

این سیستم دارای دو بخش است: جمع آوری داده ها و بازیابی اطلاعات. بخش اول داده های مکان را می گیرد ، یعنی مکانهایی که احتمال عبور حیوانات در آنها بیشتر است. این داده ها باید به صورت دستی اضافه شوند و بر روی نقشه به روز شوند. قسمت دوم مکان فعلی ما را می گیرد و سپس آن را با داده های جمع آوری شده مقایسه می کند و اعلان ها یا هشدارهای مناسب ارائه می شود.

تدارکات

سخت افزار مورد استفاده

برد توسعه وای فای ESP8266

ماژول GPS Ublox NEO-6M

LED ها

دکمه فشار لحظه ای

نرم افزار مورد استفاده

آردوینو IDE

هر گونه ویرایشگر جاوا اسکریپت

Firebase (برای ذخیره و بازیابی اطلاعات)

مرحله 1: واحد سخت افزار

سخت افزار به دو صورت (حالت) مورد نیاز است: 1) ذخیره محل در پایگاه داده: این بخش عمده ای از فرایند جمع آوری اطلاعات است. مکان بازیابی شده توسط ماژول GPS از طریق یک تابلوی توسعه ESP8266 WiFi به پایگاه داده Firebase ارسال می شود.

2) در هنگام ناوبری اعلان ها را ارائه دهید: در طول ناوبری ، مکان فعلی بازیابی شده و به پایگاه داده ارسال می شود. با هر بار به روزرسانی مکان ، فاصله بین مکان فعلی و آن مکانها (که در حین جمع آوری داده ذخیره شده بودند) محاسبه می شود و توسط ماژول ESP8266 بازیابی می شود و سپس با توجه به نزدیک بودن کاربر از مکانهای ذخیره شده به کاربر هشدار می دهد.

من سه LED را برای اطلاع از تغییر حالت ها و همچنین به روز رسانی موفقیت آمیز پایگاه داده و یک چراغ هشدار برای اطلاع از نزدیکی کاربر به محل ذخیره شده اضافه کردم.

دکمه فشار برای ذخیره مکان تنها با یک کلیک (در حالت ذخیره/جمع آوری داده) و همچنین برای تغییر بین این حالت ها استفاده می شود.

تغذیه

در ابتدا از باتری لیپو 3.7 ولت 300 میلی آمپر ساعتی استفاده شد ، اما مشکلاتی را به همراه داشت. مشکل اصلی بازنشانی ESP8266 بود (ممکن است به دلیل جهش های فعلی باشد). همچنین باتری زیاد دوام نمی آورد. بالاخره یک پاوربانک به کمک من آمد.

مرحله 2: مدار

جریان
جریان

مرحله 3: درباره Firebase

درباره Firebase
درباره Firebase
درباره Firebase
درباره Firebase
درباره Firebase
درباره Firebase
درباره Firebase
درباره Firebase

Firebase یک پلت فرم توسعه برنامه های تلفن همراه و وب است که متعلق به Google است. این ویژگی های زیادی دارد ، اما در اینجا من فقط از دو مورد از آنها استفاده می کنم ، پایگاه داده Realtime و عملکردهای ابر.

برای شروع به کار در Firebase ،

1. ابتدا به صفحه وب firebase بروید.

2. اکنون به کنسول بروید و روی ایجاد یک پروژه جدید کلیک کنید.

3. برای ایجاد پروژه باید نام پروژه را به همراه سایر جزئیات ارائه دهید.

4. پس از ایجاد پروژه ، روی گزینه پایگاه داده از پنجره کناری کلیک کنید تا یک پایگاه داده جدید ایجاد شود.

5. همین کار را برای توابع انجام دهید.

اینها مراحل کلی برای ایجاد یک پروژه هستند ، firebase به خوبی مستند شده است و بسیاری از مجموعه های ویدیویی YouTube برای مبتدیان وجود دارد ، لطفاً برای درک بیشتر از آنها استفاده کنید.

مرحله 4: پایگاه داده بیدرنگ

پایگاه داده بیدرنگ
پایگاه داده بیدرنگ
پایگاه داده بیدرنگ
پایگاه داده بیدرنگ

پس از ایجاد پایگاه داده ، مرحله بعدی این است که ببینید چگونه داده های موجود در پایگاه داده ذخیره می شوند و چگونه می توان به آنها دسترسی پیدا کرد. برای نوشتن یا خواندن به/از پایگاه داده ، باید قوانین پایگاه داده را پیکربندی کنید. برای توسعه ، می توانیم از یک قانون باز استفاده کنیم تا هرکسی که دارای مرجع پایگاه داده است بتواند بخواند/بنویسد اما هنگام پیکربندی قوانین مراقب باشید. پایگاه داده داده ها را در قالب JSON ذخیره می کند و با همه دستگاه هایی که به پایگاه داده. شما می توانید گره های فرزند را با استفاده از علامت "+" اضافه کنید ، اما گره ها همچنین می توانند به صورت برنامه نویسی ایجاد شوند. همه داده هایی که در پایگاه داده در حالت "ذخیره" بارگذاری می کنیم (محل ذخیره شده جمع آوری شده) در اینجا به عنوان گره جداگانه ذخیره می شود ، در حالی که داده ها در حالت "اعلان" (بازیابی داده ها هنگام ناوبری) هر بار به روز می شوند (تصویر را بررسی کنید).

مرحله 5: تنظیم عملکردهای Firebase

راه اندازی توابع Firebase
راه اندازی توابع Firebase
راه اندازی توابع Firebase
راه اندازی توابع Firebase
راه اندازی توابع Firebase
راه اندازی توابع Firebase

ما برای محاسبه نزدیک بودن مکان فعلی به مکانهای ذخیره شده به چیزی نیاز داریم و عملکردهای ایجاد شده در پایگاه داده کار ما را انجام می دهد. توابع در جاوا اسکریپت نوشته شده اند و باید روی پایگاه آتش مستقر شوند.

شما باید node.js را بر روی رایانه خود نصب کرده باشید.

1) اکنون رابط خط فرمان firebase را با استفاده از دستور "npm install -g firebase -tools" در خط فرمان خود بارگیری کنید

2) اکنون باید با استفاده از دستور "ورود به سیستم firebase" به Firebase وارد شوید (اگر قبلاً وارد سیستم نشده اید باید رمز ورود خود را به gmail بدهید)

3) پس از این به فهرست پروژه خود بروید و عملکرد را با دستور "firebase init" آغاز کنید. برای شروع عملکردهای firebase برای پروژه خود باید گزینه 'functions' را انتخاب کنید.

4) حالا باید به پوشه 'functions' در فهرست پروژه خود بروید و فایل 'index.js' را پیدا کنید.

5) فایل را با ویرایشگر متن ویرایش کنید و فایل را ویرایش کنید/فایل را با mappifier_function.txt جایگزین کنید. (این به طور موثر عملکرد ما خواهد بود)

6) در نهایت عملکرد خود را با استفاده از "استقرار firebase" در خط فرمان مستقر کنید.

می توانید بررسی کنید که آیا عملکرد زیر منوی عملکرد روی کنسول firebase شما مستقر شده است یا خیر

مرحله 6: کد

کد
کد
کد
کد
کد
کد

برای ESP8266:

این برد با استفاده از اطلاعات کاربری به WiFi و Firebase متصل می شود و منتظر فشار یک دکمه فشاری است. با توجه به مدت زمان فشار دادن دکمه ، حالت های مختلف آغاز می شود. در حالت جمع آوری داده ها (اجازه دهید این حالت "ذخیره" را صدا کنیم) ، هر بار فشار دکمه منجر به ارسال موقعیت فعلی به پایگاه داده می شود در حالی که در حالت بازیابی اطلاعات ("حالت اطلاع رسانی") ، مکان فعلی به پایگاه داده ارسال می شود. و فاصله به صورت خودکار از پایگاه داده بازیابی می شود. LED ها را برای هشدارها (نزدیکی به محل مشخص شده) و اعلانات (مانند رفع GPS ، اتصال WiFi ، نوشتن پایگاه داده موفق ، تغییر حالت و غیره) اضافه کردم.

برای عملکرد Firebase:

این تابع برای نوشتن به گره "مکان فعلی" در پایگاه داده بررسی می کند و فاصله بین مکان های موجود در پایگاه داده و مکان فعلی را محاسبه می کند و سپس کوچکترین فاصله ای را پیدا می کند که سپس به گره "فاصله" در پایگاه داده نوشته می شود.

به خاطر داشته باشید که قبل از بارگذاری برنامه خود ، اعتبارنامه wifi و اعتبارنامه firebase خود را اضافه کنید. (لطفاً تصاویر را ببینید). همچنین ، اگر تازه وارد ESP8266 شده اید و کد آنها را در Arduino IDE وارد کرده اید ، به این موارد مراجعه کنید.

مرحله 7: مرحله اختیاری (ساخت محوطه)

مرحله اختیاری (ساخت محوطه)
مرحله اختیاری (ساخت محوطه)
مرحله اختیاری (ساخت محوطه)
مرحله اختیاری (ساخت محوطه)
مرحله اختیاری (ساخت محوطه)
مرحله اختیاری (ساخت محوطه)
مرحله اختیاری (ساخت محوطه)
مرحله اختیاری (ساخت محوطه)

برای اینکه قسمت سخت افزاری جمع و جور شود تا بتوان آن را نصب کرد ، یک محفظه کوچک برای قرار دادن آنها در داخل ایجاد کردم. چند سوراخ برای نصب LED ها و اتصال کابل USB ایجاد شده است. اما محوطه نهایی فراتر از انتظار من بود !! کاملاً در کف دست من قرار داشت و به راحتی بر روی دسته چرخه و روی فرمان قابل نصب بود.

مرحله 8: در عمل…

در اینجا یک ویدئوی کوچک وجود دارد که هر دو حالت (ذخیره و اعلان) را با LED های هشدار و اعلان نشان می دهد.

مرحله 9: حرکت بیشتر…

حرکت بیشتر…
حرکت بیشتر…

این سیستم می تواند برای اهداف مختلف مورد استفاده قرار گیرد ، به عنوان مثال ، با توجه به سناریوی موجود ، اگر می توانید مکان های گسترش بیماری را دریافت کرده و آن را در پایگاه داده ذخیره کنید ، هنگامی که به آن مکان ها نزدیک می شوید ، هشدارهایی توسط این سیستم ارائه می شود. اما من به طور جدی در فکر دریافت اطلاعات عبور حیوانات از سراسر جهان هستم تا رانندگان محتاط باشند و بسیاری از حیوانات را از تصادفات نجات دهند. من یک صفحه وب ساده ایجاد کرده ام (اما هنوز میزبانی نشده است) که دارای تمام داده های جمع آوری شده باشد. اینها داده هایی است که من در هنگام پیاده روی یا دوچرخه سواری جمع آوری کردم (هر زمان که گربه یا سگی را در کنار جاده می بینم زیرا بیشتر در معرض عبور هستند) اما برای پیاده سازی این موارد به داده های بسیار بیشتری نیاز داریم.

من نسبت به ایجاد صفحات وب (عمدتا جاوا اسکریپت) و سایر موارد بسیار جدید هستم و دوست دارم پیشنهادات و تخصص شما را داشته باشم:)

توصیه شده: