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);
}

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

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

Arduino IDE и ESP8266 (Lolin, NodeMCU v3)

Здравейте,

От сравнително скоро започнах да се забавлявам с едночиповите микроконтролери на базата на ESP8266. Все се каня да започна да водя дневник на разни дребни проблеми, с които се сблъквам като начинаещ и май настъпи моментът.

Да започваме!
Какво ни трябва за начало? Да започнем с основното – самият микроконтролер. Моите ги купувам от Aliexpress .

Защо конкретно от тоази магазин? Ами продавачът е коректен, при поръчка около 30-тина лева пратката е с проследим номер, независимо, че съм избрал безплатна доставка.


Избираме типа на платката.

До тук добре. При опит за стартиране на каквото и да било, почва рев, че не намира COM порта, или на открития (обикновено този, на дъното) няма нищо закачено.

От сайта на AirBG, в ръководството как да си направим сами станция, намерих връзка за сваляне на USB драйвер за CH340 / CH340. Прилагам я директно.
http://www.wch.cn/downloads/file/5.html

Разархивираме зип файла и стартираме setup.exe. После Install, като приключи затваряме и сме готови.

Забравих… Вземаме един кабел USB – microUSB, такъв, който се ползва за зареждане на телефон, но е със свързани 4те кабела, и свързваме контролера с някой свободен USB вход на компютъра.


Забележка: Може да не е COM3, а COM4, 9 или който е свободен в системата.

Избираме порта, на който е закачена платката, а след това Get Board info. Би трябвало да се получи нещо такова:

Ако е така, значи всичко е наред и можем да пристъпим към първата проба. Пействате кода по-долу в редактора, а после upload (ctrl+u).

void setup() {
// initialize LED_BUILTIN as an output pin.
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on
delay(1000);
digitalWrite(LED_BUILTIN, LOW); // turn the LED off
delay(1000);
}

Тук отварям една скоба.
За да се компилира и качи кодът в контролера, първо трябва да се запише на диска. Ако сме започнали от нулата, редакторът ще ни предложи да изберем къде да го съхраним. Избираме как ще се казва, а Arduino IDE създава нова папка със същото име и в нея записва кода като файл с разширение .ino. Чак тогава започва процесът на компилация, а ако всичко мине успешно, се качва към контролера.

Би трябвало да се получи нещо такова:

а вграденият светодиод да започне да мига на всяка секунда.

Това е от мен. Успех!