ประเภท: ระบบอัตโนมัติในบ้าน, วงจรไมโครคอนโทรลเลอร์
จำนวนการดู: 17351
ความเห็นเกี่ยวกับบทความ: 0

การควบคุมระยะไกลไมโครคอนโทรลเลอร์: IR Remote, Arduino, ESP8266, 433 MHz

 

ปัญหาของการควบคุมระยะไกลหรือระยะไกลของอุปกรณ์ไฟฟ้าได้รับเสมอและจะมีความเกี่ยวข้องไม่ว่าจะมีเครื่องมืออัตโนมัติในระบบหรือไม่ สำหรับองค์กรของการควบคุมระยะไกลมันไม่สำคัญว่า ไมโครคอนโทรลเลอร์ทุกอย่างขึ้นอยู่กับฟังก์ชั่นที่จำเป็นที่กำหนดให้กับอุปกรณ์ที่มีการจัดการ ในบทความนี้คุณจะได้เรียนรู้ข้อมูลทั่วไปเกี่ยวกับวิธีการควบคุมระยะไกลสำหรับไมโครคอนโทรลเลอร์

การควบคุมระยะไกลไมโครคอนโทรลเลอร์

ประเภท

การสื่อสารระยะไกลมีสองประเภทหลัก:


แบบใช้สาย. เมื่อการควบคุมแอคชูเอเตอร์ตั้งอยู่ในห้องหนึ่ง (หรือไม่ใช่ห้อง) จะดำเนินการจากแผงควบคุมหรือจากการโพสต์ปุ่มที่อยู่ในที่อื่น ในกรณีนี้จะมีการเชื่อมต่อสายไฟฟ้าของวงจรควบคุมและแอคทูเอเตอร์ (รีเลย์คอนแทคเตอร์ซึ่งรวมถึงกลไกเช่นมอเตอร์หรือระบบเช่นแสงสว่าง)


ไร้สาย. ในศูนย์รวมนี้ไม่จำเป็นต้องมีการเชื่อมต่อไฟฟ้าของวงจรควบคุมและวงจรผู้บริหาร ในวงจรไร้สายมีสองอุปกรณ์: ตัวส่งสัญญาณหรือตัวควบคุมระยะไกล (RC) และตัวรับซึ่งเป็นส่วนหนึ่งของวงจรควบคุม ในที่สุดก็มีการควบคุมแบบไร้สายในสองรุ่น:

  • โดยสัญญาณแสง ระบบดังกล่าวมีอยู่ในทุกบ้านดังนั้นคุณจึงควบคุมการทำงานของทีวีเครื่องปรับอากาศและเครื่องใช้ในครัวเรือนอื่น ๆ

  • โดยสัญญาณวิทยุ มีตัวเลือกมากมายแล้ว: บลูทู ธ , ZigBee, Wi-Fi, ตัวรับ - ส่งสัญญาณ 433 MHz และรูปแบบอื่น ๆ ในเรื่องนี้

เป็นที่น่าสังเกตว่าด้วยวิธีการทางเทคนิคที่ทันสมัยคุณสามารถควบคุมไมโครคอนโทรลเลอร์ได้ทั้งจากรีโมทคอนโทรลและผ่านอินเทอร์เน็ตบนเครือข่ายท้องถิ่นหรือสามารถเข้าถึงได้จากทุกที่ในโลก



IR ระยะไกล

เราเริ่มพิจารณาด้วยรุ่นที่ง่ายที่สุดและคลาสสิคที่สุด การควบคุมอุปกรณ์โดยการส่งรหัสจากลำดับการกะพริบของ IR LED ไปยังตัวรับออปติคัลที่ติดตั้งบนอุปกรณ์ เป็นที่น่าสังเกตว่าสเปกตรัมอินฟราเรดไม่สามารถมองเห็นได้ด้วยตามนุษย์ แต่กล้องถ่ายรูปและวิดีโอส่วนใหญ่จะมองเห็น

เนื่องจากกล้องส่วนใหญ่เห็นอินฟราเรดคุณจึงสามารถตรวจสอบได้ บริการการควบคุมระยะไกล. ในการทำเช่นนี้เพียงเล็งรีโมตควบคุมเพื่อให้ตัวส่งสัญญาณมองเข้าไปในกล้องและกดปุ่ม โดยปกติแล้วแสงสีขาวที่มีสีม่วงจะปรากฏบนหน้าจอ

การควบคุมนี้มีข้อเสียเปรียบที่ชัดเจน - คุณต้องชี้รีโมทไปยังผู้รับ และหากแบตเตอรี่ในรีโมทคอนโทรลหมดคุณก็ต้องตั้งเป้าหมายเนื่องจากการใช้งานจะลดลงเรื่อย ๆ

ข้อดีคือความเรียบง่ายการบำรุงรักษาสูงทั้งตัวส่งและตัวรับ คุณสามารถค้นหารายละเอียดได้ด้วยการรื้อรีโมทและโทรทัศน์ที่เสียเพื่อนำไปใช้ในโครงการของคุณเอง

เซ็นเซอร์ทั่วไปมีดังนี้ เนื่องจากมีการรับสัญญาณแสงจึงจำเป็นต้องยกเว้นการกระตุ้นจากแหล่งกำเนิดแสงภายนอกเช่นดวงอาทิตย์โคมไฟส่องสว่างและอื่น ๆ นอกจากนี้ยังเป็นที่น่าสังเกตว่าสัญญาณอินฟราเรดที่ได้รับส่วนใหญ่ที่ความถี่ 38 kHz

เซ็นเซอร์อินฟราเรด

นี่คือข้อมูลจำเพาะของหนึ่งในเซ็นเซอร์ IR:

  • ความถี่ของผู้ให้บริการ: 38 kHz;

  • แรงดันไฟฟ้าซัพพลาย: 2.7 - 5.5 V;

  • การบริโภคในปัจจุบัน: 50 μA

และแผนภาพการเชื่อมต่อ:

แผนภาพการเชื่อมต่อเซ็นเซอร์ IR

ใครก็ตามที่มีหลักการทำงานคล้ายกันสามารถใช้รีโมทควบคุมได้รีโมทควบคุมจาก:

  • โทรทัศน์

  • เครื่องเล่นดีวีดี

  • เครื่องบันทึกเทปวิทยุ

  • จากอุปกรณ์ให้แสงสว่างที่ทันสมัยเช่นโคมไฟระย้าอัจฉริยะและแถบ LED และอื่น ๆ

แผงควบคุม

นี่คือตัวอย่างของการใช้เซ็นเซอร์ดังกล่าว ด้วย Arduino

ตัวอย่างเซ็นเซอร์ IR Arduino

เพื่อให้ไมโครคอนโทรลเลอร์ในกรณีของเรา Arduin เข้าใจสัญญาณจากเซ็นเซอร์คุณต้องใช้ไลบรารี IRremote.h สำหรับตัวอย่างของวิธีการอ่านสัญญาณจากเซ็นเซอร์นี่คือรหัสสำหรับการจดจำโดยการอ่านพอร์ตอนุกรมของไมโครคอนโทรลเลอร์จาก Arduino IDE:

#include "IRremote.h" // เชื่อมต่อไลบรารีเพื่อทำงานกับสัญญาณ IR

IRrecv irrecv (2); // ระบุเอาท์พุทที่เชื่อมต่อกับตัวรับสัญญาณ

decode_results ผลลัพธ์

การตั้งค่าเป็นโมฆะ () {

Serial.begin (9600); // ตั้งค่าความเร็วพอร์ต COM

irrecv.enableIRIn (); // เริ่มการต้อนรับ

}

void loop () {

if (irrecv.decode (& results)) {// หากข้อมูลมา

Serial.println (results.value, HEX); // พิมพ์ข้อมูล

irrecv.resume (); // ยอมรับคำสั่งต่อไปนี้

  }

}

ดังนั้นเมื่อคุณแฟลช arduino และเริ่ม“ ส่องแสง” เข้ากับเครื่องรับด้วยรีโมทคอนโทรลเราจะเห็นภาพต่อไปนี้ในมอนิเตอร์พอร์ตอนุกรม:

จอภาพพอร์ตอนุกรม

นี่คือรหัสที่ส่งปุ่มในรูปแบบเลขฐานสิบหก ดังนั้นคุณสามารถค้นหาว่าปุ่มใดบนรีโมตคอนโทรลที่ส่งโค้ดดังนั้นจึงไม่มีข้อกำหนดเฉพาะสำหรับรีโมตคอนโทรลที่ใช้เนื่องจากคุณสามารถจดจำและเชื่อมโยงใด ๆ ได้ โดยวิธีการนี้เป็นความคิดสำหรับโครงการการควบคุมระยะไกลสากลที่ผ่านการฝึกอบรมเช่นขายก่อนหน้านี้ แต่ตอนนี้ในยุคอินเทอร์เน็ตจำนวนเทคโนโลยีที่ควบคุมด้วยวิธีนี้ลดลงทุกปี

และด้วยรหัสนี้คุณสามารถรับรู้สัญญาณและจัดการโหลด:

#include "IRremote.h"

IRrecv irrecv (2); // ระบุเอาท์พุทที่เชื่อมต่อกับตัวรับสัญญาณ

decode_results ผลลัพธ์

การตั้งค่าเป็นโมฆะ () {

irrecv.enableIRIn (); // เริ่มการต้อนรับ

}

void loop () {

if (irrecv.decode (& results)) {// หากข้อมูลมา

switch (results.value) {

กรณี 0xFFA857:

digitalWrite (13, สูง);

ทำลาย;

กรณี 0xFFE01F:

digitalWrite (13, ต่ำ);

ทำลาย;

    }   

irrecv.resume (); // ยอมรับคำสั่งต่อไปนี้

  }

}

สิ่งสำคัญในรหัสคือการรับรู้ผ่านฟังก์ชั่นสวิทช์บางครั้งพวกเขาจะเรียกว่า "switchcase" มันเป็นแบบอะนาล็อกของกิ่งไม้หาก แต่มีรูปแบบที่สวยงามกว่าสำหรับการรับรู้ ตัวพิมพ์เล็ก - ตัวเลือกเหล่านี้คือตัวเลือก "หากรหัสดังกล่าวมาถึงจากนั้น ... " รหัสควบคุม 13 พินสำหรับสัญญาณบางอย่าง ฉันขอเตือนคุณว่า LED ในตัวบนบอร์ด ARDUINO เชื่อมต่อกับ pin 13, i.e ผู้เขียนรหัสควบคุม LED

คุณสามารถควบคุมอะไรก็ได้โดยใช้พินดิจิตอลสูงหรือต่ำผ่านทรานซิสเตอร์กำลัง (ซึ่งเรากล่าวถึงในสองบทความก่อนหน้านี้ ที่นี่ และ ที่นี่) ด้วยโหลดกระแสตรงหรือผ่าน triac และไดร์เวอร์สำหรับโหลดปัจจุบันโดยตรงคุณยังสามารถใช้รีเลย์และคอนแทคเตอร์โดยทั่วไปทั้งฟิลด์สำหรับจินตนาการ


การรับและส่งสัญญาณวิทยุ

สำหรับใช้กับไมโครคอนโทรลเลอร์เครื่องส่งสัญญาณที่มีความถี่ใช้งาน 433 MHz หรือ 315 MHz เป็นเรื่องธรรมดาอาจมีความถี่อื่น ๆ ขึ้นอยู่กับบอร์ดเฉพาะ แต่สิ่งเหล่านี้เป็นเรื่องธรรมดาที่สุด ระบบประกอบด้วยสองโหนด - ตัวรับและตัวส่งซึ่งเป็นตรรกะ

การรับและส่งสัญญาณวิทยุ

ในภาพเครื่องส่งสัญญาณจะแสดงที่ด้านบนขวาและเครื่องรับที่ด้านล่างซ้าย ชื่อของพวกเขาสำหรับการค้นหา: โมดูลวิทยุ 433MHz, MX-05V / XD-RF-5V (ตัวรับและตัวส่งสัญญาณ).

pinout ซึ่งมักจะเป็นกรณีในโมดูลถูกทาสีบนกระดานเช่นตัวส่ง:

เครื่องส่งสัญญาณวิทยุ

บนตัวรับสัญญาณไม่ชัดเจนนักเนื่องจากข้อมูลบนแผงวงจรพิมพ์ถูกเขียนทับสองพินในความเป็นจริงไม่ได้ใช้หนึ่งในนั้น

เครื่องรับวิทยุ

ตัวอย่างเช่นเราให้ไดอะแกรมและรหัสสำหรับการเปิด LED จากบอร์ด Arduino หนึ่งที่เชื่อมต่อกับบอร์ดอื่นที่คล้ายกันโดยไม่ต้องใช้สายไฟ ตัวรับและตัวส่งสัญญาณเชื่อมต่อกันด้วยวิธีเดียวกันกับทั้งสองบอร์ด:

เครื่องรับและเครื่องส่งสัญญาณบนกระดาน

เครื่อง

โมดูล

หมุด Arduino

ผู้รับ

VCC

GND

DATA

+ 5V

GND

2

เครื่องส่ง

VCC

GND

DATA

+ 5V

GND

2 

ถัดไปคุณต้องเชื่อมต่อไลบรารี RCswitch.h กับ Arduino IDE

ในการเริ่มต้นเราเขียนโปรแกรมตัวส่ง:

#include

RCSwitch mySwitch = RCSwitch(); // สร้างวัตถุเพื่อทำงานกับส่วนหน้า

การตั้งค่าเป็นโมฆะ () {

    mySwitch.enableTransmit(2); // บอกโปรแกรมที่เชื่อมต่อช่องสัญญาณข้อมูล

}

void loop () {

mySwitch.send (B0100,4);

ล่าช้า (1,000);

mySwitch.send (B1000, 4);

    ล่าช้า (1,000);

} 

เครื่องส่งสัญญาณสามารถส่งรหัสไบนารี่ แต่ค่าสามารถเขียนในรูปแบบทศนิยม

mySwitch.send (B0100,4);

และ

mySwitch.send (B1000, 4);

นี่คือคำสั่งถ่ายโอน mySwitch เป็นชื่อของเครื่องส่งสัญญาณที่เราระบุไว้ที่จุดเริ่มต้นของรหัสและ send เป็นคำสั่งถ่ายโอน อาร์กิวเมนต์สำหรับฟังก์ชันนี้คือ:

ชื่อเครื่องส่งสัญญาณ (ค่าขนาดแพ็คเก็ตของพัลส์ที่ส่งไปยังอากาศ);

B1000 - สัญลักษณ์ B - หมายถึงเลขฐานสองมันสามารถเขียนได้เป็นเลข 8 นั่นคือ ในรูปแบบทศนิยม อีกทางเลือกหนึ่งคือเขียน“ 1,000” เป็นสตริง (ในเครื่องหมายคำพูด)

ต่อไปเราจะเขียนโค้ดสำหรับผู้รับ (มันจะถูกส่งไปยังบอร์ดที่เชื่อมต่อกับผู้รับ):

#include

RCSwitch mySwitch = RCSwitch ();

การตั้งค่าเป็นโมฆะ () {

pinMode (3, OUTPUT);

mySwitch.enableReceive (0);

}

void loop () {

if (mySwitch.available ()) {

int value = mySwitch.getReceivedValue ();

ถ้า (value == B1000)

digitalWrite (3, สูง);

อื่นถ้า (ค่า == B0100)

digitalWrite (3, ต่ำ);

mySwitch.resetAvailable ();

    }

}

ที่นี่เราประกาศว่าค่าที่ยอมรับจะถูกเก็บไว้ในตัวแปร Value ในสตริง mySwitch.getReceivedValue () และความจริงที่ว่าตัวรับสัญญาณเชื่อมต่อกับพินที่ 2 อธิบายไว้ที่นี่โดย mySwiitch.enableReceive (0)

มิฉะนั้นรหัสจะเป็นระดับประถมศึกษาหากได้รับสัญญาณ 0100 จากนั้นหมายเลขพิน 3 จะถูกตั้งไว้ที่ระดับสูง (หน่วยบันทึก) และถ้า 1,000 จากนั้นเป็นระดับต่ำ (บันทึกเป็นศูนย์)

น่าแปลกใจฉัน:

ในบรรทัด mySwitch.enableTransmit (0) เราบอกโปรแกรมว่าตัวรับสัญญาณเชื่อมต่อกับพินที่ 2 และเปิดโหมดรับ สิ่งที่ใส่ใจที่สุดสังเกตว่าการโต้แย้งของวิธีนี้ไม่ใช่หมายเลขพิน“ 2” แต่“ 0” ความจริงก็คือวิธีการเปิดใช้งาน (จำนวน) ไม่ยอมรับหมายเลขพิน แต่เป็นหมายเลขอินเตอร์รัปต์ แต่เป็น atmega328 ซึ่งวางอยู่บน Arduino Uno, nano, promini และอื่น ๆ อีกมากมายบนหมุดที่สอง (พอร์ต PDD pin PD2) หยุดการขัดจังหวะด้วยหมายเลขศูนย์ คุณสามารถดูได้ใน Atmega pinout ที่ใช้กับบอร์ด Arduino หมายเลขพินนั้นเขียนไว้ในกล่องสีชมพู

Atmega pinout

วิธีการส่งและรับนี้ง่ายและราคาถูกคู่ของเครื่องรับและเครื่องส่งมีค่าใช้จ่ายประมาณ $ 1.5 ในขณะที่เขียน


Wi-Fi, Adruino และ ESP8266

เริ่มต้นด้วย ESP8266 เป็นไมโครคอนโทรลเลอร์ที่รองรับฮาร์ดแวร์สำหรับ Wi-Fi, มันขายเป็นชิปแยก, และบัดกรีไปยังบอร์ด, เช่นอาร์ดิโน. มันมีเคอร์เนล 32 บิตมันถูกตั้งโปรแกรมผ่านพอร์ตอนุกรม (UART)

บอร์ดมักจะมี GPIO ฟรี 2 ขาขึ้นไปและมีพินสำหรับเฟิร์มแวร์อยู่เสมอซึ่งต้องทำผ่าน USB ไปยังอะแดปเตอร์อนุกรม จัดการโดยทีมงานของ AT รายการคำสั่งทั้งหมดสามารถพบได้บนเว็บไซต์ทางการของ ESP8266 และบน GitHub

ESP8266

มีตัวเลือกที่น่าสนใจกว่าบอร์ด NodeMCU พวกเขามีความสามารถในการแฟลชผ่าน USB เพราะ ตัวแปลง USB-UART นั้นมีอยู่แล้วบนบอร์ดซึ่งโดยปกติจะทำบนชิป CP2102 Node MCU เป็นเฟิร์มแวร์บางอย่างเช่นระบบปฏิบัติการโครงการที่ใช้ภาษาสคริปต์ Lua

NodeMCU Board

เฟิร์มแวร์สามารถเรียกใช้สคริปต์ Lua ได้โดยการยอมรับพวกเขาในพอร์ตอนุกรมหรือโดยการสร้างอัลกอริทึมที่เก็บไว้ในหน่วยความจำแฟลช

โดยวิธีการมันมีระบบไฟล์ของตัวเองแม้ว่าจะไม่มีไดเรกทอรีในนั้นคือ เฉพาะไฟล์ที่ไม่มีโฟลเดอร์ ในหน่วยความจำสคริปต์ไม่เพียง แต่สามารถจัดเก็บ แต่ยังรวมถึงข้อมูลต่างๆเช่น บอร์ดสามารถจัดเก็บข้อมูลที่บันทึกไว้ตัวอย่างเช่นจากเซ็นเซอร์

บอร์ดทำงานได้กับอินเตอร์เฟส:

  • 1-Wire;

  • I2C;

  • SPI;

  • UART

มันมีโฮสต์ทั้งหมดของฟังก์ชั่น:

  • โมดูลการเข้ารหัส

  • กำหนดการงาน;

  • นาฬิกาเรียลไทม์;

  • โปรโตคอลการซิงโครไนซ์นาฬิกาผ่านทางอินเทอร์เน็ต SNTP;

  • จับเวลา;

  • ช่อง ADC (หนึ่ง);

  • เล่นไฟล์เสียง

  • สร้างที่เอาต์พุตสัญญาณ PWM (สูงสุด 6)

  • ใช้ซ็อกเก็ตมีการรองรับ FatFS เช่นคุณสามารถเชื่อมต่อการ์ด SD และอื่น ๆ ได้

ESP-12E

และนี่คือรายการสั้น ๆ ของสิ่งที่บอร์ดสามารถทำงานได้:

  • เครื่องวัดความเร่ง ADXL345;

  • เครื่องวัดสนามแม่เหล็ก HMC5883L

  • ลูกข่าง L3G4200D;

  • เซ็นเซอร์อุณหภูมิและความชื้น AM2320, DHT11, DHT21, DHT22, DHT33, DHT44;

  • เซ็นเซอร์อุณหภูมิความชื้นความดันบรรยากาศ BME280;

  • เซ็นเซอร์ความดันอุณหภูมิและบรรยากาศ BMP085;

  • จอแสดงผลจำนวนมากทำงานกับ I2C, SPI buses ด้วยความสามารถในการทำงานกับแบบอักษรที่แตกต่างกัน

  • จอแสดงผล TFT ILI9163, ILI9341, PCF8833, SEPS225, SSD1331, SSD1351, ST7735;

  • สมาร์ทแอลอีดีและคอนโทรลเลอร์ LED - WS2812, tm1829, WS2801, WS2812

นอกจากการใช้ภาษา Lua แล้วคุณยังสามารถตั้งโปรแกรมบอร์ดจากภายใต้ Arduino IDE

ESP8266 สามารถใช้เป็นอุปกรณ์แบบสแตนด์อโลนหรือเป็นโมดูลสำหรับการสื่อสารไร้สายกับ Arduino

โมดูลสำหรับการสื่อสารไร้สายกับ Arduino

การพิจารณาฟังก์ชั่นและฟีเจอร์ทั้งหมดของบอร์ดนี้จะใช้บทความทั้งหมด

ดังนั้นบอร์ดนี้เป็นตัวเลือกที่ยอดเยี่ยมสำหรับการควบคุมระยะไกลผ่าน Wi-Fi ยกตัวอย่างเช่นการใช้สมาร์ทโฟนเป็นแผงควบคุมสำหรับเครื่องที่ควบคุมด้วยคลื่นวิทยุหรือ quadrocopter การควบคุมแสงระยะไกลขึ้นอยู่กับการจัดเรียงเครือข่ายสำหรับบ้านทั้งหมดและจัดการแต่ละเต้าเสียบโคมไฟ ฯลฯ ถ้ามีพินเพียงพอเท่านั้น

วิธีที่ง่ายที่สุดในการทำงานกับไมโครคอนโทรลเลอร์คือการใช้บอร์ด ESP8266 เดียว ด้านล่างนี้เป็นแผนผังของเต้ารับ Wi-Fi ที่เรียบง่าย

โครงการของ WiFi ที่ง่ายที่สุด

ในการประกอบวงจรนี้คุณต้องมีโมดูลรีเลย์หรือรีเลย์ธรรมดาที่เชื่อมต่อกับขาผ่านทรานซิสเตอร์ ก่อนอื่นคุณต้องมีโปรแกรมสำหรับสมาร์ทโฟน RoboRemoFree, ในนั้นคุณจะกำหนดค่าการเชื่อมต่อกับ ESP และสร้างอินเตอร์เฟสสำหรับควบคุมเต้าเสียบ หากต้องการอธิบายวิธีใช้คุณต้องเขียนบทความแยกต่างหากดังนั้นเราจะไม่สนใจเนื้อหานี้ในตอนนี้

ใน ESP เราทำการโหลดเฟิร์มแวร์ต่อไปนี้ผ่านโปรแกรม ESPlorer (โปรแกรมสำหรับทำงานกับบอร์ด)

- ตั้งค่า AP WiFi

wifi.setmode (wifi.STATIONAP)

cfg = {}

cfg.ssid = "ESPTEST"

cfg.pwd = "1234567890"

wifi.ap.config (cfg)

- ตั้งโหมด Pin

my_pin_nummber = 1

--gpio.mode (my_pin_nummber, gpio.OUTPUT)

gpio.mode (my_pin_nummber, gpio.OPENDRAIN)

- สร้างเซิร์ฟเวอร์

sv = net.createServer (net.TCP)

ฟังก์ชั่นรับสัญญาณ (sck, data)

ถ้า string.sub (data, 0, 1) == "1" แล้ว

--gpio.write (my_pin_nummber, gpio.HIGH)

gpio.write (my_pin_nummber, gpio.LOW)

อื่น

ถ้า string.sub (data, 0, 1) == "0" แล้ว

--gpio.write (my_pin_nummber, gpio.LOW)

gpio.write (my_pin_nummber, gpio.HIGH)

ปลาย

ปลาย

พิมพ์ (ข้อมูล)

ปลาย

ถ้า sv แล้ว

sv: Listen (333, ฟังก์ชั่น (เชื่อมต่อ)

conn: เปิด ("รับ", ผู้รับ)

conn: send ("Hello!")

จบ)

ปลาย

- สร้างเซิร์ฟเวอร์ HTTP

http = net.createServer (net.TCP)

ฟังก์ชั่น get_http (sck, data)

พิมพ์ (ข้อมูล)

คำขอในท้องถิ่น = string.match (data, "([^ \ r, \ n] *) [\ r, \ n]", 1)

ถ้าคำขอ == 'รับ / บน HTTP / 1.1' แล้ว

--gpio.write (my_pin_nummber, gpio.HIGH)

gpio.write (my_pin_nummber, gpio.LOW)

ปลาย

ถ้าคำขอ == 'รับ / ปิด HTTP / 1.1' แล้ว

--gpio.write (my_pin_nummber, gpio.LOW)

gpio.write (my_pin_nummber, gpio.HIGH)

ปลาย

sck: เปิด ("ส่ง", ฟังก์ชั่น (sck) sck: ปิด () ปลายสะสม () สิ้น

local response = "HTTP / 1.0 200 ตกลง \ r \ n เซิร์ฟเวอร์: NodeMCU บน ESP8266 \ r \ n เนื้อหาประเภท: ข้อความ / html \ r \ n \ r \ n" ..

" NodeMCU บน ESP8266 " ..

"

NodeMCU บน ESP8266

" ..

"


" ..

" เปิด ปิด " ..

" "

sck: ส่ง (ตอบกลับ)

ปลาย

ถ้า http แล้ว

http: ฟัง (80, ฟังก์ชั่น (เชื่อมต่อ)

conn: เปิด ("รับ", receive_http)

จบ)

ปลาย

พิมพ์ ("เริ่มต้น")

ตอนนี้คุณสามารถควบคุมโปรแกรมได้ทั้งจากโปรแกรม Roboremo หรือผ่านเว็บเบราว์เซอร์ใด ๆ คุณจำเป็นต้องพิมพ์ที่อยู่ IP ของบอร์ดในแถบที่อยู่ในโหมด Wi-Fi 192.168.4.1.

มีตัวอย่างในรหัส:

" NodeMCU บน ESP8266 " ..

"

NodeMCU บน ESP8266

" ..

"


" ..

" เปิด ปิด " ..

" "

นี่คือการตอบสนองที่ออกสู่เบราว์เซอร์เมื่อเข้าสู่บอร์ด มันมีรหัส HTML เช่น หน้าเว็บที่ง่ายที่สุดคล้ายกับที่คุณกำลังอ่านบทความนี้

หน้าในเบราว์เซอร์ของสมาร์ทโฟนที่ใช้ Android OS

นี่คือหน้านี้เปิดตัวในเบราว์เซอร์ของสมาร์ทโฟนที่ใช้ระบบปฏิบัติการ Android ข้างต้นไม่ได้เป็นคำสั่งที่สมบูรณ์เพราะมันจะใช้เวลาจำนวนมากถ้าคุณมีความสนใจในข้อมูลนี้ - เขียนความคิดเห็นและเราจะดำเนินการตรวจสอบและเขียนบทความเกี่ยวกับการทำงานกับมัน

ดูได้ที่ e.imadeself.com:

  • การเชื่อมต่อและการเขียนโปรแกรม Arduino สำหรับผู้เริ่มต้น
  • วิธีการสำหรับการอ่านและการจัดการพอร์ต Arduino I / O
  • Nextion แสดงอะไรและวิธีทำงานกับพวกเขา
  • ไมโครคอนโทรลเลอร์ที่สามารถตั้งโปรแกรมได้ใน JavaScript: ตัวเลือกใดตัวหนึ่ง ...
  • ประเภทและการจัดเรียงของไมโครคอนโทรลเลอร์ AVR

  •