Подключение проводов и кодирование в GPS-модуле GY-NEO6MV2 с ESP8266-01
Вот ссылка: https://www.circuito.io/ app?comComponents=10167,11021,12083,13678,13959,975601
Я новичок и понятия не имею, как подключать провода модуля GPS
#include "DHT.h"
#include "NewPing.h"
#include <SoftwareSerial.h>
#define DEBUG true
SoftwareSerial esp8266(11,10);
//SoftwareSerial gps(8,9);
#define DHTPIN 2 // Подключение выходного контакта DHT-11
#define DHTTYPE DHT11 // Тип DHT — DHT 11 (AM2302)
#define TRIGGER_PIN 4
#define ECHO_PIN 3
#define MAX_DISTANCE 400
NewPing sonar(TRIGGER_PIN,ECHO_PIN,MAX_DISTANCE);
float hum;
float temp;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin (9600);
Serial.println("START");
esp8266.listen();
esp8266.begin(9600);
gps.begin(9600);
dht.begin();
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
sendData("AT+RST\r\n",2000,DEBUG); // команда для сброса
module
sendData("AT+CWMODE=2\r\n",1000,DEBUG); // Это настроит
the mode
as access point
sendData("AT+CIFSR\r\n",1000,DEBUG); // Эта команда получит
the ip
address
sendData("AT+CIPMUX=1\r\n",1000,DEBUG); // Это настроит
esp
for multiple connections
sendData("AT+CIPSERVER=1,80\r\n",1000,DEBUG); // Эта команда включится
the
server on port 80
}
void loop()
{
delay(2000); // Задержка, чтобы датчик DHT-11 мог стабилизироваться
hum = dht.readHumidity(); // Получаем значение влажности
temp= dht.readTemperature(); // Получаем значение температуры
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
long duration,distance;
duration= pulseIn(ECHO_PIN,HIGH);
distance = duration/58.2;
Serial.print("Humid: ");
Serial.print(hum);
Serial.print(" %, Temp: ");
Serial.print(temp);
Serial.print(" C, ");
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(50);
gps.listen();
while (gps.available())
Serial.write(gps.read());
esp8266.listen();
if(esp8266.available()) // Эта команда проверит, есть ли esp
is sending a message
{
if(esp8266.find("+IPD,"))
{
delay(1000);
int connectionId = esp8266.read()-48; /* We are subtracting 48 from the
output because the read() function returns
the ASCII decimal value and the
first decimal number which is 0 starts at 48*/
String webpage = "<head><meta http-equiv=\"refresh\" content=\"5;
url=192.168.4.1/\"></head>";
webpage += "<h1>Mabalacat City College Garbage Monitoring System</h1>";
webpage += "<p><h2>";
if (distance<=5)
{
webpage+= " Trash can is Red";
}
if (distance == 20)
{
webpage+= " Trash can is Orange";
}
if (distance == 35)
{
webpage+= " Trash can is Light Orange";
}
if (distance == 50)
{
webpage+= " Trash can is Yellow";
}
if (distance == 70)
{
webpage+= " Trash can is 2st Light Yellow";
}
if (distance == 85)
{
webpage+= " Trash can is 1st Light Yellow";
}
if (distance == 95)
{
webpage+= " Trash can is Green";
}
if (distance >= 100)
{
webpage+= " Trash can is Empty";
}
webpage+= "<br>";
webpage+="Distance: ";
webpage+=distance;
webpage+=" cm";
webpage+= "<br>";
webpage+="Temperature: ";
webpage+= temp;
webpage+=" celsius";
webpage+= "<br>";
webpage+= "Humidity: ";
webpage+= hum;
webpage+= " %";
webpage += "</h2></p></body>";
String cipSend = "AT+CIPSEND=";
cipSend += connectionId;
cipSend += ",";
cipSend +=webpage.length();
cipSend +="\r\n";
sendData(cipSend,1000,DEBUG);
sendData(webpage,1000,DEBUG);
String closeCommand = "AT+CIPCLOSE=";
closeCommand+=connectionId;
closeCommand+="\r\n";
sendData(closeCommand,3000,DEBUG);
}
}
}
String sendData(String command, const int timeout, boolean debug)
{
esp8266.listen();
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(command);
Serial.print("> ");
Serial.print(response);
}
gps.listen();
return response;
}
@Xiaomy, 👍-1
Обсуждение1 ответ
Лучший ответ:
GPS - Arduino
---------------
GND - GND
TX - pin of SoftwareSerial RX
RX - pin of SoftwareSerial TX
Vcc - 3.3 V
Прослушивать может только один экземпляр SoftwareSerial. Метод Listen() определяет какой именно. Поэтому вы должны добавить esp8266.listen();
перед разговором с esp8266 и gps.listen();
перед разговором с модулем GPS.
- в
setup()
добавьтеesp8266.listen()
перед первым вызовомsendData
- в
loop()
добавьте gps.listen() передwhile (gps.available())
- в
loop()
добавьте esp8266.listen() передif (esp8266.available())
Комментарии не предназначены для расширенного обсуждения; этот разговор [перенесен в чат](https://chat.stackexchange.com/rooms/85742/discussion-on-answer-by-juraj-connecting-wires-and-coding-in-gps-module-gy- нео6м)., @Majenko
@Маженко, система не предлагала перейти в чат, и я не смог создать чат с ОП, потому что у ОП нет очков репутации для использования чата, @Juraj
Сообщение создано автоматическим модератором. Я просто убираюсь., @Majenko
- GPS-модуль uBlox Neo 6M не отвечает
- AT-команда не отвечает на последовательный монитор
- Отправка данных Arduino в MySQL с помощью phpMyAdmin и XAMPP на Windows10
- Arduino выводит значения мусора на serial monitor с ESP8266
- ошибка: espcomm_upload_mem failed при загрузке скетча
- фатальная ошибка ESP8266WiFi.h: Такого файла или каталога нет
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Получить данные с сайта с помощью ESP8266 с помощью AT-команд
Комментарии не предназначены для расширенного обсуждения; этот разговор [перенесен в чат](https://chat.stackexchange.com/rooms/85741/discussion-on-question-by-xiaomy-connecting-wires-and-coding-in-gps-module-gy- нэ)., @Majenko