Tag Archives: serial monitor

ESP8266, NodeMCU, Arduino IDE и терминала (конзолата)

Здравейте,

Когато публикувах първата статия във фейсбук, Коцето спомена за терминала на Arduino IDE.

Това е много полезно както за дебъгване, така и за показване на някаква информация по време на разработката, а защо не и след това.

Какво представлява терминалът? При програмиране на ESP8266 се използва серийна връзка. Понеже в момента все по-малко компютри имат сериен порт (COM), се използва конвертор от RS232, какъвто протокол се ползва там, към USB. Терминалът показва получената информация от контролера, а може и да предава обратно.

Извиква се със shift+control+M или от менюто.

ESP8266 поддържа скорост на предаване (baud rate) 115200, така че това трябва да изберете отдолу.

За да активираме серийната връзка, използваме

Serial.begin(baud_rate), където в нашия случай ще бъде:

Serial.begin(115200);

Serial.print(“text”); ще изведе съобщение в терминала, а
Serial.println(“new line”); ще добави и нов ред накрая.

Вземаме за пример предишния тест, с който мигаше вграденият светодиод, и го допълваме така, че да видим какво се случва:

void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(115200);
Serial.println("Ready!");
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on
Serial.println("The lights are on!");
delay(1000);
digitalWrite(LED_BUILTIN, LOW); // turn the LED off
Serial.println("The lights are off!");
delay(1000);
}
LED_BUILTIN е константа, указваща на кой извод е свързан вграденият светодиод, в нашия случай е GPIO2, или 2.

pinMode(LED_BUILTIN, OUTPUT); с тази инструкция инициализираме GPIO2 като изход.

digitalWrite(LED_BUILTIN, HIGH); задаваме високо логическо на избрания изход.

delay(1000); генерираме закъснение от 1 секунда (1000 милисекунди).

Записваме, компилираме, качваме и наблюдаваме какво се случва..

Хм. Пише The lights are on, а светодиодът е изгаснал… Значи светодиодът е свързан към плюс и подаването на ниско ниво ще го светне.

Коригираме кода, за да работи правилно.

void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(115200);
Serial.println("Ready!");
}
void loop() {
digitalWrite(LED_BUILTIN, LOW); // turn the LED on
Serial.println("The lights are on!");
delay(1000);
digitalWrite(LED_BUILTIN, HIGH); // turn the LED off
Serial.println("The lights are off!");
delay(1000);
}

Записваме, компилираме и сме готови!

Ето как терминалът може да се използва за откриване на грешки.