Mundarija:
- 1 -qadam: Namoyish
- 2 -qadam: Serverni o'rnatish
- 3 -qadam: mijozlarni yig'ish
- 4 -qadam: oqim - server
- 5 -qadam: oqim - mijoz
- 6 -qadam: Client.ino
- 7 -qadam: Server.ino
- 8 -qadam: fayllar
Video: Ikki yadroli Arduino IDE: masofadan boshqarish: 8 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Bu video "ko'p" haqida. Biz ko'p vazifali, ko'p yadroli va ko'p mijozli bilan shug'ullanamiz. Biroz oldin men ikkita ESP bilan masofadan boshqarish pultini qildim: mijoz va kirish nuqtasi. Shunga asoslanib, bugun biz ko'p mijozli serverni o'rnatamiz. Bu shuni anglatadiki, bizda bitta ESPga ulangan bir nechta mijozlar bo'ladi.
Shunday qilib, bugungi dars ESP32 -da server yaratish, yangi mijozlarni qo'shish va so'rovlarni boshqa yadroda ishlashni o'z ichiga oladi. Mijozlar pinlarning holati o'zgarishi haqida ma'lumot yuborishadi va server bu holat o'zgarishlarini takrorlaydi.
1 -qadam: Namoyish
2 -qadam: Serverni o'rnatish
3 -qadam: mijozlarni yig'ish
4 -qadam: oqim - server
5 -qadam: oqim - mijoz
6 -qadam: Client.ino
Deklaratsiyalar va o'zgaruvchilar
#include // Dados da rede // Deve ser gigual no Server #SSID "ESP32Server" ni belgilang #PASSWORD "87654321" #SERVER_PORT 5000 -ni aniqlang // WiFiClient mijozining vazifasi; // Strukturani belgilash kerakmi? int holati; } Pin; // Maqolani aniqlang #PIN_COUNT 2 ni belgilang // Array comos pinos ta'riflari // Yo'q, hech qanday ma'lumot yo'q, bu 21 -sonli 19 -sonli pin pinlari [PIN_COUNT] = { {.number = 21}, {.number = 19}};
Sozlash
void setup () {Serial.begin (115200); // Client.setTimeout (5000) bilan bog'liq vaqtni hisoblash. // Wi -Fi ulanishini sozlash yoki serverni sozlashWiFi (); connectClient (); uchun (int i = 0; i
WiFi -ni sozlash
void setupWiFi () {Serial.print ("Ulanish" + String (SSID)); // ESP WiFi.begin (SSID, PASSWORD) dan foydalangan holda Wi -Fi tarmog'ini qayta ishlash; // Esperamos conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); kechikish (500); } // WiFi Serial.println () ni tanlang; Serial.println ("Ulangan!"); }
ConnectClient
void connectClient () {Serial.println ("Mijoz ulanmoqda"); // Esperamos conectar com o server while (! Client.connect (WiFi.gatewayIP (), SERVER_PORT))) {Serial.print ("."); kechikish (500); } // Serial.println () serverini tanlang. Serial.println ("Mijoz ulandi!"); }
Loop
void loop () {// Agar siz Wi -Fi tarmog'ini ishlatmasangiz, unda (WiFi.status ()! = WL_CONNECTED) {setupWiFi (); }}
Handle Connection
void handleConnection (void* pvParameters) {// MUHIM: Noutbukning oxirgi nuqtasi, vaqtni uzluksiz hisoblashda (haqiqiy),) {ulanishClient (); } // Para -pino, verificamos seudou o estado. (Int i = 0; i
hasPinStatusChanged
// Muvaffaqiyatli ishlarni bajarishga ruxsat berish // "to'g'ri" ni tanlashda "noto'g'ri", chunki bu "mantiqiy" hasPinStatusChanged (int i) {// Aniqlanishicha, pinStatus = digitalRead (pins) .sonli); // Se o estado do pino for diferente if (pins . Status! = PinStatus) {// Guardamos o novo estado e retornamos true pins .status = pinStatus; haqiqatga qaytish; } // Savol -javob: "Qayta tiklash noto'g'ri"; }
sendPinStatus
// SendPinStatus (int i) {client.write ((uint8_t*) & pins , sizeof (Pin)) qatorini o'chirib qo'yish uchun serverni ishga tushirish kerak; mijoz.flush (); }
7 -qadam: Server.ino
Deklaratsiyalar va o'zgaruvchilar
#include #include // Dados da rede // Mijozlarsiz ishlash #aniqlang SSID "ESP32Server" #parolni aniqlang "87654321" #SERVER_PORT 5000ni aniqlang // "SERVER_PORT" WiFiServer serverining serveri (SERVER_PORT); // Vektorli mijozlar mijozlarning talablariga muvofiq, stect:: vektorli mijozlar; // Strukturani belgilash kerakmi? int holati; } Pin;
Sozlash
void setup () {Serial.begin (115200); // Wi -Fi -ni sozlash yoki serverni sozlashWiFi () ni ishlating; server.begin (); xTaskCreatePinnedToCore (handleClients, // funktsiyalarni bajarish "handleClients", // 10000 nomlari, // Tamanho da pilha NULL, // Parametrlar ham (hech qanday noo usamos yo'q) 2, // Tarafa NULL, // O'ylaymanki, siz hech qanday ma'lumotga ega bo'lmaysiz (0); // Noma'lum vazifalar bajarilgan bo'lsa (yadro 0 ga teng)
Wi -Fi -ni sozlash
void setupWiFi () {// Coloca este ESP como Access Point WiFi.mode (WIFI_AP); // SSID va ESP WiFi.softAP (SSID, PASSWORD) ma'lumotlarini birlashtirish uchun; }
Loop
void loop () {// Internet -mijozlar uchun WiFiClient mijoz = server.available (); // Se sim colocamos ele hech vektor if (client) {clients.push_back (client); }}
HandleClients
void handleClients (void* pvParameters) {// MUHIM: Noma'lum vaqt oralig'ida, lekin hech bo'lmaganda (haqiqiy) {// mijoz mijozlari uchun vektor yo'q (int i = 0; i)
8 -qadam: fayllar
Fayllarni yuklab oling
INO
Tavsiya:
LoRa asosidagi masofadan boshqarish pulti - Katta masofadan asboblarni boshqarish: 8 qadam
LoRa asosidagi masofadan boshqarish pulti | Katta masofadan asboblarni boshqarish: Hey, nima bo'ldi, bolalar! Bu loyihada biz LEDlar, motorlar kabi turli xil asboblarni boshqarish uchun ishlatilishi mumkin bo'lgan masofadan boshqarish pultini yaratmoqchimiz yoki agar biz kundalik hayotimiz haqida gapiradigan bo'lsak, biz o'z uy dasturchimizni boshqaramiz.
Arduino va Ps2 masofadan boshqarish pulti yordamida 4dof yuqori quvvatli katta o'lchamli robot qo'lini qanday boshqarish mumkin?: 4 qadam
Arduino va Ps2 masofadan boshqarish pulti bilan 4dof yuqori quvvatli katta o'lchamli robot qo'lini qanday boshqarish mumkin?: Bu to'plamda yuqori quvvatli mg996 dvigateli ishlatiladi, u yuqori oqimga muhtoj, bizda ko'p quvvat manbai sinovi bor. Faqat 5v 6a adapter ishlaydi. Va arduino taxtasi 6dof robot qo'li ustida ham ishlaydi.end: yozing SINONING do'konini DIY o'yinchoq uchun sotib oling
IRduino: Arduino masofadan boshqarish pulti - yo'qolgan masofadan boshqarish pultiga taqlid: 6 qadam
IRduino: Arduino masofadan boshqarish pulti - Yo'qotilgan masofadan boshqarish pultiga taqlid qiling: Agar siz televizor yoki DVD pleer uchun masofadan boshqarish pultini yo'qotib qo'ysangiz, qurilmaning o'zi tugmachalarini bosib o'tish, topish va ulardan foydalanish qanchalik achinarli ekanligini bilasiz. Ba'zida bu tugmalar masofadan boshqarish pulti bilan bir xil funktsiyalarni taklif qilmaydi. Qabul qilish
Oddiy masofadan boshqarish pulti to'rt kanalli RC o'yinchoqli masofadan boshqarish pultiga aylantirildi: 4 qadam
Oddiy masofadan boshqarish pulti to'rt kanalli RC o'yinchoqli masofadan boshqarish pultiga aylantirildi: 如何 通用 遥控 器 套件 的 的.方法 非常 简单。 只需
IR masofadan boshqarish pultini masofadan boshqarish pultiga aylantirish: 9 qadam (rasmlar bilan)
IR masofadan boshqarish pultini masofadan boshqarish pultiga aylantiring: "Bugungi yo'riqnomada" sizga qanday qilib umumiy chastotali modulni mikrokontroldorisiz ishlatishingiz mumkinligini ko'rsataman, bu esa oxir -oqibat bizni har qanday qurilmaning IR masofadan boshqarish pultini RFga aylantirishga imkon beradi. Masofadan boshqarish pulti. Konvertatsiya qilishning asosiy afzalligi