সুচিপত্র:

স্মার্ট বুয়া [জিপিএস, রেডিও (এনআরএফ 24) এবং একটি এসডি কার্ড মডিউল]: 5 টি ধাপ (ছবি সহ)
স্মার্ট বুয়া [জিপিএস, রেডিও (এনআরএফ 24) এবং একটি এসডি কার্ড মডিউল]: 5 টি ধাপ (ছবি সহ)

ভিডিও: স্মার্ট বুয়া [জিপিএস, রেডিও (এনআরএফ 24) এবং একটি এসডি কার্ড মডিউল]: 5 টি ধাপ (ছবি সহ)

ভিডিও: স্মার্ট বুয়া [জিপিএস, রেডিও (এনআরএফ 24) এবং একটি এসডি কার্ড মডিউল]: 5 টি ধাপ (ছবি সহ)
ভিডিও: #พาดูที่ | ขายที่ดินศีรษะกระบือ อ.องครักษ์ วัดอารีวงษ์คลอง23 บางแสน2 นครนายก แปลงละ100ตรว ราคาถูกๆ 2024, জুলাই
Anonim
Image
Image

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

পর্ব 1: তরঙ্গ এবং তাপমাত্রা পরিমাপ করা

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

আমরা এই কাজটি করেছি যাতে আমরা আমাদের সমুদ্রের বুয়োর অবস্থানের উপর নজর রাখতে পারি। রেডিও মানে আমরা এটাকে দূর থেকে দেখতে পারি এবং SD কার্ড এর মানে হল যে যদি কোন সুযোগ ভেঙে যায় এবং এটি ঘুরে বেড়ায়, আমরা এটির অপরিকল্পিত ভ্রমণের সময় সংগৃহীত ডেটা ডাউনলোড করতে পারি - যদি আমরা এটি পুনরুদ্ধার করতে সক্ষম হই!

সরবরাহ

জিপিএস মডিউল - অ্যামাজন

এসডি কার্ড মডিউল - অ্যামাজন

এসডি কার্ড - অ্যামাজন

2 এক্স রেডিও মডিউল (NRF24L01+) - আমাজন

2 এক্স আরডুইনো - অ্যামাজন

ধাপ 1: জিপিএস ডেটা পাওয়া

রেডিওর মাধ্যমে জিপিএস ডেটা পাঠানো হচ্ছে
রেডিওর মাধ্যমে জিপিএস ডেটা পাঠানো হচ্ছে

জিপিএস লোকেশন এবং ডেটটাইম সহ সমুদ্রে বসার সময় স্মার্ট বুয়া সেন্সর পরিমাপ করে। পরিকল্পিতভাবে দেখুন যা দেখায় কিভাবে আমরা সার্কিট সেট আপ করি। জিপিএস মডিউল সিরিয়াল সংযোগের মাধ্যমে যোগাযোগ করে, তাই আমরা আরডুইনো সফটওয়্যার সিরিয়াল লাইব্রেরির পাশাপাশি ছোট জিপিএস লাইব্রেরি ব্যবহার করছি। এই লাইব্রেরিগুলি সবকিছুকে খুব সহজ করে তোলে। আসুন আপনাকে কোডের মাধ্যমে নিয়ে যাই …

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত // TinyGPS ++ বস্তু TinyGPSPlus জিপিএস; // জিপিএস ডিভাইস সফটওয়্যার সিরিয়াল এসএস (4, 3) এর সিরিয়াল সংযোগ; struct dataStruct {ডবল অক্ষাংশ; ডবল দ্রাঘিমাংশ; স্বাক্ষরবিহীন দীর্ঘ তারিখ; স্বাক্ষরবিহীন দীর্ঘ সময়; } জিপিএস ডেটা; অকার্যকর সেটআপ () {Serial.begin (115200); ss.begin (9600); } void loop () {while (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo (); printResults (); }}} getInfo () {if (gps.location.isValid ()) {gpsData.latitude = gps.location.lat (); gpsData.longitude = gps.location.lng (); } অন্য {Serial.println ("অবৈধ অবস্থান"); } যদি (gps.date.isValid ()) {gpsData.date = gps.date.value (); } অন্য {Serial.println ("অবৈধ তারিখ"); } যদি (gps.time.isValid ()) {gpsData.time = gps.time.value (); } অন্য {Serial.println ("অবৈধ সময়"); }} void printResults () {Serial.print ("Location:"); সিরিয়াল.প্রিন্ট (gpsData.latitude, 6); সিরিয়াল.প্রিন্ট (","); সিরিয়াল.প্রিন্ট (gpsData.longitude, 6); সিরিয়াল.প্রিন্ট ("তারিখ:"); সিরিয়াল.প্রিন্ট (gpsData.date); সিরিয়াল.প্রিন্ট ("সময়:"); সিরিয়াল.প্রিন্ট (gpsData.time); Serial.println (); }

(এই কোডের জন্য ভিডিওটি দেখুন

ধাপ 2: রেডিও মাধ্যমে জিপিএস ডেটা পাঠানো

রেডিওর মাধ্যমে জিপিএস ডেটা পাঠানো হচ্ছে
রেডিওর মাধ্যমে জিপিএস ডেটা পাঠানো হচ্ছে

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

রেডিও মডিউল SPI ব্যবহার করে যোগাযোগ করে, যার জন্য I2C এর তুলনায় আরো কিছু সংযোগ প্রয়োজন কিন্তু NRF24 লাইব্রেরির কারণে এখনও ব্যবহার করা সত্যিই সহজ। সেন্সর পরিমাপের জন্য জিপিএস মডিউল ব্যবহার করে, আমরা এর ডেটা এক Arduino থেকে অন্যটিতে প্রেরণ করি। আমরা জিপিএস এবং রেডিও মডিউলকে আরডুইনোতে সংযুক্ত করতে যাচ্ছি এবং অন্যদিকে রেডিও মডিউলের সাথে একটি আরডুইনো - পরিকল্পিতভাবে দেখুন।

ট্রান্সমিটার

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত TinyGPSPlus জিপিএস; সফটওয়্যার সিরিয়াল এসএস (4, 3); RF24 রেডিও (8, 7); // CE, CSN struct dataStruct {ডবল অক্ষাংশ; ডবল দ্রাঘিমাংশ; স্বাক্ষরবিহীন দীর্ঘ তারিখ; স্বাক্ষরবিহীন দীর্ঘ সময়; } জিপিএস ডেটা; অকার্যকর সেটআপ () {Serial.begin (115200); ss.begin (9600); Serial.println ("রেডিও স্থাপন"); // সেটআপ ট্রান্সমিটার রেডিও radio.begin (); radio.openWritingPipe (0xF0F0F0F0E1LL); radio.setChannel (0x76); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.stopListening (); radio.enableDynamicPayloads (); radio.powerUp (); Serial.println ("পাঠানো শুরু"); } void loop () {while (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo (); radio.write (& gpsData, sizeof (gpsData)); }}} অকার্যকর getInfo () {যদি (gps.location.isValid ()) {gpsData.longitude = gps.location.lng (); gpsData.latitude = gps.location.lat (); } অন্যথায় {gpsData.longitude = 0.0; gpsData.latitude = 0.0; } যদি (gps.date.isValid ()) {gpsData.date = gps.date.value (); } অন্যথায় {gpsData.date = 0; } যদি (gps.time.isValid ()) {gpsData.time = gps.time.value (); } অন্যথায় {gpsData.time = 0; }}

প্রাপক

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত #অন্তর্ভুক্ত RF24 রেডিও (8, 7); // CE, CSN struct dataStruct {ডবল অক্ষাংশ; ডবল দ্রাঘিমাংশ; স্বাক্ষরবিহীন দীর্ঘ তারিখ; স্বাক্ষরবিহীন দীর্ঘ সময়; } জিপিএস ডেটা; অকার্যকর সেটআপ () {Serial.begin (115200); // সেটআপ রিসিভার রেডিও radio.begin (); radio.openReadingPipe (1, 0xF0F0F0F0E1LL); radio.setChannel (0x76); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.startListening (); radio.enableDynamicPayloads (); radio.powerUp (); } void loop () {if (radio.available ()) {radio.read (& gpsData, sizeof (gpsData)); Serial.print ("অবস্থান:"); সিরিয়াল.প্রিন্ট (gpsData.latitude, 6); সিরিয়াল.প্রিন্ট (","); সিরিয়াল.প্রিন্ট (gpsData.longitude, 6); সিরিয়াল.প্রিন্ট ("তারিখ:"); সিরিয়াল.প্রিন্ট (gpsData.date); সিরিয়াল.প্রিন্ট ("সময়:"); সিরিয়াল.প্রিন্ট (gpsData.time); Serial.println ();}}

(এই কোডের জন্য ভিডিওটি দেখুন

ধাপ 3: এসডি কার্ড মডিউল ব্যবহার করে ডেটা সংরক্ষণ করা

একটি SD কার্ড মডিউল ব্যবহার করে ডেটা সংরক্ষণ করা
একটি SD কার্ড মডিউল ব্যবহার করে ডেটা সংরক্ষণ করা

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

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #TinyGPSPlus জিপিএস; সফটওয়্যার সিরিয়াল এসএস (4, 3); struct dataStruct {ডবল অক্ষাংশ; ডবল দ্রাঘিমাংশ; স্বাক্ষরবিহীন দীর্ঘ তারিখ; স্বাক্ষরবিহীন দীর্ঘ সময়; } জিপিএস ডেটা; অকার্যকর সেটআপ () {Serial.begin (115200); ss.begin (9600); যদি (! SD.begin (5)) {Serial.println ("কার্ড ব্যর্থ হয়েছে, অথবা উপস্থিত নেই"); প্রত্যাবর্তন; } Serial.println ("কার্ড আরম্ভ করা হয়েছে।"); ফাইল dataFile = SD.open ("gps_data.csv", FILE_WRITE); যদি (dataFile) {dataFile.println ("অক্ষাংশ, দ্রাঘিমাংশ, তারিখ, সময়"); dataFile.close (); } অন্যথায় {Serial.println ("নাহ ফাইল খুলতে পারে না"); }} void loop () {while (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo (); printResults (); saveInfo (); }}} অকার্যকর getInfo () {যদি (gps.location.isValid ()) {gpsData.latitude = gps.location.lat (); gpsData.longitude = gps.location.lng (); } অন্য {Serial.println ("অবৈধ অবস্থান"); } যদি (gps.date.isValid ()) {gpsData.date = gps.date.value (); } অন্য {Serial.println ("অবৈধ তারিখ"); } যদি (gps.time.isValid ()) {gpsData.time = gps.time.value (); } অন্য {Serial.println ("অবৈধ সময়"); }} void printResults () {Serial.print ("Location:"); সিরিয়াল.প্রিন্ট (gpsData.latitude, 6); সিরিয়াল.প্রিন্ট (","); সিরিয়াল.প্রিন্ট (gpsData.longitude, 6); সিরিয়াল.প্রিন্ট ("তারিখ:"); সিরিয়াল.প্রিন্ট (gpsData.date); সিরিয়াল.প্রিন্ট ("সময়:"); সিরিয়াল.প্রিন্ট (gpsData.time); Serial.println (); } void saveInfo () {File dataFile = SD.open ("gps_data.csv", FILE_WRITE); যদি (dataFile) {dataFile.print (gpsData.latitude); dataFile.print (","); dataFile.print (gpsData.longitude); dataFile.print (","); dataFile.print (gpsData.date); dataFile.print (","); dataFile.println (gpsData.time); dataFile.close (); } অন্যথায় {Serial.println ("nope no datafile"); }}

(আমরা ভিডিওটিতে এই কোডের মাধ্যমে কথা বলি

ধাপ 4: জিপিএস ডেটা পাঠানো এবং সংরক্ষণ করা

জিপিএস ডেটা পাঠানো এবং সংরক্ষণ করা
জিপিএস ডেটা পাঠানো এবং সংরক্ষণ করা
জিপিএস ডেটা পাঠানো এবং সংরক্ষণ করা
জিপিএস ডেটা পাঠানো এবং সংরক্ষণ করা

ধাপ 5: ধন্যবাদ

ধন্যবাদ!
ধন্যবাদ!

আমাদের মেইলিং লিস্টে সাইন আপ করুন!

পর্ব 1: তরঙ্গ এবং তাপমাত্রা পরিমাপ করা

পার্ট 2: GPS NRF24 রেডিও এবং এসডি কার্ড

পার্ট 3: বয়কে সময় নির্ধারণ করার ক্ষমতা

পার্ট 4: বয় মোতায়েন

প্রস্তাবিত: