Агуулгын хүснэгт:
- Алхам 1: Жагсаал
- Алхам 2: Серверийг холбох
- Алхам 3: Үйлчлүүлэгчдийн хурал
- Алхам 4: Урсгал - Сервер
- Алхам 5: Урсгал - Үйлчлүүлэгч
- Алхам 6: Client.ino
- Алхам 7: Server.ino
- Алхам 8: Файлууд
Видео: Arduino IDE нь хос цөмтэй: Алсын удирдлага: 8 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Энэ видео нь "олон талт" тухай юм. Бид олон үүрэг даалгавар, олон цөм, олон үйлдлийн системтэй харьцаж байна. Хэсэг хугацааны өмнө би үйлчлүүлэгч ба нэвтрэх цэг гэсэн хоёр ESP -тэй алсын удирдлага хийсэн. Үүн дээр үндэслэн өнөөдөр бид олон талт сервер тохируулах болно. Энэ нь бид нэг ESP -д холбогдсон олон үйлчлүүлэгчтэй болно гэсэн үг юм.
Тиймээс өнөөдрийн хичээл нь ESP32 дээр сервер үүсгэх, шинэ үйлчлүүлэгчдийг нэмж оруулах, хүсэлтийг өөр цөмд зохицуулах явдал юм. Үйлчлүүлэгчид тээглүүрийн төлөв байдлын талаар мэдээлэл илгээх бөгөөд сервер эдгээр төлөвийн өөрчлөлтийг хуулбарлах болно.
Алхам 1: Жагсаал
Алхам 2: Серверийг холбох
Алхам 3: Үйлчлүүлэгчдийн хурал
Алхам 4: Урсгал - Сервер
Алхам 5: Урсгал - Үйлчлүүлэгч
Алхам 6: Client.ino
Тунхаглал ба хувьсагчид
#include // Dados da rede // Deve ser giual no Server #SSID "ESP32Server" #deefine PASSWORD "87654321" #deverine SERVER_PORT 5000 // Тодорхойлох сервер сервер WiFiClient клиент; // Struct que os os -ийг тодорхойлох int төлөв; } Пин; // Quinidade de pinos que iremos ler e enviar o status #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 pins [PIN_COUNT] = { {. тоо = 21}, {. тоо = 19}};
Тохируулах
void setup () {Serial.begin (115200); // Хэрэглэгчийн хувьд түр зуурын тооцоо хийх.setTimeout (5000); // Conectamos à rede WiFi эсвэл conectamos серверийн тохиргооWiFi (); connectClient (); for (int i = 0; i
WiFi тохируулах
void setupWiFi () {Serial.print ("Холбогдож байна" + String (SSID)); // Conectamos à rede WiFi criado pelo outro out ESP WiFi.begin (SSID, PASSWORD); // Esperamos conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); саатал (500); } // Wi -Fi Serial.println () -ийг сонгоно уу. Serial.println ("Холбогдсон!"); }
ConnectClient
void connectClient () {Serial.println ("Үйлчлүүлэгчийг холбох"); // Esperamos conectar com o server while (! Client.connect (WiFi.gatewayIP (), SERVER_PORT)) {Serial.print ("."); саатал (500); } // 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) {// ЧУХАЛ: Хязгааргүй цэгийн терминал, хөгжүүлэлт хийх хугацаа (үнэн) {// Se não estiver conectado com o server, mandamos conectar if (! client.connected ()) {connectClient (); } // Төгсгөлд нь оруулах ёстой. (Int i = 0; i
hasPinStatusChanged
// Төгсгөлд нь тохируулах нь чухал биш юм // 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 if (pins . Status! = PinStatus) {// Guardamos o novo estado e retornamos true pins .status = pinStatus; үнэн рүү буцах; } // Хязгаарлагдмал хугацаа дуусах болно // Então retornamos falso return false; }
sendPinStatus
// SendPinStatus (int i) {client.write ((uint8_t*) & pins , sizeof (Pin)) arrayvoid хийхээс өөр аргагүй серверүүдийг ажиллуулах; client.flush (); }
Алхам 7: Server.ino
Тунхаглал ба хувьсагчид
#include #include // Dados da rede // Deve ser igual no Client #SSID "ESP32Server" -ийг тодорхойлох #PASSWORD -ийг тодорхойлох "87654321" #SERVER_PORT 5000 -ийг тодорхойлох // // SERVER_PORT 'WiFiServer серверийн сервер (SERVER_); // Хэрэглэгчид векторууд нь stect:: vector үйлчлүүлэгчидтэй нийцдэг; // Struct que os os -ийг тодорхойлох int төлөв; } Пин;
Тохируулах
void setup () {Serial.begin (115200); // Criamos нь WiFi тохиргоог өөрчлөх эсвэл серверийн тохиргоо хийхWiFi (); server.begin (); xTaskCreatePinnedToCore (handleClients, // Funcão que será executada "handleClients", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parametro da tarefa (no caso não usamos) 2, // Prioridade da tarefa NULL, // Тайлбарыг буцааж англи (Америкийн Нэгдсэн Улс) руу орчуулах Орчуулах Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); // Гол үүрэг гүйцэтгэнэ үү (үндсэн цэс 0 пара -гийн давталт хийх ёстой))
Wi -Fi тохируулах
void setupWiFi () {// Coloca este ESP como Access Point WiFi.mode (WIFI_AP); // SSID, ESP WiFi.softAP (SSID, Нууц үг); }
Гогцоо
void loop () {// Хэрэглэгчийн баталгаажуулалт WiFiClient client = server.available (); // Se sim colocamos ele no vektor if (client) {clients.push_back (client); }}
HandleClients
void handleClients (void* pvParameters) {// ЧУХАЛ: Хязгааргүй цэгийн терминал, хөгжүүлэлт хийх хугацаа хязгааргүй байхад (үнэн) {// Пара кадаа үйлчлүүлэгчийн хувьд ямар ч вектор байхгүй (int i = 0; i
Алхам 8: Файлууд
Файлуудыг татаж авах
INO
Зөвлөмж болгож буй:
ТВ -ийн алсын удирдлага нь RF -ийн алсын удирдлага болжээ -- NRF24L01+ заавар: 5 алхам (зурагтай)
ТВ -ийн алсын удирдлага нь RF -ийн алсын удирдлага болжээ || NRF24L01+ заавар: Энэхүү төсөл дээр би алдартай nRF24L01+ RF IC ашиглан LED зурвасын гэрэлтүүлгийг телевизийн алсын удирдлагын ашиггүй гурван товчлуураар утасгүйгээр тохируулах аргыг танд үзүүлэх болно. Эхэлцгээе
IRduino: Arduino алсын удирдлага - Алдагдсан алсын зайн дууриамал: 6 алхам
IRduino: Arduino Remote Control - Алдагдсан алсын удирдлагыг дуурайгаарай: Хэрэв та ТВ эсвэл DVD тоглуулагчийнхаа алсын удирдлагыг алдаж байсан бол төхөөрөмж дээрх товчлуур руу алхаж, хайж олох, ашиглах нь ямар их урам хугарахыг та мэднэ. Заримдаа эдгээр товчлуурууд нь алсын удирдлагатай ижил функцийг санал болгодоггүй. Хүлээн авах
Энгийн алсын удирдлагатай иж бүрдэл нь дөрвөн сувгийн RC тоглоомын алсын удирдлага болж хувирсан: 4 алхам
Ердийн алсын удирдлагатай иж бүрдэл нь дөрвөн сувагтай RC тоглоомын алсын удирдлага болж хувирав: 如何 将 通用 器 套件 转换 为 模型 中 遥控 的改造 方法 简单。 只需
IR алсын удирдлагаа RF алсын удирдлага руу хөрвүүлэх: 9 алхам (зурагтай)
IR алсын удирдлагаа RF -ийн удирдлага руу хөрвүүлэх: Өнөөдрийн зааварчилгаанд би ерөнхий хянагчийн модулийг микроконтроллергүйгээр хэрхэн ашиглахыг танд харуулах болно. Алсын удирдлага. Хөрвүүлэх гол давуу тал нь
Цахилгаан хэрэгслээ телевизийн алсын удирдлагаар (алсын удирдлага) температур ба чийгшлийн дэлгэцээр удирдана: 9 алхам
Цахилгаан хэрэгслээ ТВ -ийн алсын удирдлагаар (алсын удирдлага) температур ба чийгшлийн дэлгэцээр удирдана уу: Сайн байна уу, би бол Абхай, энэ бол Instructables -ийн анхны блог бөгөөд өнөөдөр би үүнийг ашиглан телевизийн алсын удирдлагаараа цахилгаан хэрэгслээ хэрхэн удирдахыг үзүүлэх болно. энгийн төсөл. Материалыг дэмжиж, өгсөн атл лабораторид баярлалаа