Điều khiển toy car by arduino esp8266 smartphone

Mô tả dự án: 

Mình thấy nhiều bài đăng về sử dụng esp điều khiển bật tắt led, điều khiển robot car, cũng muốn góp vui chút devil. Chúc các bạn thành công, đây là dự án và code của mình.

Linh kiện gồm có

Nối mạch

tạo 1 app android điều khiển

Các bạn vào appinventor.mit.edu  để tạo tài khoản vào creat 1 project nhỏ nhé !

 

Lập trình

#include <SoftwareSerial.h>
#include <avr/interrupt.h>
#define DEBUG true

SoftwareSerial esp8266(2, 3); // make RX Arduino line is pin 2, make TX Arduino line is pin 3.
// This means that you need to connect the TX line from the esp to the Arduino's pin 2
// and the RX line from the esp to the Arduino's pin 3
void setup()
{
	Serial.begin(57600);
	esp8266.begin(57600); // your esp's baud rate might be different
	pinMode(4, OUTPUT);
	pinMode(5, OUTPUT);
	pinMode(6, OUTPUT);
	pinMode(7, OUTPUT);
	digitalWrite(4, LOW);
	digitalWrite(5, LOW);
	digitalWrite(6, LOW);
	digitalWrite(7, LOW);
	sendData("AT+RST\r\n", 2000, DEBUG); // reset module
	sendData("AT+CWMODE=2\r\n", 1000, DEBUG); // configure as station 1// AP 2// both 3 // here set AP
// sendData("AT+CWJAP=\"Thanh\",\"hoilamchi\"\r\n",5000,DEBUG);
// sendData("AT+CIPSTA=\"192.168.0.201\"\r\n",3000,DEBUG);
	sendData("AT+CWSAP=\"no_net\",\"anhyeuem\",5,2\r\n", 3000, DEBUG); // set ssid ang pass for AP
	sendData("AT+CIPAP=\"192.168.5.10\"\r\n", 1000, DEBUG); // get ip address// input add to app androir
	sendData("AT+CIFSR\r\n", 2000, DEBUG); // get ip address
	sendData("AT+CIPMUX=1\r\n", 1500, DEBUG); // configure for multiple connections
	sendData("AT+CIPSERVER=1,80\r\n", 1000, DEBUG); // turn on server on port 80
	delay(100);

}

void loop()
{


	if(esp8266.available()) // check if the esp is sending a message
	{

		if(esp8266.find("+IPD,"))
		{
			delay(10);
			int connectionId = esp8266.read() - 48;
			// turn the LED off by making the voltage LO

			if(esp8266.find("ah="))
			{
				delay(10);
				char giatri = (esp8266.read());

				if(giatri == '1')
				{
					digitalWrite(4, HIGH);
					digitalWrite(5, LOW);
					digitalWrite(6, HIGH);
					digitalWrite(7, LOW);
				}  // turn the LED on (HIGH is the voltage level

				if(giatri == '2')
				{
					digitalWrite(4, HIGH);
					digitalWrite(5, LOW);
					digitalWrite(6, LOW);
					digitalWrite(7, LOW);
				}

				if(giatri == '3')
				{
					digitalWrite(4, LOW);
					digitalWrite(5, LOW);
					digitalWrite(6, HIGH);
					digitalWrite(7, LOW);
				}

				if(giatri == '4')
				{
					digitalWrite(4, LOW);
					digitalWrite(5, HIGH);
					digitalWrite(6, LOW);
					digitalWrite(7, HIGH);
				}

				if(giatri == '5')
				{
					digitalWrite(4, LOW);
					digitalWrite(5, LOW);
					digitalWrite(6, LOW);
					digitalWrite(7, LOW);
				}
			}

			String closeCommand = "AT+CIPCLOSE=";
			closeCommand += connectionId; // append connection id
			closeCommand += "\r\n";
			sendData(closeCommand, 50, DEBUG);

		}
	}
}



String sendData(String command, const int timeout, boolean debug)
{
	String response = "";

	esp8266.print(command); // send the read character to the esp8266

	long int time = millis();

	while( (time + timeout) > millis())
	{
		while(esp8266.available())
		{

			// The esp has data so display its output to the serial window
			char c = esp8266.read(); // read the next character.
			response += c;
		}
	}

	if(debug)
	{
		Serial.print(response);
	}

	return response;
}

ksp có reup code lên codebender để các bạn dễ biên dịch

Youtube: 
Enjoy
lên
19 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Cảm biến nhiệt độ TTL - Độ nhạy cao

Mình thấy bài viết của Đỗ Hữu Toàn rất hay, nay mình có cơ hội dùng cái cảm biến nhiệt độ TTL này nên giới thiệu với mọi người luôn. Do hướng dẫn sử dụng cũng giống cái của Toàn nên mình viết dưới dạng bài viết truyền cảm hứng để gom nhóm với Toàn.

lên
12 thành viên đã đánh giá bài viết này hữu ích.

Quy đổi độ ẩm đất thành phần trăm (%) với Arduino

Bài viết về cảm biến độ ẩm đất của bạn Đỗ Hữu Toàn rất hay. Tuy nhiên, bạn ý không nhắc đến phương pháp quy đổi độ ẩm từ analog sang tỉ lệ phần trăm. Qua bài viết này, mình sẽ hướng dẫn các bạn làm được điều đó.

lên
16 thành viên đã đánh giá bài viết này hữu ích.