Мазмуну:
- 1 -кадам: Демонстрация
- 2 -кадам: Server орнотуу
- 3 -кадам: Кардарларды чогултуу
- 4 -кадам: Flow - Server
- 5 -кадам: Flow - Кардар
- 6 -кадам: Client.ino
- 7 -кадам: Server.ino
- 8 -кадам: Файлдар
Video: Arduino IDE Dual Core менен: Алыстан башкаруу: 8 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бул видео "мульти" жөнүндө. Биз көп тапшырмалар менен иштейбиз, көп борборлор жана көп клиенттер. Бир аз мурун мен эки ESP менен алыстан башкарууну жасадым: кардар жана кирүү чекити. Ушуга таянып, бүгүн биз көп квалификациялуу серверди орнотобуз. Бул бизде бир ESPке туташкан бир нече кардарлар болот дегенди билдирет.
Ошентип, бүгүнкү сабак ESP32де сервер түзүүнү, циклге жаңы кардарларды кошууну жана башка ядродо суроо -талаптарды кароону камтыйт. Кардарлар казыктарынын абалынын өзгөрүшү жөнүндө маалыматты жөнөтүшөт жана сервер бул абалдын өзгөрүүлөрүн кайра чыгарат.
1 -кадам: Демонстрация
2 -кадам: Server орнотуу
3 -кадам: Кардарларды чогултуу
4 -кадам: Flow - Server
5 -кадам: Flow - Кардар
6 -кадам: Client.ino
Декларациялар жана өзгөрмөлөр
#include // Dados da rede // Deve ser giual no Server #SSID "ESP32Server" #deefine PASSWORD "87654321" #define SERVER_PORT 5000 // WWW серверин байланыштырыңыз WiFiClient кардары; // Структураны аныктоо os enosar (dever ser igual no server) typedef struct {int number; int абалы; } Pin; // Статус #аныктоо PIN_COUNT 2 // Тандоо коду // Аракеттердин тизмеси жок 21 же 19 маселени чечүү Pin pins [PIN_COUNT] = { {.number = 21}, {.number = 19}};
Жайгашуу
void setup () {Serial.begin (115200); // Тапшырмаларды аткаруу үчүн client.setTimeout (5000); // Conectamos à rede WiFi жана conectamos au server setupWiFi (); connectClient (); үчүн (int i = 0; i
WiFi орнотуу
void setupWiFi () {Serial.print ("Туташуу" + String (SSID)); // ESP WiFi.begin (SSID, PASSWORD) аркылуу Wi -Fi байланышын калыбына келтирүү; // Esperamos conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); кечигүү (500); } // WiFi 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 ("Кардар туташты!"); }
Loop
void loop () {// Wi -Fi жаңыртылганда, эгерде (WiFi.status ()! = WL_CONNECTED) {setupWiFi (); }}
HandleConnection
void handleConnection (void* pvParameters) {// МААНИЛҮҮ: Жаңы терминал, акыркы мезгилде (чын) { /niche de ficar presa em um loop infinito while {true] {// Se server nào estiver conectado com o server, mandamos conectar if (! client.connected ()) {connectClient (); } // Төмөнкү позицияны карап көрүңүз: Серверди жаңыртуу үчүн (int i = 0; i
hasPinStatusChanged
// Туура эмес позиционуу 'i' массивди жасоо // Туура "туура" тандоо "логикалык" логикалык hasPinStatusChanged (int i) {// Кирүү pinStatus = digitalRead (казыктар) .сана); // Se if est est do do pino for diferente if (pins .status! = PinStatus) {// Guardamos o novo estado e retornamos true pins .status = pinStatus; чындыкка кайтуу; } // Активдүү эмес нерселер // жалган кайтаруу; }
sendPinStatus
// Envia para server to os os doos do pino na posichão 'i' arrayvoid sendPinStatus (int i) {client.write ((uint8_t*) & pins , sizeof (Pin)); client.flush (); }
7 -кадам: Server.ino
Декларациялар жана өзгөрмөлөр
#include #include // Dados da rede // Deve ser igual no Client #SSID "ESP32Server" аныктоо #PASSWORDту аныктоо "87654321" #define SERVER_PORT 5000 // "SERVER_PORT" WiFiServer Server (SERVER_PORT) үчүн серверди аныктоо // Вектордук кардарлар кардарлардын конкандуу стд:: вектордук кардарларына ылайыкташат; // Түзүлүштү аныктоо os dados que vamos enviar (иштеп чыгуу igual no client) typedef struct {int number; int абалы; } Pin;
Жайгашуу
void setup () {Serial.begin (115200); // Wi -Fi серверлерин калыбына келтирүү же серверди орнотууWiFi (); server.begin (); xTaskCreatePinnedToCore (handleClients, // "HandClients" функциясын аткаруу, // 10000 номери, // Таманьо да пилха NULL, // Параметро да (эч кандай касиети жок) 2, // Тарафа NULL, // Колдонуу шарттары Купуялуулук Мобилдүү Жөндөө Колдонуу шарттары Купуялуулук Мобилдүү Жөндөө // Негизги тизмекти аткарыңыз (негизги 0 пункту 0 циклден ашпашы керек)}
Wi -Fi орнотуу
void setupWiFi () {// Coloca este ESP como Access Point WiFi.mode (WIFI_AP); // SSID жана сиз ESP WiFi.softAP (SSID, PASSWORD) менен байланышыңыз; }
Loop
void loop () {// Колдонуучу WiFiClient client = server.available (); // Sim sim colocamos ele no vektor if (client) {clients.push_back (client); }}
HandleClients
void handleClients (void* pvParameters) {// МААНИЛҮҮ: Потер терминалы, акыркы мезгилде (чыныгы) { /para claent клиенттери үчүн вектор жок (int i = 0; i)
8 -кадам: Файлдар
Файлдарды жүктөп алыңыз
МЕН ЖОК
Сунушталууда:
LoRa негизделген алыстан башкаруу - Чоң аралыктан башкаруу шаймандары: 8 кадам
LoRa негизделген алыстан башкаруу | Түзмөктөр чоң аралыктан: Эй, эмне болду, балдар! Akarsh бул жерде CETechтен. Бул долбоордо биз светодиоддор, моторлор сыяктуу ар кандай приборлорду көзөмөлдөө үчүн колдонула турган алыстан башкаруу пультун түзөбүз же эгерде биз күнүмдүк жашообуз жөнүндө айтсак, биз өзүбүздүн үй колдонуучубузду башкара алабыз
ESP8266 - Интернет / ESP8266 аркылуу таймер жана алыстан башкаруу менен бакчаны сугаруу: 7 кадам (сүрөттөр менен)
ESP8266 - Internet / ESP8266 аркылуу таймер жана алыстан башкаруу менен бакчаны сугаруу Бул ESP-8266 схемасын жана сугатчы үчүн гидравликалык / электр клапанын колдонот. Артыкчылыктары: Төмөн наркы (~ US $ 30,00) тез жетүү Commands ov
Жаңсоолор менен башкарылган универсалдуу алыстан башкаруу түйүнү-MCU менен: 12 кадам
Жаңсоо менен башкарылган универсалдуу алыстан башкаруу түйүнү-MCU менен: Баарына салам жана бул долбоорго кош келиңиз! Мен абдан жалкоомун жана жалкоо адамдын түшү - пульттун өтө алыс экенин түшүнгөндө телевизор көрүү! Мен колумда болгондо пультим эч качан алыс болбойт экенин түшүндүм
DIY RGB-LED Glow Poi Алыстан башкаруу менен: 14 кадам (Сүрөттөр менен)
Алыстан башкаруу пульту менен DIY RGB-LED Glow Poi: Кириш Саламатсыздарбы! Бул менин биринчи жол көрсөткүчүм жана (үмүттөнөм) ачык булак RGB-LED визуалдык пои түзүүгө болгон умтулуум боюнча бир катар көрсөтмөлөрдүн биринчиси. Адегенде жөнөкөй болуш үчүн, бул алыскы контентти камтыган жөнөкөй LED-poi алып келет
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу - Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу - Rc Helicopter - Rc учагы Arduino колдонуу: 5 кадам (сүрөттөр менен)
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу | Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу | Rc Helicopter | Arduino менен Rc учагы: Rc машинасын иштетүү | Quadcopter | Дрон | RC учагы | RC кайыгы, бизге дайыма рецептор жана өткөргүч керек, RC QUADCOPTER үчүн бизге 6 каналдуу өткөргүч жана кабыл алгыч керек деп ойлойбуз жана TX менен RXтин бул түрү өтө кымбат, ошондуктан биз аны өзүбүздө жасайбыз