সুচিপত্র:

অ্যান্ড্রয়েডে সোডিয়াল ডাস্ট সেন্সর: 6 টি ধাপ
অ্যান্ড্রয়েডে সোডিয়াল ডাস্ট সেন্সর: 6 টি ধাপ

ভিডিও: অ্যান্ড্রয়েডে সোডিয়াল ডাস্ট সেন্সর: 6 টি ধাপ

ভিডিও: অ্যান্ড্রয়েডে সোডিয়াল ডাস্ট সেন্সর: 6 টি ধাপ
ভিডিও: অ্যান্ড্রয়েড ফোনের ৫টি সেরা অ্যাপ | Best Android Apps 2023 2024, জুলাই
Anonim
অ্যান্ড্রয়েডে সোডিয়াল ডাস্ট সেন্সর
অ্যান্ড্রয়েডে সোডিয়াল ডাস্ট সেন্সর

এক বছর আগে আমার এক বন্ধুর পরিবেশ পর্যবেক্ষণ সম্পর্কে সপ্তাহান্তে একটি কর্মশালা হয়েছিল। কর্মশালার লক্ষ্য ছিল একটি রাস্পবেরি পাই বোর্ডের সাথে সংযুক্ত একটি ধুলো সেন্সর তৈরি করা যাতে কিছু সার্ভারে পরিমাপের তথ্য রাখা হয় যা ঘন ঘন আপডেট করা ধুলো ঘনত্বের মানচিত্র সরবরাহ করে। আমার বন্ধু জিজ্ঞাসা করেছিল যে মনিটরিং এবং লগিংয়ের জন্য সরাসরি তার স্মার্টফোনে সেন্সর ডেটা পাওয়ার উপায় আছে কি না। তাই আমি একটি ডেটশীটের জন্য ইন্টারনেট খনন করে দেখলাম যে সেন্সরটিতে 9600Baud 8N1 প্রোটোকল সহ একটি সাধারণ UART ইন্টারফেস রয়েছে। কিন্তু কিভাবে একটি UART কে স্মার্টফোনের সাথে সংযুক্ত করবেন? আচ্ছা, এটা সহজ। আমাকে শুধু সেই সর্বব্যাপী ছোট ব্লুটুথ মডিউলগুলির একটি ব্যবহার করতে হয়েছিল যা অ্যান্ড্রয়েডে একটি অনুকরণযুক্ত কম্পোর্ট সরবরাহ করে। এখন দেখুন কিভাবে আমি এটা তৈরি করেছি।

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

তুমি কি চাও
তুমি কি চাও
তুমি কি চাও
তুমি কি চাও

আপনি নিম্নলিখিত অংশ প্রয়োজন

  • তারের সাথে সোডিয়াল ইন্টারফেসের জন্য একটি মিলন সংযোগকারী JST XH 7-pin। আমি ইবেতে আমার কিনেছি।
  • একটি ব্লুটুথ মডিউল HC05 বা 06 UART সংযোগকারীর সাথে সামঞ্জস্যপূর্ণ
  • টিটিএল লেভেল ইন্টারফেস সহ একটি ইউএসবি-সিরিয়াল কনভার্টার। আমরা এটি ব্যবহার করি বিটি-মডিউলকে একটি অনন্য নাম দিতে
  • সোডিয়াল SDS011 ডাস্ট সেন্সর। আমি ইবে থেকে আমার পেয়েছি
  • veroboard একটি টুকরা
  • ইউএসবি-বি সংযোগকারী
  • তার
  • সব কিছু মাউন্ট করার জন্য এক টুকরো কাঠ

তারপর আপনি কিছু সহজ সরঞ্জাম প্রয়োজন হবে:

  • কাঠ কাটার জন্য একটি বাক্স
  • টুইজার
  • ঝাল লোহা এবং ঝাল
  • তার কর্তনকারী
  • গরম আঠা বন্দুক
  • 8 মিমি সিলিকন হাতা একটি টুকরা (ছবিতে নয়)

আপনি সোডিয়াল SDS011 ডেটশীট ডাউনলোড করতে পারেন এখানে Sodial SDS011 ডেটশীট

ধাপ 2: ব্লুটুথ মডিউল প্রস্তুত করা

ব্লুটুথ মডিউল প্রস্তুত করা হচ্ছে
ব্লুটুথ মডিউল প্রস্তুত করা হচ্ছে
ব্লুটুথ মডিউল প্রস্তুত করা হচ্ছে
ব্লুটুথ মডিউল প্রস্তুত করা হচ্ছে
ব্লুটুথ মডিউল প্রস্তুত করা হচ্ছে
ব্লুটুথ মডিউল প্রস্তুত করা হচ্ছে
ব্লুটুথ মডিউল প্রস্তুত করা হচ্ছে
ব্লুটুথ মডিউল প্রস্তুত করা হচ্ছে

বিটি-মডিউলে টিটিএল-স্তরের সাথে একটি ইউএআরটি ইন্টারফেস রয়েছে। এটি "AT" কমান্ডের সাথে পুনরায় কনফিগার করা যেতে পারে যেমনটি আমরা প্রাচীনকালে ইন্টারনেট মডেম দিয়ে করেছি। এটি আপনার মেশিনে একটি টার্মিনাল প্রোগ্রামের সাথে সংযুক্ত করার জন্য আপনাকে আপনার কম্পিউটারে UART কে মানিয়ে নিতে হবে। আমি অ্যামাজনে কেনা একটি ইউএসবি-আরএস 232 কনভার্টার ব্যবহার করেছি। আমি বিটি-মডিউলের জন্য একটি সংযোগকারী প্রয়োগ করেছি এবং কনভার্টার থেকে বিটি-মডিউলে 3, 3V পাওয়ার সাপ্লাই এবং GND রুট করেছি। তারপর আমি ক্রসওভারে সংশ্লিষ্ট TxD এবং RxD লাইন সংযুক্ত করেছি। ইউএসবি-কনভার্টার থেকে টিএক্সডি বিটি-মডিউল থেকে আরএক্সডি এবং তদ্বিপরীত।

আমার একটি লিনাক্স মেশিন আছে এবং কিউটকম ব্যবহার করেছি। ইউএসবি-কনভার্টার সংযোগ করার পর কম্পোর্টটি ছিল "ttyUSB0"। আপনি আপনার লিনাক্স মেশিনে "/dev" ডিরেক্টরিতে কম্পোর্টের নাম খুঁজে পেতে পারেন। উইন্ডোজ ব্যবহারকারীদের জন্য আমি "hterm" সুপারিশ করব। এটি পরিচালনা করা সহজ। "AT" টাইপ করুন এবং আপনার প্রতিক্রিয়া হিসাবে "AT" পাওয়া উচিত। তারপর বিটি-মডিউলকে "সেন্সর" নাম দিতে "AT+NameSensor" টাইপ করুন

ধাপ 3: যন্ত্রাংশ মাউন্ট করা

যন্ত্রাংশ মাউন্ট করা
যন্ত্রাংশ মাউন্ট করা
যন্ত্রাংশ মাউন্ট করা
যন্ত্রাংশ মাউন্ট করা
যন্ত্রাংশ মাউন্ট করা
যন্ত্রাংশ মাউন্ট করা
যন্ত্রাংশ মাউন্ট করা
যন্ত্রাংশ মাউন্ট করা

সমস্ত অংশ নেওয়ার জন্য উপযুক্ত একটি আকারে কাঠের একটি টুকরো কাটুন। পরিকল্পিতভাবে নির্দেশিত সমস্ত সংকেত সংযুক্ত করুন। তারের সুরক্ষার জন্য তারের চারপাশে একটি সিলিকন হাতা রাখা ভাল ধারণা। পারফোর্ডে ইউএসবি-বি প্লাগটি সোল্ডার করুন। এটি শুধুমাত্র বিদ্যুৎ সরবরাহের জন্য ব্যবহৃত হয়। কাঠের বেসে স্ক্রু দিয়ে সমস্ত অংশ ঠিক করুন। অবশেষে গরম আঠালো তারগুলি কাঠের উপর ঠিক করতে।

ধাপ 4: জোড়া

পেয়ারিং
পেয়ারিং
পেয়ারিং
পেয়ারিং

একটি USB পাওয়ার সাপ্লাই প্লাগ-ইন করে সেন্সর অ্যাপ্লিকেশনটিকে পাওয়ার করুন। বিটি-মডিউলে একটি লাল এলইডি জ্বলজ্বল শুরু করবে। এটিকে আপনার অ্যান্ড্রয়েড স্মার্টফোনের সাথে যুক্ত করার চেষ্টা করবেন না। আপনাকে একটি পিন কোড লিখতে হবে। এটি "1234"। কোডটি প্রবেশ করার পরে আপনার স্মার্টফোনটি বিটি-মডিউলের সাথে যুক্ত করা উচিত।

ধাপ 5: সফটওয়্যার

আমি টার্গেট প্ল্যাটফর্মেই অ্যান্ড্রয়েড অ্যাপস লিখতে পছন্দ করি। যদি আপনি অ্যান্ড্রয়েড স্টুডিওতে কাজ করেন তবে এটি আপনাকে সেই সমস্ত অনুকরণ উপাদান থেকে রক্ষা করে। আমি অ্যান্ড্রয়েডে নিজেই তিনটি উপযুক্ত ডেভেলপমেন্ট টুল খুঁজে পেয়েছি

  • মিন্টোরিস বেসিক। অ্যান্ড্রয়েডের প্রায় সবকিছুর সাথে চারপাশে টিঙ্কার করার জন্য সমৃদ্ধ কমান্ডের একটি মৌলিক দোভাষী। আপনি আপনার অ্যাপের জন্য শর্টকাট তৈরি করতে পারেন। Mintoris বেসিক একটি কম্পাইলার ধারণ করে না। সুতরাং আপনি অবশ্যই প্রতিটি ডিভাইসে মিন্টোরিস ইনস্টল করেছেন। কিন্তু আপনাকে শুধুমাত্র একবার এর জন্য অর্থ প্রদান করতে হবে (প্রায় 7 €)
  • বেসিক! চরম ভাল বেসিক ইন্টারপ্রেটার এবং কম্পাইলার (কিছু for এর জন্য অ্যাড-অন)। অ্যান্ড্রয়েডের সবকিছুতে প্রায় হুক এবং আপনি বেসিক না করেই বিতরণের জন্য আসল অ্যাপস কম্পাইল করতে পারেন! টার্গেট ডিভাইসে। দুlyখজনকভাবে বেসিক! মিন্টোরিসের চমৎকার ডায়াগ্রাম চার্ট ফাংশনের অভাব রয়েছে
  • অ্যান্ড্রয়েডে জাভাতে অ্যান্ড্রয়েড ডেভেলপমেন্ট করার জন্য AIDE একটি আধা পেশাদার IDE। AIDE এর সাথে আপনার সর্বাধিক নমনীয়তা রয়েছে তবে আপনাকে জাভা শিখতে হবে। AIDE এর বার্ষিক খরচ প্রায় 50

আমি মিন্টোরিসকে বেছে নিয়েছি। এই বিভাগে আমি আপনাকে মিন্টোরিসে প্রোগ্রামিং এর একটি টিউটোরিয়াল দেব না কিন্তু ফাংশন ব্লকের সংক্ষিপ্ত বিবরণ।

নিম্নলিখিত অংশে দুটি সেন্সর ডেটা লাইন এবং সংশ্লিষ্ট টাইমস্ট্যাম্পের জন্য তিনটি অ্যারে ঘোষণা করা হয়েছে। টাইমস্ট্যাম্প ডেটা ডায়াগ্রামের x-axis লেবেল করার জন্য ব্যবহৃত হয়। সোডিয়াল একটি বিশেষ কণার আকারের জন্য নির্দিষ্ট দুটি ডাটা স্ট্রিম আউটপুট করে। দুটি ডাস্টডাটা-অ্যারে এই মানগুলি গ্রহণ করে।

WakeLock আংশিক

টেক্সট কালার 100, 75, 10

TextColorA 50, 50, 50

TextAlign 0

টেক্সট সাইজ 24

সিএলএস

পপআপ "ডাস্ট সেন্সর মিটার (c) ARJ 2017"

গ্লোবাল dustData (), dustDataF (), timeStamp () গ্লোবাল ইনডেক্স, পছন্দ, maxData, fileName $

ডিম টাইমস্ট্যাম্প (59)

ডিম ডাস্ট ডেটা (59)

ডিম ডাস্ট ডেটাএফ (59)

ডিম মেনু $ (4) = "সর্বাধিক 100 ডেটাসেট", "সর্বোচ্চ 1000 ডাটা সেট", "সর্বাধিক 5000 ডাটা সেট", "সর্বোচ্চ 10000 ডাটা সেট", "প্রস্থান করুন"

'অ্যারে শুরু করুন

I = 0 থেকে 59 এর জন্য

dustData (i) = 0

dustDataF (i) = 0

টাইমস্ট্যাম্প (i) = i

পরবর্তী i

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

L ist মেনু $ (), পছন্দ

তথ্য সংরক্ষণ করতে হলে সর্বোচ্চ পরিমাণ নির্বাচন করুন

রান লেভেল = 1

পছন্দ নির্বাচন করুন

কেস 0 maxData = 100

কেস 1 সর্বোচ্চ তারিখ = 1000

কেস 2 maxData = 5000

কেস 3 maxData = 10000

কেস 4 maxData = 0

শেষ নির্বাচন

সেন্সর সংযুক্ত করুন

ডিম পেয়ার $ (0)

জোড়া $ () = BTGetPaired $ ()

যদি জোড়া $ (0) = "কেউ না" তাহলে

প্রিন্ট করুন "কোন জোড়া ডিভাইস পাওয়া যায়নি। বিটি কি চালু আছে?" প্রিন্ট "প্রোগ্রাম বন্ধ"

শেষ

যদি শেষ

তালিকা জোড়া $ (), ডিভাইস $

নাম $ = ItemExtract $ (ডিভাইস $, 0)

ঠিকানা $ = ItemExtract $ (ডিভাইস $, 1)

BTConnect 1, ঠিকানা $

'সংযোগের জন্য অপেক্ষা করুন

অগ্রগতি চালু

মুদ্রণ "সংযোগ করার চেষ্টা করা হচ্ছে"; ঠিকানা $

I = 1 থেকে 20 এর জন্য

অগ্রগতি i/2

যদি BTGetstate (1) = 4 তাহলে 1000 অপেক্ষা করুন

পরবর্তী i

অগ্রগতি বন্ধ

'সাফল্যের সাথে BT ডিভাইসের সাথে সংযোগ স্থাপন করুন

যদি BTGetState (1) = 4 তারপর "কানেক্টেড" প্রিন্ট করুন অন্য প্রিন্ট "কানেক্ট করা যায়নি"; নাম $

প্রিন্ট "প্রোগ্রাম বন্ধ"

শেষ

যদি শেষ

পরবর্তী ব্লক ডেটা অ্যাকোয়ারমেন্ট দেখায়। প্রতিটি ডেটা সেশনের জন্য একটি ফাইল স্বয়ংক্রিয়ভাবে খোলা হয় এবং সময় এবং তারিখের নামে নামকরণ করা হয়। তারপর লুপ সেন্সর ডেটা পড়ছে। ডেটা বেশ কয়েকটি বাইটে প্যাক করা হয়। দুটি ASCII অক্ষর 170 এবং 171 দ্বারা বাইটের একটি সেট চিহ্নিত করা হয়।

গ্রাফিক্স চালু

লিখতে ডেটা ফাইল খুলুন

fileName $ = FormatTime $ (t, "yyyy-MM-dd-kk-mm-ss") + ".dat"

1 খুলুন, fileName $, "w+" প্রিন্ট করুন "খোলা ডাটাফিল"; fileName $ Writeln 1, ফরম্যাটটাইম $ (সময় (), "yy-MM-dd")

রাইটেল 1, "টাইম ডাস্ট 2.5 ডাস্ট 10"

পরিমাপকৃত ডেটা দিয়ে অ্যারে পূরণ করুন

ডেটা $ = "" প্যাকেট $ = ""

সূচক = 0

MaxData> 0 করার সময় করুন

BTR পড়ুন 1, প্যাকেট $, 10

data $ = data $+প্যাকেট $

যদি Len (data $)> = 10 তাহলে

যদি (ASCII (বাম $ (ডেটা $, 1)) = 170) এবং (ASCII (ডান $ (ডেটা $, 1)) = 171) তাহলে

dustDataF (সূচক) = ASCII (মধ্য $ (তথ্য $, 2, 1))

dustDataF (index) = (dustDataF (index)+256*ASCII (Mid $ (data $, 3, 1)))/10

dustData (সূচক) = ASCII (মধ্য $ (তথ্য $, 4, 1))

dustData (index) = (dustData (index)+256*ASCII (Mid $ (data $, 5, 1)))/10

Writeln 1, FormatTime $ (Time (), "kk: mm: ss") + "" + Str $ (dustDataF (index)) + "" + Str $ (dustData (index))

ডেটা $ = ""

maxData = maxData-1

সূচক = সূচক+1

যদি সূচী> 59 তারপর সূচক = 0

dustData (সূচক) = 0

dustDataF (সূচক) = 0

যদি শেষ

যদি শেষ

ড্র গ্রাফ ()

100 অপেক্ষা করুন

লুপ

বন্ধ 1

গ্রাফিক্স বন্ধ

CLS প্রিন্ট "প্রোগ্রাম বন্ধ"

শেষ

শেষ অংশটি একটি সাবরুটিন যা প্রতিটি ডেটা রিসেপশনের পরে বলা হয়। এটি পর্দা পরিষ্কার করে, ধুলো-এবং টাইমস্ট্যাম্প অ্যারেতে সংরক্ষিত প্রকৃত ডেটা দিয়ে ডায়াগ্রামটি পুনরায় অঙ্কন করে।

'স্থানাঙ্ক, লেবেল, টিক এবং ডাটা কার্ভগুলিও আঁকুন

সাব ড্র গ্রাফ ()

'গ্রাফিক্স মোডে স্ক্রিনটি বর্তমান রঙে পরিষ্কার হয়

রঙ 0, 0, 0

সিএলএস

রঙ 0, 0, 100

গ্রিড লাইন আঁকার জন্য গ্রাফিক্স কালার ব্যবহার করুন

টেক্সট কালার 100, 100, 100, 50

'টেক্সট কালার হল গ্রিডের প্রধান শিরোনামের রঙ

TextColorA 100, 100, 100

'টেক্সট কালারএ অক্ষ শিরোনাম এবং গ্রিড টীকাগুলির জন্য ব্যবহৃত হয়।

'অক্ষ শিরোনাম পাঠ্যের আকার সেট করুন

'গ্রিডের প্রধান শিরোনাম এই সাইজের 2x

টেক্সট সাইজ 20

FixDecimal 0

2 দশমিক স্থান প্রদর্শন করতে সেট করুন

প্যাড ডিজিট 2

'গ্রাফের জন্য একটি গ্রিড আঁকুন' X & Y এর পরিসর এবং শিরোনাম নির্ধারণ করুন

অক্ষ AxisX 0, 59, "সময়/গুলি"

অক্ষ 0, 10000, "ug/m3"

গ্রিড 3, "ধুলো ঘনত্ব"

'ডাস্ট গ্রাফ আঁকুন

রঙ 100, 0, 0

GraphXY টাইমস্ট্যাম্প (), dustDataF ()

রঙ 0, 100, 0

GraphXY টাইমস্ট্যাম্প (), dustData ()

টেক্সট কালার 100, 0, 0

ড্র টেক্সট "PM2.5", 30, Int (ScreenY ()-60), 90, 1

টেক্সট কালার 0, 100, 0

DrawText "PM10", 30, Int (ScreenY ()-150), 90, 1

টেক্সট কালার 100, 100, 100, 50

ফেরত

সোর্স কোডটি এখানে ডাউনলোড করুন

ধাপ 6: পরীক্ষা

Image
Image
পরীক্ষা
পরীক্ষা
পরীক্ষা
পরীক্ষা
পরীক্ষা
পরীক্ষা

সেন্সরটি চালু করুন এবং অ্যাপটি শুরু করুন। জোড়া ডিভাইসগুলির তালিকা থেকে "সেন্সর" নামে একটি চয়ন করুন। সেন্সর সংযোগ করার পর স্ক্রিন ডেটা প্রদর্শন করতে শুরু করবে। একই সাথে ডেটা ফাইল বরাদ্দ করা হয়। ফ্যাশন শেষ করার পরে আপনি ডেটা প্রদর্শন করতে GnuPlot ব্যবহার করতে পারেন। "Test.dat" নামে একটি ডেটা ফাইল প্রদর্শনের জন্য GnuPlot কনফিগার করতে GnuPlot এ "Test.gp" ফাইলটি ব্যবহার করুন। আপনি এটি এখানেও খুঁজে পেতে পারেন

আরো বিস্তারিত এবং পরীক্ষার জন্য ভিডিওটি দেখুন। অনেক মজা এবং আরো ধারনা আছে!

প্রস্তাবিত: