সুচিপত্র:

ওয়াইফাই সক্ষম OLED ESP32 গাড়ি গেজ: 3 টি ধাপ (ছবি সহ)
ওয়াইফাই সক্ষম OLED ESP32 গাড়ি গেজ: 3 টি ধাপ (ছবি সহ)
Anonim
Image
Image
ওয়াইফাই সক্ষম OLED ESP32 কার গেজ
ওয়াইফাই সক্ষম OLED ESP32 কার গেজ

প্রথমে ভূমিকা…

আমি গাড়ির গেজগুলিকে বারবার শখের ভিত্তিতে তৈরি করি। আরো দুটি সাম্প্রতিক উদাহরণের জন্য https://www.instructables.com/id/Remote-Car-Monit… এবং https://www.instructables.com/id/Remote-Car-Monit… দেখুন। আমি বিশেষ করে গাড়ির মূল অংশগুলির সাথে মিশে যাওয়া পছন্দ করি। সুতরাং, এটি কেন আলাদা এবং এটি আমাকে এটি তৈরি করতে অনুপ্রাণিত করেছে। উত্তর দুটি জিনিস:

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

2) সস্তা OLED স্ক্রিন - 2007 সালে ফিরে আমি একটি TFT ব্যবহার করে একটি গেজ তৈরি করেছি যা একটি GD (2004-2007) WRX ঘড়ির জায়গায় বসে ছিল। টিএফটি বিভিন্ন স্বাদে আসে। কেউ রাতে ভালো কাজ করে, কেউ দিনে ভালো কাজ করে ইত্যাদি। কিন্তু তাদের কেউই সব অবস্থায় কাজ করে না। ফোরাম সদস্যের রোদ ট্র্যাকের দিনে আমি যে গেজ ব্যবহার করেছি তার মধ্যে একটিও অকেজো না হওয়া পর্যন্ত আমি আমার পথের ত্রুটি বুঝতে পারিনি। OLED লিখুন, যা স্বয়ংচালিত অ্যাপ্লিকেশনের জন্য অসাধারণ। এগুলি রাতে খুব বেশি উজ্জ্বল হয় না এবং (আরও গুরুত্বপূর্ণ) বেশিরভাগ সূর্যের আলোতে দৃশ্যমান হয়।

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

সরবরাহ

HELTEC ESP32 মডিউল-ওয়াইফাই ভেরিয়েন্ট পান

তেল চাপ নির্দিষ্ট অংশ:

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

বুস্ট গেজ নির্দিষ্ট অংশ:

  • বায়ুচাপ সেন্সর (শুধুমাত্র যদি আপনি একটি বুস্ট গেজ করতে চান) -
  • বায়ু পায়ের পাতার মোজাবিশেষ
  • টি জিনিসপত্র

আমি যে লাইব্রেরিগুলি ব্যবহার করেছি তা অপরিহার্য ছিল:

Smoothiecharts - https://smoothiecharts.org/ চমৎকার এবং লাইটওয়েট লাইভ আপডেট করার চার্ট। খুব স্বনির্ধারিত এবং ইন্টারনেটে অন্য কোথাও একটি জেএস লাইব্রেরি উল্লেখ করার উপর নির্ভর করে না। এটি একটি "লোকাল-আইওটি" টাইপ সেটআপের অনুমতি দেয় এবং পুরো লাইব্রেরিটি কোডে ওয়েব সার্ভার স্টেটমেন্টের জন্য একক স্ট্রিংয়ে ফিট করে!

ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- বাক্সে যা বলে তা করে এবং ভালো করে

থিংপালস ওএলইডি গ্রাফিক্স লাইব্রেরি (কখনও কখনও স্কুইক্স লাইব্রেরিকে কল করুন) - https://github.com/ThingPulse/esp8266-oled-ssd130… - ইএসপি চিপগুলির জন্য খুব দক্ষ এবং সহজবোধ্য গ্রাফিক্স। আমাকে কিছু অলস প্রোগ্রামিং করার অনুমতি দেয় এবং এখনও বিশ্বাসযোগ্য অ্যানিমেশন পায়।

সরঞ্জাম/বিবিধ:

সোল্ডারিং লোহা - সেন্সরের জন্য লম্বা তারের রান তৈরি করতে, বোর্ডে হেডার ইনস্টল করতে, সঙ্কুচিত সঙ্কুচিত মোড়ক ইত্যাদি ব্যবহার করতে।

স্ক্রু ড্রাইভার/সকেট/গাড়ির অন্যান্য সরঞ্জাম - গাড়িতে সেন্সর লাগানোর জন্য প্রয়োজনীয়

ডবল পার্শ্বযুক্ত টেপ - হাউজিংগুলিতে গেজ ইনস্টল করা এবং গাড়িতে হাউজিং ইনস্টল করা (গরম আঠালো এবং অন্যান্য জিনিস কাজ করতে পারে, কিন্তু আমি 3M ডবল পার্শ্বযুক্ত বাইরের ছাঁটা টেপ পছন্দ করি। এটি ভালভাবে ধরে থাকে এবং ক্ষতিগ্রস্ত জিনিস ছাড়াই টেনে তোলা যায়।)

কাঁচি - টেপ এবং টিউবিং এবং জিপ টাই কাটার জন্য

জিপ বন্ধন - জিনিসগুলিকে একসাথে রাখার জন্য, ড্যাশের নীচে এবং ইঞ্জিনের বগিতে তারগুলি বান্ডিল করা, জায়গায় সেন্সর রাখা ইত্যাদি।

ধাপ 1: কোড প্রথম/হার্ডওয়্যার দ্বিতীয়

কোড ফার্স্ট/হার্ডওয়্যার সেকেন্ড
কোড ফার্স্ট/হার্ডওয়্যার সেকেন্ড
কোড ফার্স্ট/হার্ডওয়্যার সেকেন্ড
কোড ফার্স্ট/হার্ডওয়্যার সেকেন্ড

কোড এখানে ডাউনলোড করা যাবে:

তেলের চাপ -

বুস্ট চাপ -

অ্যানালগ লুক গেজের পরিবর্তে মুখ দিয়ে চাপ বাড়ান -

গ্রাফিক্স কোড: থিংপালস লাইব্রেরি এতটাই দক্ষ যে আপনি একে অপরের উপরে xbms আঁকতে পারেন এবং বিশ্বাসযোগ্য ফলাফল পেতে পারেন!

গেজ ছবিগুলি আসলে একটি ওপেন সোর্স গ্রাফিক্স রিপোজিটরি (https://thenounproject.com/) থেকে এসেছে। শিল্পী আইকনিক, সিওয়াই (https://thenounproject.com/icon/490005/)।

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

তারপরে আমি এই কৌশলটি ব্যবহার করে কনস্ট uint8_t অ্যারেতে রূপান্তর করেছি (ইঙ্গিত: যদি আপনি তাদের প্রদর্শন করার সময় রংগুলি উল্টানো হয়, তবে আসল রঙগুলি উল্টান): https://blog.squix.org/2015/05/esp8266- নোডেমকু-হো…

লাইভ অ্যানিমেশন কোড বেশ সহজবোধ্য:

  • সেন্সর থেকে পড়ুন
  • স্কেল রিডিং (ইতিবাচক বুস্ট ভ্যালুগুলির জন্য আমি এটি 1 থেকে 1 করেছি এবং শুধুমাত্র সুইটি সরিয়ে ফেলি যখন এটি বুস্টে থাকে না যখন ভ্যাকুয়ামে থাকে)
  • Xbm আঁকুন এবং তারপরে অন্য সব কিছুর জন্য সংখ্যা অক্ষর রাখুন।
  • পাখলান পুনরাবৃত্তি

সেন্সর কোড: আমি সেন্সর কোডটি পুনরায় ব্যবহার করছি যা আমি এই দুটি সেন্সরের জন্য অন্য কয়েকটি প্রকল্পের জন্য ব্যবহার করেছি। ঝাঁকুনি সেন্সর থেকে দূরে থাকার জন্য আমি কিছু গড় যোগ করেছি। এর মধ্যে প্রতিটি "পড়া" পড়ার গড় 5 টি রিডিং অন্তর্ভুক্ত।

বুস্ট কোড (সেন্সর 0-5 ভোল্ট থেকে একটি এনালগ ভ্যাল দেয় যা ADC 0-1024 থেকে ধাপে পরিণত হয়):

int getBoost () {float rboost = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); // float ResultPSI = (rboost*(। 00488)/(। 022) +20)/6.89 - atmo; // kpa float ফলাফলের জন্য /6.89 এর ছুটি PSI = (((rboost /4095) + 0.04) /0.004) * 0.145 - atmo; // 0.145 দ্বারা calc psi // 4096 মান esp32 /*rBoost = rBoost + 1; যদি (rBoost> = 20) {rBoost = 0; }*/ রিটার্ন (ResultPSI); }

তেলের চাপের কোড (সেন্সরটি তার অনুভূতির উপর নির্ভর করে তার প্রতিরোধের তারতম্য করে তাই 0-5v থেকে এটিকে ভোল্টেজে পরিণত করার জন্য একটি ভোল্টেজ ডিভাইডারের প্রয়োজন হয় দেখুন: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito… (নীচের দিকে) আরও তথ্যের জন্য):

int getOilPSI () {float psival = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); psival = -0.0601*psival + 177.04 - 14.5; ফিরে আসল; }

ওয়েব সার্ভার এবং এপি কার্যকারিতা: এপি কার্যকারিতা মোটামুটি সহজ - তাত্ক্ষণিক এবং এপি বস্তু ESSID দিয়ে আপনি সম্প্রচার করতে চান এবং পাসওয়ার্ড এবং আপনি যেতে ভাল।

const char *ssid = "boost_gauge_ap"; const char *password = "password";

WiFi.softAP (ssid, password);

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

ওয়েবসাইট সার্ভার ঘোষণা: #অন্তর্ভুক্ত AsyncTCP.h #অন্তর্ভুক্ত ESPAsyncWebServer.h… AsyncWebServer সার্ভার (80); // এটিকে তাত্ক্ষণিক করুন এবং পোর্টটি বেছে নিন (http০ টি http এর জন্য মানসম্মত)… ওয়েবপেজ + একটি বিশাল চর অ্যারেতে স্মুদিচার্টস লাইব্রেরি}); -> পাঠান (200, "text/html", Sboost);}); server.begin ();

ধাপ 2: হার্ডওয়্যার এবং তারের

হার্ডওয়্যার এবং তারের
হার্ডওয়্যার এবং তারের
হার্ডওয়্যার এবং তারের
হার্ডওয়্যার এবং তারের
হার্ডওয়্যার এবং তারের
হার্ডওয়্যার এবং তারের

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

অটোমিটার আপনাকে তাদের সেন্সরের যে কোনটির জন্য চাপ বা তাপমাত্রার প্রতিরোধের প্রতিরোধের একটি বক্ররেখা প্রদান করবে। আমি এটি একটি ভোল্টেজ ডিভাইডার ব্যবহার করে ভোল্টেজে রূপান্তর করেছি (তারের চিত্র দেখুন)।

MPX4250AP এয়ার প্রেসার সেন্সরের তিনটি লাইভ পিন এবং বেশ কয়েকটি অব্যবহৃত পিন রয়েছে। তারা ভি ইন, গ্রাউন্ড এবং সেন্সর আউটপুট। এটি একটি 0-5v রিডিং আউটপুট দেয় যা মাইক্রোকন্ট্রোলার দ্বারা পড়তে পারে (অথবা এই এমসিইউ 0-3 ভোল্টের ক্ষেত্রে। এর জন্য স্পেস শীট এখানে পাওয়া যাবে:

5v থেকে 3v লজিকে স্কেল করার ক্ষেত্রে বেশ কিছু সমস্যা রয়েছে। আমার ক্ষেত্রে আমি সরলতার জন্য ভোল্টেজ ডিভাইডার ব্যবহার করেছি এবং আমার ওয়ার্কবেঞ্চের চারপাশের অংশ ছিল। আপনি অতিরিক্ত উপাদানগুলির সম্ভাব্য ত্রুটির (দুটি প্রতিরোধক) উপর ভিত্তি করে রিডিংগুলিতে কিছুটা ত্রুটি প্রবর্তন করবেন। এটি কিছু ক্ষেত্রে আপনার রিডিং 10% বন্ধ করতে পারে। আমি এটা নিয়ে বাঁচতে পারি। যদি আপনি না পারেন তবে আপনি একটি opamp এবং প্রতিরোধক বা একটি লজিক লেভেল কনভার্টার ব্যবহার করতে পারেন (বিভিন্ন ইলেকট্রনিক্স বিক্রেতাদের কাছ থেকে পাওয়া যায়। স্পার্কফুন এখানে একটি আছে: https://www.sparkfun.com/products/12009 আমি এটিতে পরিবর্তন করতে পারি আমি কখনও কখনও এই গেজে উচ্চ রিডিং পাই (আসলে আমি আমার ওয়্যারিং ডায়াগ্রামে এই পণ্যটি দেখিয়েছি)।

আমি ESP32- কে USB এর মাধ্যমে চালিত করেছি। এর মধ্যে এই ধরনের একটি সরাসরি চার্জার ওয়্যারিং অন্তর্ভুক্ত ছিল: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… গাড়িতে এবং তারপরে একটি ইউএসবি হাব ব্যবহার করে এটি বিভক্ত করা। আপনি দেখতে পাচ্ছেন যে আমি একটি ছোট এলাকায় (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…) সবকিছু কাজ নিশ্চিত করার জন্য রাইট এঙ্গেল ইউএসবি কেবল ব্যবহার করেছি।

অন্যান্য ফটোগুলি দেখায় যে আমি গর্ত কেটেছি বা তারের দৌড় দিয়েছি। প্রতিটি গাড়ি আলাদা হবে। সাবধানতা অবলম্বন করুন, ছুরি এবং কাঁচি তীক্ষ্ণ, বিদ্যুৎ বিপজ্জনক হতে পারে তাই জিনিসগুলিকে তারের আগে ব্যাটারি সংযোগ বিচ্ছিন্ন করুন।

ধাপ 3: 3D মুদ্রিত হাউজিং

3D প্রিন্টেড হাউজিং
3D প্রিন্টেড হাউজিং

আমি এর জন্য বেশ কয়েকটি 3D মুদ্রিত হাউজিং ব্যবহার করেছি।

  • একটি জেনেরিক বড় 2 স্ক্রিন রাউন্ড গেজ। আপনি প্রথম পৃষ্ঠার এই ছবিগুলিতে এটি দেখতে পারেন। আমি আমার ড্যাশে ঘড়ির পাশে রেখেছি।
  • একটি সিঙ্গেল গেজ ওয়েজ-স্টাইল যা প্রায় 2008 থেকে 2014 পর্যন্ত সুবারু ইম্প্রেজা (wrx, sti, ইত্যাদি) এর ঘড়ি এলাকায় ফিট করে।
  • একটি দ্বৈত গেজ টুকরা যা স্টিয়ারিং হুইল কলাম এবং অন্যান্য সামান্য গোলাকার পৃষ্ঠতলে ফিট করে:

আপনার প্রয়োজন অনুসারে এগুলি অনুলিপি এবং সংশোধন করতে আপনাকে স্বাগতম। তাদের কেউই নিখুঁত নয় এবং তাদের সকলের কিছুটা সামঞ্জস্যের প্রয়োজন হবে।

কিছু নোট:

  • আমি প্লাস্টিডিপ দিয়ে আমার কাজ শেষ করেছি; এটা অলসদের পছন্দের পদ্ধতি।
  • স্যান্ডিং প্লাস্টিক সূক্ষ্ম কণা তৈরি করে যা আপনার জন্য ভাল নয়, উপযুক্ত মাস্ক ব্যবহার করুন।
  • আমি আমার বাসার জন্য PETG ব্যবহার করেছি। এবিএসও ভালো। পিএলএ একটি ড্যাশবোর্ডে প্রখর রোদে ঝলসে যাবে।
আইওটি চ্যালেঞ্জ
আইওটি চ্যালেঞ্জ
আইওটি চ্যালেঞ্জ
আইওটি চ্যালেঞ্জ

আইওটি চ্যালেঞ্জে দ্বিতীয় পুরস্কার

প্রস্তাবিত: