সুচিপত্র:

রাস্তা পর্যবেক্ষণ: 15 টি ধাপ
রাস্তা পর্যবেক্ষণ: 15 টি ধাপ

ভিডিও: রাস্তা পর্যবেক্ষণ: 15 টি ধাপ

ভিডিও: রাস্তা পর্যবেক্ষণ: 15 টি ধাপ
ভিডিও: নিজের মধ্যে লুকিয়ে থাকা প্রতিভাকে খোঁজার উপায় | How To Find Your Passion | Bangla Motivational Video 2024, জুলাই
Anonim
রাস্তা পর্যবেক্ষণ
রাস্তা পর্যবেক্ষণ

আজ আমরা আপনাকে দেখাবো কিভাবে আমরা অ্যাকসিলরোমিটার, লোরাওয়ান, অ্যামাজন ওয়েব সার্ভিস এবং গুগল ক্লাউড এপিআই এর উপর ভিত্তি করে একটি সড়ক বিশৃঙ্খলা পর্যবেক্ষণ ব্যবস্থা স্থাপন করি।

ধাপ 1: প্রয়োজনীয়তা

  • ডিস্কো- L072CZ-LRWAN1 বোর্ড
  • X-NUCLEO-IKS01A2 সম্প্রসারণ মডিউল (accellerometer জন্য)
  • X-NUCLEO-GNSS1A1 (স্থানীয়করণের জন্য)
  • একটি AWS অ্যাকাউন্ট
  • একটি গুগল ক্লাউড প্ল্যাটফর্ম অ্যাকাউন্ট

ধাপ 2: সেন্সরের ফার্মওয়্যার তৈরি এবং ফ্ল্যাশ করা

জিপিআইও পিনের মাধ্যমে বোর্ডের উপরে IKS01A2 এবং GNSS1A1 সংযুক্ত করুন। GitHub থেকে ফার্মওয়্যারের কোড ডাউনলোড করুন। এআরএম এমবেডে একটি অ্যাকাউন্ট তৈরি করুন (যদি আপনার ইতিমধ্যে না থাকে) এবং অনলাইন কম্পাইলারে রেপোতে কোডটি আমদানি করুন। DISCO-L072CZ-LRWAN1 এ টার্গেট প্ল্যাটফর্ম সেট করুন এবং প্রকল্পটি সংরক্ষণ করুন। এখন থিংস নেটওয়ার্কে যান এবং আপনার যদি ইতিমধ্যে এটি না থাকে তবে একটি অ্যাকাউন্ট তৈরি করুন। একটি অ্যাপ্লিকেশন তৈরি করুন, অ্যাপ্লিকেশনের ভিতরে একটি নতুন ডিভাইস তৈরি করুন এবং সংযোগ মোডটি OTAA তে সেট করুন। Mbed_app.json ফাইলে নিম্নলিখিত ক্ষেত্রগুলি পূরণ করার জন্য উপযুক্ত পরামিতিগুলি ধরুন: "lora.appskey", "lora.nwkskey", "lora.device-address"।

সেন্সর পর্যায়ক্রমে অ্যাকসিলরোমিটার এবং জিএনএসএস ডেটা রেকর্ড করবে এবং সেগুলি লোরা সংযোগের মাধ্যমে নিকটবর্তী গেটওয়েতে পাঠাবে, যা তাদের থিংস নেটওয়ার্কে আমাদের আবেদনে পাঠাবে। পরবর্তী ধাপ হল একটি ক্লাউড সার্ভার সেট আপ করা, এবং টিটিএন -তে একটি HTTP ইন্টিগ্রেশন।

ধাপ 3: ক্লাউড সেট আপ করা

ক্লাউড সেট আপ করা হচ্ছে
ক্লাউড সেট আপ করা হচ্ছে

এখন আমরা ক্লাউড ইনফ্রাস্ট্রাকচার স্থাপনের জন্য প্রস্তুত যা সমস্ত মোতায়েন করা বোর্ড থেকে ডেটা সংগ্রহ ও একত্রিত করবে। এই অবকাঠামোটি নীচের চিত্রে দেখানো হয়েছে এবং এটি দ্বারা গঠিত:

  • Kinesis, ইনকামিং ডেটা স্ট্রিম পরিচালনা করার জন্য;
  • ল্যাম্বদা, তথ্য সংরক্ষণের আগে ফিল্টার এবং প্রিপ্রোসেস করা;
  • এস 3, সমস্ত ডেটা সংরক্ষণ করতে;
  • EC2, তথ্য বিশ্লেষণ এবং আমাদের ফ্রন্ট-এন্ড হোস্ট করার জন্য।

ধাপ 4: AWS Lambda সেট আপ করুন

AWS Lambda সেট আপ করুন
AWS Lambda সেট আপ করুন

আমরা ল্যাম্বদা থেকে শুরু করে এই অবকাঠামো স্থাপনের জন্য প্রয়োজনীয় পদক্ষেপগুলি ব্যাখ্যা করব।

  1. আপনার AWS অ্যাকাউন্ট দিয়ে লগইন করুন, এবং কনসোল প্রধান পৃষ্ঠা থেকে এবং ল্যাম্বডায় যান
  2. Create Function- এ ক্লিক করুন
  3. পৃষ্ঠার উপরের অংশে এটি স্ক্র্যাচ থেকে লেখক নির্বাচন করা উচিত। তারপরে ছবির মতো অন্যান্য ক্ষেত্রগুলি সম্পূর্ণ করুন এবং তারপরে ফাংশন তৈরি করুন ক্লিক করুন
  4. এখন যেহেতু আপনি একটি AWS Lambda ফাংশন তৈরি করেছেন, https://github.com/roadteam/data-server এ যান এবং aws_lambda.py ফাইলের বিষয়বস্তু সম্পাদকের মধ্যে কপি করুন যেটি আপনি পৃষ্ঠার দ্বিতীয়ার্ধে পাবেন। আপনার ল্যাম্বদা ফাংশন এখন প্রস্তুত:)

ধাপ 5: AWS Kinesis Firehose Data Stream সেট আপ করুন

AWS Kinesis Firehose Data Stream সেট আপ করুন
AWS Kinesis Firehose Data Stream সেট আপ করুন
  1. এডব্লিউএস কনসোলের মূল পৃষ্ঠায় এখন ফিরে আসুন এবং পরিষেবাগুলিতে কিনেসিসে যান
  2. এখন আপনি কিনেসিসের মূল পাতায় আছেন। পৃষ্ঠার ডানদিকে, 'কিনেসিস ফায়ারহোজ ডেলিভারি স্ট্রিমস' এর অধীনে, 'নতুন ডেলিভারি স্ট্রিম তৈরি করুন' নির্বাচন করুন
  3. 'ডেলিভারি স্ট্রিম নেম'-এ লিখুন' রোড-মনিটরিং-স্ট্রিম '। অন্যান্য ক্ষেত্রগুলিকে ডিফল্টে ছেড়ে দিন এবং পরবর্তী ক্লিক করুন
  4. এখন 'AWS Lambda এর সাথে সোর্স রেকর্ড ট্রান্সফর্ম করুন' এর অধীনে Enabled নির্বাচন করুন এবং Lambda ফাংশন হিসেবে নতুন তৈরি হওয়া 'রোড-মনিটরিং-ল্যাম্বডা' এ ক্লিক করুন। ফাংশন টাইমআউট সম্পর্কে একটি সতর্কতা পপ আপ হলে চিন্তা করবেন না, যেহেতু আমরা যে অপারেশনটি করছি তা কম্পিউটেশনালভাবে ব্যয়বহুল নয়। অন্যান্য ক্ষেত্রগুলিকে ডিফল্টে ছেড়ে দিন এবং পরবর্তী ক্লিক করুন
  5. গন্তব্য হিসাবে আমাজন এস 3 নির্বাচন করুন এবং এস 3 গন্তব্য হিসাবে নতুন তৈরি করুন নির্বাচন করুন। বালতির নাম হিসেবে 'রোড-মনিটরিং-বালতি' লিখুন এবং তারপর যান। এখন অন্যান্য ক্ষেত্রগুলিকে ডিফল্টে ছেড়ে দিন এবং পরবর্তী ক্লিক করুন
  6. আপনি বাফারের আকার 1MB এবং বাফারের ব্যবধান 60 সেকেন্ডে সেট করতে চাইতে পারেন। বাফারটি S3 তে ফ্লাশ করা হবে যখনই দুটি শর্তের মধ্যে একটি সন্তুষ্ট হবে। পৃষ্ঠাটি ছেড়ে যাবেন না, পরবর্তী ধাপ দেখুন

ধাপ 6: কিনেসিসের জন্য IAM ভূমিকা সেট আপ করুন

কিনেসিসের জন্য IAM ভূমিকা সেট আপ করুন
কিনেসিসের জন্য IAM ভূমিকা সেট আপ করুন

এখন আমরা কিনেসিসের জন্য নিরাপত্তা অনুমতিগুলি সেট আপ করেছি, যেহেতু এটি অবশ্যই ল্যাম্বডা ফাংশনকে প্রি -প্রসেসিংয়ের জন্য কল করবে এবং তারপর এটি S3 তে লিখবে

  1. যে পৃষ্ঠায় আপনি 'IAM ভূমিকায়' আছেন তার নীচে 'বেছে নিন নতুন তৈরি করুন' নির্বাচন করুন, ছবির মতো একটি নতুন IAM ভূমিকা তৈরি করুন এবং অনুমতি দিন ক্লিক করুন
  2. এখন আপনি আগের পৃষ্ঠায় ফিরে এসেছেন, পরবর্তী ক্লিক করুন। এখন আপনি সমস্ত পরামিতি দুবার চেক করতে চাইতে পারেন। শেষ হয়ে গেলে 'ডেলিভারি স্ট্রিম তৈরি করুন' এ ক্লিক করুন

Kinesis-Lambda-S3 পাইপলাইন চালু এবং চলছে!

ধাপ 7: AWS EC2 সেট আপ করুন

AWS EC2 সেট আপ করুন
AWS EC2 সেট আপ করুন

এখন আমরা কিছু API গুলির সাথে EC2 উদাহরণ স্থাপন করব যা আমাদের AWS ক্লাউড এবং সার্ভার যেখানে আমাদের অ্যাপ্লিকেশন ফ্রন্টএন্ড হোস্ট করবে সেখান থেকে ডেটা পুশ এবং টানতে অনুমতি দেবে। উত্পাদন পরিবেশে, আপনি আরও স্কেলেবল AWS API গেটওয়ে ব্যবহার করে API প্রকাশ করতে চাইতে পারেন।

  1. AWS কনসোল প্রধান পৃষ্ঠা থেকে, EC2 পরিষেবাতে যান
  2. লঞ্চ ইনস্ট্যান্স এ ক্লিক করুন
  3. উপরের সার্চ বারে এই কোডটি পেস্ট করুন: 'ami-08935252a36e25f85', এটি ব্যবহার করার জন্য পূর্বনির্ধারিত ভার্চুয়াল মেশিনের সনাক্তকরণ কোড। ডানদিকে নির্বাচন ক্লিক করুন
  4. 'টাইপ' কলাম থেকে t2.micro নির্বাচন করুন এবং 'পর্যালোচনা করুন এবং চালু করুন' ক্লিক করুন। উদাহরণটি এখনও চালু করবেন না, পরবর্তী ধাপে যান

ধাপ 8: EC2 এর জন্য IAM নিরাপত্তা ভূমিকা সেট আপ করুন

EC2 এর জন্য IAM নিরাপত্তা ভূমিকা সেট আপ করুন
EC2 এর জন্য IAM নিরাপত্তা ভূমিকা সেট আপ করুন
  1. চালু করার আগে আমরা আমাদের দৃষ্টান্তের নিরাপত্তা গোষ্ঠী পরিবর্তন করতে চাই। এটি করার জন্য, 'নিরাপত্তা গোষ্ঠী' বিভাগের একেবারে ডানদিকে 'নিরাপত্তা গোষ্ঠী সম্পাদনা করুন' ক্লিক করুন নিম্নরূপ একটি নতুন নিরাপত্তা গোষ্ঠী সেট আপ করুন। এটি মূলত আপনার উদাহরণের ফায়ারওয়ালকে কনফিগার করে যা SSH সংযোগের জন্য পোর্ট 22 এবং HTTP পরিষেবার জন্য পোর্ট 80 প্রকাশ করে
  2. আবার ক্লিক করুন 'পর্যালোচনা করুন এবং চালু করুন'। এখন পরীক্ষা করুন যে সমস্ত পরামিতি সেট করা আছে। শেষ হলে লঞ্চ ক্লিক করুন
  3. ক্লিক করলে একটি নতুন উইন্ডো পপ -আপ হবে উদাহরণের সাথে ssh সংযোগের জন্য একটি কী পেয়ার সেট করতে। 'নতুন কী পেয়ার তৈরি করুন' নির্বাচন করুন এবং নাম হিসেবে 'ec2-road-monitoring' লিখুন। ডাউনলোড কী পেয়ার ক্লিক করুন। এটি অত্যন্ত গুরুত্বপূর্ণ যে এই ফাইলটি হারিয়ে যায় বা (খারাপ) অনিরাপদভাবে সংরক্ষণ করা হয়: আপনি আবার কীটি ডাউনলোড করতে পারবেন না। একবার.pem কী ডাউনলোড করলে উদাহরণ চালু করার জন্য প্রস্তুত

ধাপ 9: আপনার EC2 ইনস্ট্যান্স অ্যাক্সেস করুন

আপনার EC2 ইনস্ট্যান্স অ্যাক্সেস করুন
আপনার EC2 ইনস্ট্যান্স অ্যাক্সেস করুন

আপনার নতুন EC2 উদাহরণ AWS ক্লাউডে আছে। আপনি এর আগে ডাউনলোড করা কী ফাইলের সাথে এটি সংযুক্ত করতে পারেন (এই টিউটোরিয়ালের জন্য আমরা ধরে নিই যে আপনি ssh এর মূল বিষয়গুলি জানেন)। আপনি 'বর্ণনা' বিভাগে ড্যাশবোর্ডে নির্বাচন করে উদাহরণের আইপি পুনরুদ্ধার করতে পারেন: আপনি আপনার পাবলিক আইপি বা আপনার পাবলিক ডিএনএস উভয়ই ব্যবহার করতে পারেন এটি একই। একটি ssh ক্লায়েন্টের সাথে এখন কমান্ডটি প্রবেশ করান:

ssh -i ec2-road-monitoring.pem ec2-user@YOUR-IP-ADDR-OR-DNS

যেখানে ec2-road-monitoring.pem আপনার আগে তৈরি করা কী।

এখন সার্ভার-সাইড কোডটি টানতে এগিয়ে যান

git clone --recursive

ধাপ 10: Google মানচিত্র API পুনরুদ্ধার করুন

Google মানচিত্র API পুনরুদ্ধার করুন
Google মানচিত্র API পুনরুদ্ধার করুন

আমাদের কাজ প্রায় শেষ। এখন আমাদের এইচটিএমএল পৃষ্ঠায় গুগল ম্যাপস এপিআই সেট আপ করতে হবে যাতে ব্যবহারকারীকে ওয়েপয়েন্টের সাথে মানচিত্র প্রদর্শন করা যায়:

  1. আপনার গুগল অ্যাকাউন্টে লগইন করুন এবং https://cloud.google.com/maps-platform/ এ যান
  2. পৃষ্ঠার বাম দিকে 'শুরু করুন' এ ক্লিক করুন
  3. মেনুতে 'মানচিত্র' নির্বাচন করুন এবং তারপরে অবিরত ক্লিক করুন
  4. প্রকল্পের নাম হিসাবে 'রাস্তা-পর্যবেক্ষণ' লিখুন এবং পরবর্তী ক্লিক করুন
  5. আপনার বিলিং বিবরণ লিখুন এবং চালিয়ে যান ক্লিক করুন
  6. এখন আপনার প্রকল্পটি প্রস্তুত এবং আমরা APIs এবং পরিষেবাদি -> শংসাপত্রগুলিতে ক্লিক করে API কী পেতে যাচ্ছি

ধাপ 11: সার্ভার চালু করুন

সার্ভার চালু করুন
সার্ভার চালু করুন

এবং সেখানে এটি আপনার API কী। সর্বশেষ আপনাকে যা করতে হবে তা হল data_visualization/anomalies_map.html এ যান এবং আপনার চাবিকে ফাইলের শেষে কপি করুন, 'আপনার কী-এখানে' প্রতিস্থাপন করে।

এখন সব সেট এবং যেতে প্রস্তুত! এটি EC2 উদাহরণে কার্যকর করা শুরু করতে: 'সিডি ডেটা-সার্ভার' 'পাইথন flask_app.py'

আপনার ব্রাউজারে আপনার EC2 উদাহরণের আইপি বা ডিএনএস ঠিকানা লিখুন, আপনার কিছু ডামি ডেটা সহ অসঙ্গতির মানচিত্র দেখা উচিত

ধাপ 12: থিংস নেটওয়ার্কে HTTP ইন্টিগ্রেশন করুন

থিংস নেটওয়ার্কে HTTP ইন্টিগ্রেশন সম্পাদন করুন
থিংস নেটওয়ার্কে HTTP ইন্টিগ্রেশন সম্পাদন করুন

এখন যেহেতু আমাদের সমস্ত ব্যাকএন্ড অবকাঠামো আছে এবং আমরা চলছি আমরা HTTP ইন্টিগ্রেশন করার জন্য প্রক্রিয়া করতে পারি।

  1. একটি নতুন অ্যাপ্লিকেশন তৈরি করুন এবং আপনার ডিভাইস নিবন্ধন করুন। আমরা TTN এর প্রাথমিক জ্ঞান ধরে নিই, যদি না শুরু করি দ্রুত নির্দেশিকা
  2. আপনার অ্যাপ্লিকেশন মেনুতে 'ইন্টিগ্রেশন' নির্বাচন করুন এবং তারপর 'ইন্টিগ্রেশন যোগ করুন'
  3. HTTP ইন্টিগ্রেশন নির্বাচন করুন
  4. চিত্রের পরে ক্ষেত্রগুলি প্রবেশ করুন এবং আপনার EC2 ip বা পাবলিক DNS দিয়ে প্রতিস্থাপন করুন

ধাপ 13: ডেটা প্রসেসিং

সেন্সর থেকে সংগৃহীত প্রতিটি ডেটা টির জন্য আপনাকে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করতে হবে:

  1. T- এর স্থানীয় অঞ্চলে জিপিএস কো -অর্ডিনেট আছে এমন টুপলের সেট পান।
  2. প্রতিটি নিকটতম টুপল N এর জন্য N- তে অ্যাকসিলরোমিটার Z- অক্ষের বর্গ গড় গণনা করুন।
  3. বর্গাকার মান বিচ্যুতি গণনা করুন। ছদ্দকোডে: std = sum ([(x. Z_accel ** 2 - mean) ** 2 for x in near])
  4. এই বিন্যাসে আউটপুট: lat, long, Z_accel ** 2, mean, std

স্থানীয় এলাকা গণনা করতে মিটারে জিপিএস দূরত্ব ব্যবহার করুন। C ++ এ:

#D2R সংজ্ঞায়িত করুন (M_PI / 180.0)

#সংজ্ঞায়িত করুন EARTH_RAY 6371 ডাবল দূরত্ব (ডাবল ল্যাট 1, ডাবল লং 1, ডাবল ল্যাট 2, ডাবল লং 2) {ডাবল ডলং = (লং 2 - লং 1) * ডি 2 আর; ডবল dlat = (lat2 - lat1) * D2R; double a = pow (sin (dlat/2.0), 2) + cos (lat1 * D2R) * cos (lat2 * D2R) * pow (sin (dlong/2.0), 2); ডাবল c = 2 * atan2 (sqrt (a), sqrt (1-a));

এখন, পূর্ববর্তী ধাপে উৎপন্ন মধ্যবর্তী ডেটা ব্যবহার করে, অসঙ্গতিগুলি সনাক্ত করুন এবং প্রতিটি লাইনে প্রয়োগ করা এই স্নিপড ব্যবহার করে একটি নিরীহ শ্রেণীবিভাগ করুন:

লাইন = মানচিত্র (float, line.split (","))

v = line [2] mean = line [3] std = line [4] যদি v (mean + std*3): if v (mean + std*2): if v (mean + std): o.append ([1, লাইন [0], লাইন [1]) অন্য: o.append ([2, লাইন [0], লাইন [1]) অন্য: o.append ([3, লাইন [0], লাইন [1])

অসঙ্গতিগুলি 68–95-99.7 নিয়ম

এখন আপনার এই ফরম্যাটের একটি সংগ্রহ আছে [type, lat, long]।

টাইপ অর্থ নিম্নরূপ:

  1. সামান্য অসঙ্গতি, সম্ভবত অপ্রাসঙ্গিক
  2. মাঝারি অসঙ্গতি
  3. সমালোচনামূলক অসঙ্গতি

ধাপ 14: দৃশ্যায়ন

ভিজ্যুয়ালাইজেশন
ভিজ্যুয়ালাইজেশন

ভিজ্যুয়ালাইজেশন অংশ বুঝতে এবং পরিবর্তন করতে হলে আমাদের অবশ্যই কাস্টম মার্কার ব্যবহার করতে শিখতে হবে, গুগল ম্যাপস এপিআই এর একটি বৈশিষ্ট্য

প্রথমত, মানচিত্রটি একটি কলব্যাকের মাধ্যমে শুরু করতে হবে:

ফাংশন initMap () {

ডেটা = queryData (); মানচিত্র = নতুন google.maps. Map (document.getElementById ('map'), {zoom: 15, center: {lat: data [0] [1], lng: data [0] [2]}}); মন্তব্য (); }

একটি এইচটিএমএল ট্যাগে এই কলব্যাকের নামটি ইউআরএল (আমরা আমাদের এপিআই কী এর আগে এখানে ertedোকানো হয়েছিল) উল্লেখ করুন:

স্ক্রিপ্ট async defer src = https://maps.googleapis.com/maps/api/js?key=।

বস্তু তৈরি হলে মানচিত্রে একটি চিহ্নিতকারী সন্নিবেশ করা যেতে পারে:

নতুন google.maps. Marker ({অবস্থান: {lat: LATITUDE, lng: LONGITUDE}, map: map, icon: "/path/to/icon.png"})

আপনি কোডটিতে দেখতে পারেন যে অসঙ্গতির ডেটাসেটে প্রতিটি ডেটার জন্য একটি মার্কার (োকানো হয় (মন্তব্য () ফাংশন দেখুন) এবং আইকনটি অসঙ্গতির শ্রেণীর উপর ভিত্তি করে। ব্রাউজারে এটি চালানোর সময় আমরা একটি মানচিত্র অন্বেষণ করতে পারি যেখানে চেকবক্স ব্যবহার করে অসঙ্গতিগুলি ফিল্টার করা যায়, যেমন ছবিতে দেখা যায়।

ধাপ 15: ক্রেডিট এবং বহিরাগত লিঙ্ক

এই প্রকল্পটি তৈরি করেছিলেন জিওভান্নি ডি লুকা, আন্দ্রেয়া ফিওরাল্ডি এবং পিয়েত্রো স্পাডাকিনো, রোমের সাপিয়েঞ্জা বিশ্ববিদ্যালয়ের কম্পিউটার সায়েন্সের শিক্ষার্থীদের ইঞ্জিনিয়ারিংয়ে এমএসসি প্রথম বর্ষে।

  • স্লাইড লেখক ধারণার এই প্রমাণ উপস্থাপন করতে ব্যবহৃত:

    www.slideshare.net/PietroSpadaccino/road-m…

  • সমস্ত কোড সহ GitHub repos:

    github.com/roadteam

প্রস্তাবিত: