/b》
網絡控制伺服電路圖
首先,將ESP8266與Arduino連接。我們使用適配器將esp8266與Arduino連接起來,這將使連接更加容易。適配器具有5至3.3V穩壓器,您無需連接任何外部電阻。
將適配器的GND連接到Arduino的GND
將適配器的VCC連接到Arduino的5V電源
將RX從適配器連接到Arduino的引腳2
連接TX引腳從適配器連接到Arduino的引腳3
然后,將伺服電機連接到Arduino。將伺服電機與Arduino連接如下:
伺服電機的黑線連接到Arduino的GND引腳
伺服電機的紅線連接到Arduino的5V引腳
伺服電機的黃線到Arduino的引腳8
創建網頁
要通過網頁控制伺服電機,我們必須使用HTML語言制作網頁。我們為項目創建的HTML代碼可以從本文末尾下載。如果要重命名文件,請更改文件名,但確保文件名末尾有“.html”。
然后,下載JQUERY文件(也在下面給出)文章)并將此文件放在放置HTML文件的同一文件夾中。之后,打開HTML,網頁將如下所示:
現在,使用Wi更改Arduino代碼中的Wi-Fi名稱和密碼-Fi名稱和密碼。然后上傳代碼。打開串口監視器,它將顯示IP地址,如下圖所示:
在網頁上指定的空白處輸入此IP地址。現在,當您移動滑塊時,伺服電機將移動。
代碼
#include
#include
SoftwareSerial esp8266(2,3);
#define DEBUG true
#define sg90_pin 8
Servo sg90;
int current_position = 170;
int vel = 10;
int minimum_position = 20;
int maximum_position = 160;
void setup()
{
sg90.attach(sg90_pin);
sg90.write(maximum_position);
sg90.detach();
Serial.begin(9600);
esp8266.begin(9600);
esp8266Data(“AT+RST ”, 2000, DEBUG); //reset module
esp8266Data(“AT+CWMODE=1 ”, 1000, DEBUG); //set station mode
esp8266Data(“AT+CWJAP=\”Tenda_31BC98\“,\”barcelona\“ ”, 2000, DEBUG); //connect wifi network
while(!esp8266.find(“OK”)) { //wait for connection
}
esp8266Data(“AT+CIFSR ”, 1000, DEBUG);
esp8266Data(“AT+CIPMUX=1 ”, 1000, DEBUG);
esp8266Data(“AT+CIPSERVER=1,80 ”, 1000, DEBUG);
}
void loop()
{
if (esp8266.available())
{
if (esp8266.find(“+IPD,”))
{
String msg;
esp8266.find(“?”);
msg = esp8266.readStringUntil(‘ ’);
String command = msg.substring(0, 3);
String valueStr = msg.substring(4);
int value = valueStr.toInt();
if (DEBUG) {
Serial.println(command);
Serial.println(value);
}
delay(100);
//move servo1 to desired angle
if(command == “sr1”) {
//limit input angle
if (value 》= maximum_position) {
value = maximum_position;
}
if (value 《= minimum_position) {
value = minimum_position;
}
sg90.attach(sg90_pin); //attach servo
while(current_position != value) {
if (current_position 》 value) {
current_position -= 1;
sg90.write(current_position);
delay(100/vel);
}
if (current_position 《 value) {
current_position += 1;
sg90.write(current_position);
delay(100/vel);
}
}
sg90.detach(); //dettach
}
}
}
}
String esp8266Data(String command, const int timeout, boolean debug)
{
String response = “”;
esp8266.print(command);
long int time = millis();
while ( (time + timeout) 》 millis())
{
while (esp8266.available())
{
char c = esp8266.read();
response += c;
}
}
if (debug)
{
Serial.print(response);
}
return response;
}
代碼說明
首先,包括軟件序列和伺服的庫。軟件串行庫將幫助我們在Arduino的其他引腳上使用TX和RX通信。伺服庫將幫助我們輕松移動伺服。之后,我們定義了從ESP8266連接RX和TX的引腳,然后我們定義了連接伺服電機的引腳。
之后,我們定義了從ESP8266連接RX和TX的引腳,然后我們定義了連接伺服電機的引腳。
#include
#include
SoftwareSerial esp8266(2,3);
#define DEBUG true
#define sg90_pin 8
然后在設置功能中,我們告訴Arduino我們將伺服電機連接到哪個引腳,我們將電機移動到最大位置。然后我們設置串行通信的波特率和esp8266的波特率9600.根據esp8266的波特率設置esp8266的波特率。您的esp8266可能具有不同的波特率。
然后我們設置串行通信的波特率和ESP8266的波特率為9600.您需要根據ESP8266的波特率設置ESP8266的波特率。您的ESP8266可能具有不同的波特率。
sg90.attach(sg90_pin);
sg90.write(maximum_position);
sg90.detach();
Serial.begin(9600);
esp8266.begin(9600);
以下命令將ESP8266連接到Wi-Fi網絡,并將網絡服務器設置為IP地址和端口。它將在上傳代碼后在串行監視器中顯示。
esp8266Data(“AT+RST ”, 2000, DEBUG); //reset module
esp8266Data(“AT+CWMODE=1 ”, 1000, DEBUG); //set station mode
esp8266Data(“AT+CWJAP=\”Tenda_31BC98\“,\”barcelona\“ ”, 2000, DEBUG); //connect wifi network
while(!esp8266.find(“OK”)) { //wait for connection
}
esp8266Data(“AT+CIFSR ”, 1000, DEBUG);
esp8266Data(“AT+CIPMUX=1 ”, 1000, DEBUG);
esp8266Data(“AT+CIPSERVER=1,80 ”, 1000, DEBUG);
Arduino將查看數據是否可用。如果移動了網頁上的滑塊,則ESP8266會根據移動的滑塊將數據發送到Arduino。 Arduino根據ESP8266給出的值移動伺服電機。
if (esp8266.available())
{
if (esp8266.find(“+IPD,”))
{
String msg;
esp8266.find(“?”);
msg = esp8266.readStringUntil(‘ ’);
String command = msg.substring(0, 3);
String valueStr = msg.substring(4);
int value = valueStr.toInt();
以下函數將命令發送到ESP8266,并在串行監視器上打印ESP8266的響應。
String esp8266Data(String command, const int timeout, boolean debug)
{
String response = “”;
esp8266.print(command);
long int time = millis();
while ( (time + timeout) 》 millis())
{
while (esp8266.available())
{
char c = esp8266.read();
response += c;
}
}
可下載代碼
jquery.js webservo.html
-
伺服電機
+關注
關注
85文章
2053瀏覽量
57967 -
Arduino
+關注
關注
188文章
6472瀏覽量
187327 -
ESP8266
+關注
關注
50文章
962瀏覽量
45133
發布評論請先 登錄
相關推薦
評論