সুচিপত্র:

ESP32: M5Stack with DHT22: 10 ধাপ
ESP32: M5Stack with DHT22: 10 ধাপ

ভিডিও: ESP32: M5Stack with DHT22: 10 ধাপ

ভিডিও: ESP32: M5Stack with DHT22: 10 ধাপ
ভিডিও: ESP32 Tutorial 54 - Set WS2812 LED Strip Color over Wifi | SunFounder's ESP32 IoT Learnig kit 2024, জুলাই
Anonim
Image
Image
ESP32: M5Stack with DHT22
ESP32: M5Stack with DHT22
ESP32: M5Stack with DHT22
ESP32: M5Stack with DHT22

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

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

এই নিবন্ধে, আসুন M5Stack প্রবর্তন করি এবং এর অ্যাপ্লিকেশনগুলি নিয়ে আলোচনা করি। আমি জোর দিয়ে বলতে চাই যে এই ডিভাইসে একটি মাইক্রো এসডি কার্ড, একটি 1W স্পিকার এবং একটি ব্যাটারি সকেটের জন্য একটি ইনপুট রয়েছে, এবং এতে ইন্টারঅ্যাকশন বোতাম, একটি i2c সংযোগকারী, একটি USB টাইপ C, উন্মুক্ত IOs, একটি দুই ইঞ্চি TFT ডিসপ্লে, অন্যান্য বৈশিষ্ট্যগুলির মধ্যে। এটি উপরের ছবিতে দেখানো হয়েছে। আমরা বলতে পারি যে এই ডিভাইসটি IoT এর জন্য প্রস্তুত, কারণ এটি ইতিমধ্যেই ব্লুটুথ এবং ESP32 ওয়াইফাই এর সাথে আসে। এটি ধাতব পৃষ্ঠের সাথে সংযুক্ত করার জন্য একটি চুম্বকও অন্তর্ভুক্ত করে।

আপনি M5Stack পছন্দ করেছেন? ক্লিক করুন:

ধাপ 1: M5Stack

M5 স্ট্যাক
M5 স্ট্যাক
M5 স্ট্যাক
M5 স্ট্যাক
M5 স্ট্যাক
M5 স্ট্যাক
M5 স্ট্যাক
M5 স্ট্যাক

M5Stack এর একটি উদ্ভাবন হল যে, যদি আপনি পিঠটি খুলে ফেলেন, আপনি বিভিন্ন মডিউলে বিভিন্ন ফাংশন, যেমন GPS মডিউল, GSM, LoRa সহ অন্যদের মধ্যে ফিট করতে পারেন। এটি ছবিতে দেখানো হয়েছে।

আমার কাছে আরএস 485, ডিসি মোটর, মেকার, কোর থেকে স্টেপার মোটর নিয়ন্ত্রণ পর্যন্ত মডিউলগুলির আরও উদাহরণ রয়েছে।

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

এখন, আমাদের অবশেষে M5Stack আছে, যা এই ব্যবহারের জন্য প্রস্তুত বক্স। এটি আমাদের অসংখ্য ধাপ সম্পাদন করা থেকে মুক্ত করে।

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

ধাপ 2: M5Stack সম্ভাব্য অ্যাপ্লিকেশন

M5Stack সম্ভাব্য অ্যাপ্লিকেশন
M5Stack সম্ভাব্য অ্যাপ্লিকেশন
M5Stack সম্ভাব্য অ্যাপ্লিকেশন
M5Stack সম্ভাব্য অ্যাপ্লিকেশন
M5Stack সম্ভাব্য অ্যাপ্লিকেশন
M5Stack সম্ভাব্য অ্যাপ্লিকেশন

M5Stack অ্যাপ্লিকেশনের উদাহরণগুলির মধ্যে, আমাদের কাছে অসিলোস্কোপ রয়েছে, যেমন আপনি ছবিতে দেখতে পাচ্ছেন। আমাদের এক ধরনের ক্যালকুলেটর / কাটিং টুল টেবিলও আছে।

সাইকেলের স্পিডোমিটার কেমন?

এটি একটি দূরবর্তী ড্রিলও হতে পারে, যা 3D এ মুদ্রিত হয় এবং একটি নিয়ন্ত্রণ দ্বারা দূর থেকে পর্যবেক্ষণ করা হয়।

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

ধাপ 3: M5Stack - পিন

M5Stack - পিন
M5Stack - পিন

M5Stack এর পিছনে এই ছবিতে আছে, যা দেখায় যে শক্তি 5 ভোল্টে। ছবিটি আরও প্রকাশ করে যে আমাদের কাছে ESP32- এর সাথে সংযোগের সাথে সবকিছু বিদ্যমান।

ধাপ 4: DHT লাইব্রেরি

ডিএইচটি লাইব্রেরি
ডিএইচটি লাইব্রেরি

SimpleDHT lib ব্যবহার করুন, যা আমি ভিডিওতে ব্যবহার করেছি: OLED ডিসপ্লে সহ TEMPERATURE AND HUMIDITY।

ধাপ 5: Arduino IDE লাইব্রেরি পরিচালনা করুন

Arduino IDE লাইব্রেরি পরিচালনা
Arduino IDE লাইব্রেরি পরিচালনা

"মেনু: স্কেচ -> লাইব্রেরি যোগ করুন -> লাইব্রেরি পরিচালনা করুন," নীচের ছবিতে দেখানো দুটি লাইব্রেরি ইনস্টল করা যাক। মনে রাখবেন যে এই সবের আগে, আপনাকে ESP32 এর Arduino কোর ইনস্টল করতে হবে। এটি: কিভাবে ESP32 এ ARDUINO IDE ইনস্টল করবেন।

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

উল্লিখিত সোর্স কোডটি আমি ভিডিওতে ব্যবহার করেছি: OLED ডিসপ্লে সহ টেম্পারেচার গ্রাফ। এই প্রকল্পে আমি যে পরিবর্তনটি করেছি তা ছিল ডিসপ্লের আকারের সাথে সম্পর্কিত।

ধাপ 7: M5StackDHTGraph.ino

আমরা M5Stack.h এবং SimpleDHT.h লাইব্রেরিগুলিকে অন্তর্ভুক্ত করব, এবং আমরা ডিসপ্লেতে ব্যবহৃত রঙগুলি, সেইসাথে DHT ডেটা পিন সংজ্ঞায়িত করব। আমরা সেন্সরের সাথে যোগাযোগের জন্য একটি বস্তুও তৈরি করব, রিডিংয়ের জন্য দায়ী পরিবর্তনশীল সংজ্ঞায়িত করব এবং X- অক্ষের মান নির্দেশ করব।

// Libs do M5Stack e DHT #include #include // definição das cores que serão utizadas #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #define YELLOW 0xFFE0 #define WHITE 0DFINF 0DFFE DOFFIN 4 // কনস্ট্রাক্টর ডো objeto para comunicar com o সেন্সর SimpleDHT22 dht; // variável responsavel por contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

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

// definições না posicionamento ডস eixos এক্স ই ওয়াই # সংজ্ঞায়িত POS_X_GRAFICO 30 # define POS_Y_GRAFICO 3 # define ALTURA_GRAFICO 180 # define COMPRIMENTO_GRAFICO 270 // definição দা coordenada Onde escreveremos OS dados ডি তাপমাত্রা ই umidade # define POS_X_DADOS 30 # define POS_Y_DADOS 200 // variáveis que armazenarão os valores lidos da umidade e temperatura int umidade = 0; int temperatura = 0; // variável que armazenará o valor da coordenada Y para desenharmos uma linha de exemplo // que varia os valores de 1 em 1 int linhaExemplo = 20; int fator = 1; // indicará se somaremos ou subtrairemos uma unidade na variável linhaExemplo

ধাপ 8: M5StackDHTGraph.ino - সেটআপ

সেটআপে, আমরা M5Stack আরম্ভ করি। আমরা গ্রাফ আঁকার জন্য কমান্ড সংজ্ঞায়িত করি, ফন্টের পাশাপাশি টেক্সট কালার কনফিগার করি এবং লেখার জন্য কার্সার অবস্থান করি।

অকার্যকর সেটআপ (অকার্যকর) {Serial.begin (115200); // Inicializa o M5Stack M5.begin (); // pinta a tela toda de preto M5. Lcd.fillScreen (BLACK); // os comandos a seguir irão desenhar as linhas dos eixos cartesianos na cor branca // drawFastVLine (x, y, width, color) linha vertical M5. Lcd.drawFastVLine (POS_X_GRAFICO, POS_Y_GRAFICO, ALTURA_GRAFICO, ALTURA_GRAFICO) // eixo Y // drawFastHLine (x, y, width, color) linha অনুভূমিক এম 5 // eixo X // configura o tamnaho do texto que escreveremos em tela M5. Lcd.setTextSize (3); // কনফিগার একটি কোর ব্রাঙ্কা প্যারা ও টেক্সট M5. Lcd.setTextColor (সাদা); // posiciona o cursor para escrita M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("T:"); // একটি তাপমাত্রা M5. Lcd.setCursor (POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print ("U:"); // একটি umidade নির্দেশ করে}

ধাপ 9: M5StackDHTGraph.ino - লুপ

লুপের প্রথম অংশে, আমরা তাপমাত্রা এবং আর্দ্রতা পড়ি, গ্রাফে বসানোর জন্য ভেরিয়েবলের মান ম্যাপ করি এবং পর্দায় এমন বিন্দু আঁকুন যা সেন্সর থেকে পড়া এই মানগুলিকে নির্দেশ করে।

void loop () {// Fazemos a leitura da temperatura e umiade float temp, umid; int অবস্থা = dht.read2 (DHTPIN, & temp, & umid, NULL); যদি (অবস্থা == SimpleDHTErrSuccess) {temperatura = temp; umidade = উমিদ; } // mapeando o valor das variáveis para colocar no gráfico // essentialário pois o display tem 240px de altura e Separmos apenas 180 para o gráfico // umidade pode ser lida de 0-100 int temperaturaMapeada = map (temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = মানচিত্র (umidade, 0, 100, 0, ALTURA_GRAFICO); // desenha na tela o ponto referente aos valores lidos do sensor M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-temperaturaMapeada, RED); M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-umidadeMapeada, CYAN); // desenha na tela o ponto referente a nossa linha de exemplo que fica variando M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-linhaExemplo, YELLOW);

তারপরে, আমরা ডিসপ্লেতে গ্রাফিক মুদ্রণের সম্ভাবনাগুলি সংজ্ঞায়িত করি।

// aqui controlamos nossa linha de exemplo, quando chega no valor máximo decmentamos o valor // até um valor mínimo determinado (no nosso caso 10), e a partir daí, incrementa novamente if (linhaExemplo == 50) fator = -1; অন্যথায় যদি (linhaExemplo == 10) fator = 1; // soma o valor de linhaExemplo linhaExemplo += fator; // incrementa o contador de leituras realizadas leituraAtual ++; // se a leitura chegar em 270 (número máximo do eixo X) então limparemos a área do gráfico para voltarmos a desenhar। যদি (leituraAtual == 270) {// limpa a área toda do gráfico M5. Lcd.fillRect (POS_X_GRAFICO+1, POS_Y_GRAFICO-1, COMPRIMENTO_GRAFICO, ALTURA_GRAFICO-1, BLACK); leituraAtual = 1; // volta o contador de leitura para 1 (nova coordenada X)} // limpa a área onde colocamos o valor da temperatura e da umidade M5. Lcd.fillRect (POS_X_DADOS+50, POS_Y_DADOS, 60, 30, BLACK); M5. Lcd.fillRect (POS_X_DADOS+165, POS_Y_DADOS, 90, 30, BLACK);

// reposiciona o cursor para escrever a temperatura M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (RED); M5. Lcd.print (temperatura); M5. Lcd.print ((char) 247); // reposiciona o cursor para escrever a umidade M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.print (umidade); M5. Lcd.print ("%"); বিলম্ব (1000); }

ধাপ 10: ফাইল

আপনি M5Stack পছন্দ করেছেন? একটি কিনতে চান? যান:

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

পিডিএফ

আইএনও

প্রস্তাবিত: