সুচিপত্র:

ভূমিকা ESP32 Lora OLED ডিসপ্লে: 8 টি ধাপ
ভূমিকা ESP32 Lora OLED ডিসপ্লে: 8 টি ধাপ

ভিডিও: ভূমিকা ESP32 Lora OLED ডিসপ্লে: 8 টি ধাপ

ভিডিও: ভূমিকা ESP32 Lora OLED ডিসপ্লে: 8 টি ধাপ
ভিডিও: Concept of LoRa Transmitter, BME280 Sensor and WiFi Webserver based on Arduino ESP32 (EP07) 2024, নভেম্বর
Anonim
Image
Image
ভূমিকা ESP32 Lora OLED ডিসপ্লে
ভূমিকা ESP32 Lora OLED ডিসপ্লে

এটি ESP32 LoRa এর ভূমিকা সম্পর্কিত আরেকটি ভিডিও। এবার, আমরা বিশেষভাবে একটি গ্রাফিক ডিসপ্লে (128x64 পিক্সেল) সম্পর্কে কথা বলব। আমরা এই OLED ডিসপ্লেতে তথ্য প্রদর্শনের জন্য SSD1306 লাইব্রেরি ব্যবহার করব এবং XBM ইমেজ ব্যবহার করে অ্যানিমেশনের উদাহরণ উপস্থাপন করব।

ধাপ 1: ব্যবহৃত সম্পদ

ব্যবহৃত সম্পদ
ব্যবহৃত সম্পদ

1 হেলটেক ওয়াইফাই লোরা 32

প্রোটোবোর্ড

ধাপ 2: প্রদর্শন

প্রদর্শন
প্রদর্শন
প্রদর্শন
প্রদর্শন

উন্নয়ন বোর্ডে ব্যবহৃত ডিসপ্লে 0.96 ইঞ্চির একটি OLED।

এটি 128x64 এবং একরঙা।

এটিতে I2C যোগাযোগ রয়েছে এবং 3 টি তারের মাধ্যমে ESP32 এর সাথে সংযুক্ত:

GPIO4 এ SDA (ডেটার জন্য)

GPIO15- এ এসসিএল (ঘড়ির জন্য)

GPIO16 এ RST (রিসেট এবং ডিসপ্লে শুরুর জন্য)

ধাপ 3: SSD1306 লাইব্রেরি

SSD1306 লাইব্রেরি
SSD1306 লাইব্রেরি

এটি হেলটেক-অ্যারন-লি দ্বারা প্রদত্ত লাইব্রেরির সেটের সাথে পাওয়া যেতে পারে।

স্ট্রিং লেখার, রেখা অঙ্কন, আয়তক্ষেত্র, বৃত্ত এবং চিত্র প্রদর্শনের জন্য এর বেশ কয়েকটি কাজ রয়েছে।

github.com/Heltec-Aaron-Lee/WiFi_Kit_series

ধাপ 4: অ্যানিমেশন এবং এক্সবিএম ফাইল

অ্যানিমেশন এবং এক্সবিএম ফাইল
অ্যানিমেশন এবং এক্সবিএম ফাইল
অ্যানিমেশন এবং এক্সবিএম ফাইল
অ্যানিমেশন এবং এক্সবিএম ফাইল
অ্যানিমেশন এবং এক্সবিএম ফাইল
অ্যানিমেশন এবং এক্সবিএম ফাইল

আমরা একটি অ্যানিমেশন প্রদর্শন করতে লাইব্রেরির drawXbm ফাংশন ব্যবহার করব।

XBM ইমেজ ফরম্যাটে অক্ষরগুলির একটি অ্যারে থাকে যেখানে প্রতিটি উপাদান টেক্সট্যালি একটি হেক্সাডেসিমাল মানের মাধ্যমে একরঙা পিক্সেলের একটি সেট (প্রতিটি 1 বিট) উপস্থাপন করে। এগুলো এক বাইটের সমান।

যেহেতু একক বাইটের প্রতিনিধিত্ব করার জন্য একাধিক অক্ষর ব্যবহার করা হয়, এই ফাইলগুলি বর্তমানে গৃহীত ফর্ম্যাটগুলির চেয়ে বড় হতে থাকে। সুবিধা হল যে তারা পূর্বের চিকিৎসার প্রয়োজন ছাড়া সরাসরি সংকলিত হতে পারে।

অ্যারে ছাড়াও, ছবির সেটিংস নির্ধারণকারী দুটি সেটিংস অন্তর্ভুক্ত করা হয়েছে।

অ্যানিমেশন তৈরির জন্য, আমাদের এমন ছবি দরকার যা ফ্রেম তৈরি করবে।

কাজ করার জন্য আমরা যে কোন ইমেজ এডিটিং সফটওয়্যার ব্যবহার করতে পারি। আমাদেরকে একমাত্র সতর্কতা অবলম্বন করতে হবে তা হল প্রথমে ডিসপ্লের সাথে সাইজের সামঞ্জস্য রাখা এবং একরঙা ফাইল ব্যবহার করা।

ফাইল তৈরি করতে, আমরা সেগুলি আঁকতে পারি বা ছবি আমদানি করতে পারি। এখানে, আমরা পেইন্টব্রাশ ব্যবহার করে একটি রঙিন ছবি সম্পাদনা করার সিদ্ধান্ত নিয়েছি, এবং আমরা প্রতিটি ফ্রেম এঁকেছি

মূল ছবি - 960x707 পিক্সেল --p.webp

পরবর্তী ধাপ হল এটিকে একরঙা বিটম্যাপ হিসেবে সংরক্ষণ করে একরঙা করা।

তারপরে, আমরা ডিসপ্লের সাথে সামঞ্জস্যপূর্ণ আকারে এটির আকার পরিবর্তন করি।

পরিমাপের এককগুলিতে বিশেষ মনোযোগ দিন। এই ক্ষেত্রে, আমরা চিত্রটি সামঞ্জস্য করেছি যাতে এটি প্রদর্শনীর পুরো উচ্চতা (উল্লম্ব = 64 পিক্সেল) দখল করে।

সঠিক আকারে চিত্রের সাথে, আমরা ফ্রেম গঠনের জন্য এটি সম্পাদনা করব। এখানে, আমরা সংকেত স্তরের প্রতিটি চাপ মুছে দিচ্ছি এবং সেগুলি সংশ্লিষ্ট ফ্রেম হিসাবে সংরক্ষণ করছি।

এখন, আমাদের বিএমপি ফাইলগুলিকে এক্সবিএম ফরম্যাটে রূপান্তর করতে হবে।

এই রূপান্তরটি করতে পারে এমন বেশ কয়েকটি সফ্টওয়্যার বিকল্প রয়েছে। আমরা একটি সম্পাদক বিকল্প হিসাবে GIMP বেছে নিয়েছি।

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

রূপান্তর করার জন্য, আমরা প্রথমে ফাইলটি খুলি।

ছবিটি খোলার সাথে সাথে আমরা ফাইল => রপ্তানি হিসাবে নির্বাচন করতে পারি …

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

রপ্তানি করার সময়, জিম্প অন্যান্য বিকল্পগুলি উপস্থাপন করবে। আমরা ডিফল্ট মান ছেড়ে যেতে পারি।

সমস্ত ফাইল রূপান্তর করার পরে, আমাদের চারটি XBM ফাইল থাকবে, প্রতিটি ফ্রেমের জন্য একটি।

এখন আসুন তাদের সোর্স কোড ফোল্ডারে কপি করি এবং তাদের এক্সটেনশানগুলিকে.h এ পরিবর্তন করে তাদের নাম পরিবর্তন করি।

ধাপ 5: এক্সবিএম ফাইলগুলি প্রস্থান করা

এক্সবিএম ফাইলগুলি প্রস্থান করা হচ্ছে
এক্সবিএম ফাইলগুলি প্রস্থান করা হচ্ছে

আমরা যেকোনো টেক্সট এডিটরে XBM ফাইল খুলতে পারি, যেখানে আমরা ইমেজ ম্যাট্রিক্স এবং ইমেজ সাইজ ইনফরমেশন দেখতে পাব যা আগে থেকেই সংজ্ঞায়িত ছিল।

ধাপ 6: সোর্স কোড

উৎস কোড: বিবৃতি

আমরা প্রয়োজনীয় লাইব্রেরিগুলির পাশাপাশি ইমেজ ফাইলগুলি অন্তর্ভুক্ত করব। আমরা ছবির অবস্থান এবং স্থানান্তর ব্যবধান নির্ধারণ করি। আমরা ESP32 এর সাথে সংযুক্ত OLED পিনগুলিও নির্দেশ করি। পরিশেষে, আমরা প্রদর্শন বস্তু তৈরি এবং সমন্বয় করি।

// গ্রন্থপরিচয়ের প্রয়োজনীয়তা হিসাবে অন্তর্ভুক্ত করুন #অন্তর্ভুক্ত #অন্তর্ভুক্ত "SSD1306.h" // Incluindo os arquivos de imagem #include "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" // definições de posição da imagem e intervalo de transição #define posX 21 #define posY 0 #define intervalo 500 // Pinos do OLED estão conctados ao ESP32: I2C // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 - - GPIO16 #ডিফাইন এসডিএ 4 #এসসিএল 15 ডিফাইন করুন RST 16 // O RST deve ser controlado por software SSD1306 display (0x3c, SDA, SCL, RST); // Cria e ajusta o Objeto display

সোর্স কোড: সেটআপ ()

ডিসপ্লে আরম্ভ করুন এবং উল্লম্বভাবে পর্দা উল্টান। কর্ম alচ্ছিক।

অকার্যকর সেটআপ () {display.init (); // inicia o প্রদর্শন display.flipScreenVertically (); // inverte verticalmente a tela (opcional)}

সোর্স কোড: লুপ ()

লুপে প্রথম কাজটি হল পর্দা পরিষ্কার করা। আমরা posX এবং posY প্রাথমিক অবস্থান ব্যবহার করে বাফারে ফ্রেম 1 লোড করি। আমরা ফ্রেম 1_উইডথ এবং ফ্রেম 1_হাইটের সাথে ছবির আকার এবং চিত্রের বিট সম্বলিত অ্যারের নাম জানাই। আমরা ডিসপ্লেতে বাফার দেখাই এবং পরবর্তী ফ্রেম দেখানোর আগে একটি বিরতির জন্য অপেক্ষা করি।

অকার্যকর লুপ () {display.clear (); // limpa tela // carrega para o buffer o frame 1 // usando as posições iniciais posX e posY // informa o tamanho da imagem com frame1_width e frame1_height // informa o nome da matriz que contem os bits da imagem, no caso frame1_bits display.drawXbm (posX, posY, frame1_width, frame1_height, frame1_bits); // mostra o বাফার কোন প্রদর্শন display.display (); // aguarda um intervalo antes de mostrar o próximo frame delay (intervalo);

আমরা অন্যান্য সমস্ত ফ্রেমের জন্য প্রক্রিয়াটি পুনরাবৃত্তি করি।

// repete o processo para todos os outros frames display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); display.display (); বিলম্ব (ব্যবধান); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); display.display (); বিলম্ব (ব্যবধান); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); display.display (); বিলম্ব (ব্যবধান); }

ধাপ 7: কোড আপলোড করা

কোডের আপলোড করা
কোডের আপলোড করা
কোডের আপলোড করা
কোডের আপলোড করা
কোডের আপলোড করা
কোডের আপলোড করা

আইডিই ওপেন করে,.ino ফাইলে ডাবল ক্লিক করে, অথবা ফাইল মেনুতে গিয়ে সোর্স কোড দিয়ে ফাইলটি খুলুন।

ইউএসবি -তে হেলটেক সংযুক্ত থাকলে, মেনু টুলস => কার্ড নির্বাচন করুন: "Heltec_WIFI_LoRa_32"

এখনও সরঞ্জাম মেনুতে, COM পোর্ট নির্বাচন করুন যেখানে হেলটেক সংযুক্ত রয়েছে।

UPLOAD বাটনে ক্লিক করুন …

… এবং উপসংহারের জন্য অপেক্ষা করুন।

ধাপ 8: ফাইল

ফাইল ডাউনলোড করুন:

পিডিএফ

আইএনও

প্রস্তাবিত: