সুচিপত্র:
- ধাপ 1: বিক্ষোভ
- পদক্ষেপ 2: মাউন্ট করা সার্ভার
- ধাপ 3: ক্লায়েন্ট সমাবেশ
- ধাপ 4: প্রবাহ - সার্ভার
- ধাপ 5: প্রবাহ - ক্লায়েন্ট
- ধাপ 6: Client.ino
- ধাপ 7: Server.ino
- ধাপ 8: ফাইল
ভিডিও: ডুয়াল কোর সহ আরডুইনো আইডিই: রিমোট কন্ট্রোল: 8 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:01
এই ভিডিওটি সমস্ত "মাল্টি" সম্পর্কে। আমরা মাল্টিটাস্কিং, মাল্টিকোরেস এবং মাল্টিক্লিয়েন্ট নিয়ে কাজ করছি। কিছুক্ষণ আগে, আমি দুটি ইএসপি দিয়ে একটি রিমোট কন্ট্রোল তৈরি করেছি: একটি ক্লায়েন্ট এবং একটি অ্যাক্সেস পয়েন্ট। এর উপর ভিত্তি করে, আজ আমরা একটি বহুমুখী সার্ভার স্থাপন করব। এর মানে হল আমরা একক ESP- তে একাধিক ক্লায়েন্টকে সংযুক্ত করব।
এইভাবে, আজকের পাঠের মধ্যে রয়েছে ESP32 এ একটি সার্ভার তৈরি করা, লুপে নতুন ক্লায়েন্ট যোগ করা এবং অন্য কোরে অনুরোধগুলি পরিচালনা করা। ক্লায়েন্টরা তাদের পিনের রাষ্ট্রীয় পরিবর্তন সম্পর্কে তথ্য পাঠাবে এবং সার্ভার এই রাষ্ট্রীয় পরিবর্তনগুলি পুনরুত্পাদন করবে।
ধাপ 1: বিক্ষোভ
পদক্ষেপ 2: মাউন্ট করা সার্ভার
ধাপ 3: ক্লায়েন্ট সমাবেশ
ধাপ 4: প্রবাহ - সার্ভার
ধাপ 5: প্রবাহ - ক্লায়েন্ট
ধাপ 6: Client.ino
ঘোষণা এবং পরিবর্তনশীল
#অন্তর্ভুক্ত // দাদোস দা রেড // দেভ সার জিউল নো সার্ভার #এসএসআইডি "ইএসপি 32 সার্ভার" #ডিফল্ট পাসওয়ার্ড "87654321" #ডিফাইন SERVER_PORT 5000 // Objeto que vai fazer a conexão com o server WiFiClient client; // Struct que define os dados que vamos enviar (de ser ser igual no server) typedef struct {int number; int অবস্থা; } পিন; // Quantidade de pinos que iremos ler e enviar o status #define PIN_COUNT 2 // Array com os pinos definidos // No caso vamos trabalhar com os 21 e 19 mas você pode alterar para os pinos que desejar pin pin [PIN_COUNT] = { {। সংখ্যা = 21}, {। সংখ্যা = 19}};
সেটআপ
অকার্যকর সেটআপ () {Serial.begin (115200); // টেম্পো প্যারা কনসারার এ কনেক্সো কমো পারডিডা ক্লায়েন্ট। সেট টাইমআউট (5000); // Conectamos à rede WiFi e conectamos ao server setupWiFi (); connectClient (); জন্য (int i = 0; i
ওয়াইফাই সেটআপ করুন
void setupWiFi () {Serial.print ("Connecting to" + String (SSID)); // Conectamos à rede WiFi criado pelo outro ESP WiFi.begin (SSID, PASSWORD); // Esperamos conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("।"); বিলম্ব (500); } // Se chegou aqui está conectado à rede WiFi Serial.println (); Serial.println ("সংযুক্ত!"); }
কানেক্ট ক্লায়েন্ট
void connectClient () {Serial.println ("Connecting client"); // Esperamos conectar com o server while (! Client.connect (WiFi.gatewayIP (), SERVER_PORT)) {Serial.print ("।"); বিলম্ব (500); } // Se chegou aqui está conectado com o server Serial.println (); Serial.println ("ক্লায়েন্ট সংযুক্ত!"); }
লুপ
void loop () {// Se não estiver conectado à rede WiFi, mandamos conectar if (WiFi.status ()! = WL_CONNECTED) {setupWiFi (); }}
হ্যান্ডেল সংযোগ
void handleConnection (void* pvParameters) {// IMPORTANTE: A tarefa não pode terminar, deve ficar presa em um loop infinito while (true) {// Se não estiver conectado com o server, mandamos conectar if (! client.connected ()) {connectClient (); } // প্যারা ক্যাডা পিনো, ভেরিফিকামোস সে মুদু ও ইস্টাদো। Se mudou enviamos para o server o novo estado for (int i = 0; i
hasPinStatusChanged
// Verifica se o estado do pino na posição 'i' do array mudou // Retorna 'true' se mudou ou 'false' caso contrário boolean hasPinStatusChanged (int i) {// Faz a leitura do pino int pinStatus = digitalRead (pins । সংখ্যা); // Se o estado do pino for diferente if (pins .status! = PinStatus) {// Guardamos o novo estado e retornamos true pins .status = pinStatus; সত্য ফিরে; } // Só chegará aqui se o estado não foi alterado // Então retornamos falso return false; }
পাঠানপিন স্ট্যাটাস
// Envia para o server os dados do pino na posição 'i' do arrayvoid sendPinStatus (int i) {client.write ((uint8_t*) & pins , sizeof (Pin)); client.flush (); }
ধাপ 7: Server.ino
ঘোষণা এবং পরিবর্তনশীল
#ইনক্লুড #ইনক্লুড // ডাদোস দা রেড // ডেভ সার্ভ ইগুয়াল নো ক্লায়েন্ট #ডিএসফাইন এসএসআইডি "ইএসপি 32 সার্ভার" #ডিফাইন পাসওয়ার্ড "87654321" #ডিফাইন SERVER_PORT 5000 // ক্রাইমোস উম সার্ভার এবং পোর্টা ডেফিনেডা পোর 'SERVER_PORT' ওয়াইফাই সার্ভার সার্ভার (SERVER_PORT 'ওয়াইফাই সার্ভার সার্ভার); // Vector onde vamos adicionar os client conforme eles forem conectando std:: vector client; // Struct que define os dados que vamos enviar (de ser ser igual no client) typedef struct {int number; int অবস্থা; } পিন;
সেটআপ
অকার্যকর সেটআপ () {Serial.begin (115200); // ক্রাইমোস একটি রেড ওয়াইফাই এবং ইনসিয়ামোস বা সার্ভার সেটআপ ওয়াইফাই (); server.begin (); xTaskCreatePinnedToCore (handleClients, // Função que será executeada "handleClients", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (no caso não usamos) 2, // Prioridade da tarefa NULL, // ক্যাসো কোয়ারিয়া মেন্টার উমা রেফারেন্সিয়া প্যারা এ তারেফা কি ভাই সির ক্রিয়েডা (ক্যাসো নাইও প্রিসিসামোস) 0); // Nromero do core que será executeada a tarefa (usamos o core 0 para o loop ficar livre com o core 1)}
সেটআপ ওয়াইফাই
void setupWiFi () {// Coloca este ESP como Access Point WiFi.mode (WIFI_AP); // SSID e Senha para se conectarem a este ESP WiFi.softAP (SSID, PASSWORD); }
লুপ
void loop () {// Verifica se um novo client está tentando se conectar WiFiClient client = server.available (); // Se sim colocamos ele no vector if (client) {client.push_back (client); }}
হ্যান্ডেল ক্লায়েন্ট
void handleClients (void* pvParameters) {// IMPORTANTE: A tarefa não pode terminar, deve ficar presa em um loop infinito while (true) {// Para cada client que temos no vector for (int i = 0; i
ধাপ 8: ফাইল
ফাইলগুলি ডাউনলোড করুন
পিডিএফ
আইএনও
প্রস্তাবিত:
আইআরডুইনো: আরডুইনো রিমোট কন্ট্রোল - একটি হারিয়ে যাওয়া রিমোট অনুকরণ করুন: 6 টি ধাপ
আইআরডুইনো: আরডুইনো রিমোট কন্ট্রোল - একটি হারানো রিমোট অনুকরণ করুন: আপনি যদি কখনও আপনার টিভি বা ডিভিডি প্লেয়ারের রিমোট কন্ট্রোল হারিয়ে ফেলে থাকেন, তাহলে আপনি জানেন যে ডিভাইসে বোতামগুলি হাঁটতে, খুঁজে পেতে এবং ব্যবহার করতে কতটা হতাশাজনক। কখনও কখনও, এই বোতামগুলি রিমোটের মতো একই কার্যকারিতা সরবরাহ করে না। প্রাপ্তি
ESP8266 RGB LED স্ট্রিপ ওয়াইফাই কন্ট্রোল - NODEMCU একটি আইআর রিমোট হিসাবে LED স্ট্রিপের জন্য নিয়ন্ত্রিত ওয়াইফাই - RGB LED STRIP স্মার্টফোন কন্ট্রোল: 4 টি ধাপ
ESP8266 RGB LED স্ট্রিপ ওয়াইফাই কন্ট্রোল | NODEMCU একটি আইআর রিমোট হিসেবে LED স্ট্রিপের জন্য নিয়ন্ত্রিত ওয়াইফাই | আরজিবি এলইডি স্ট্রিপ স্মার্টফোন কন্ট্রোল: হাই বন্ধুরা এই টিউটোরিয়ালে আমরা শিখব কিভাবে একটি আরজিবি এলইডি স্ট্রিপ নিয়ন্ত্রণের জন্য আইআর রিমোট হিসেবে নোডেমকু বা এসপি 8266 ব্যবহার করতে হয় এবং নডেমকু স্মার্টফোনের মাধ্যমে ওয়াইফাই দ্বারা নিয়ন্ত্রিত হবে। তাই মূলত আপনি আপনার স্মার্টফোন দিয়ে RGB LED STRIP নিয়ন্ত্রণ করতে পারেন
HT12D HT12E ব্যবহার করে RF 433MHZ রেডিও কন্ট্রোল - 433mhz: 5 টি ধাপ সহ HT12E এবং HT12D ব্যবহার করে একটি Rf রিমোট কন্ট্রোল তৈরি করা
HT12D HT12E ব্যবহার করে RF 433MHZ রেডিও কন্ট্রোল | 433mhz দিয়ে HT12E এবং HT12D ব্যবহার করে একটি Rf রিমোট কন্ট্রোল তৈরি করা: এই নির্দেশে আমি আপনাকে দেখাবো কিভাবে 433mhz ট্রান্সমিটার রিসিভার মডিউল ব্যবহার করে HT12E এনকোড & HT12D ডিকোডার আইসি এই নির্দেশে আপনি খুব সস্তা উপাদানগুলির মতো ডেটা পাঠাতে এবং গ্রহণ করতে পারেন: HT
সাধারণ রিমোট কন্ট্রোল কিট চার-চ্যানেল আরসি টয় রিমোট কন্ট্রোলে রূপান্তরিত: 4 টি ধাপ
সাধারণ রিমোট কন্ট্রোল কিট চার-চ্যানেল আরসি টয় রিমোট কন্ট্রোলে রূপান্তরিত হয়েছে: 将 通用 遥控 器 套件 转换 模型 6 6方法 非常 简单 简单
রিমোট রিমোট কন্ট্রোল: 11 টি ধাপ (ছবি সহ)
রিমোট রিমোট কন্ট্রোল: আমার একটি নবজাতক বাচ্চা আছে এবং সে মনে করে না যে আমার স্ত্রী যতক্ষণ তাকে ঘুমাতে হবে এবং আমিও তাকে কামনা করতে পারি। একটি জিনিস যা তাকে তার খাঁচায় খুশি রাখে তা হল মোবাইল যা তার উপর ঝুলছে। সুতরাং যখন তিনি জেগে উঠেন যদি আমাদের আরও 25 মিনিট বা তারও বেশি প্রয়োজন হয়