NodeMCU - программирование gpio

Я использую плату NodeMCU, распиновку V3 и Arduino IDE. Мне нужно настроить один из выходных контактов, и, покопавшись, я нашел эту страницу: https://github.com/nodemcu/nodemcu-firmware/blob/master/docs/en/modules/gpio.md

Очень полезно, особенно функция gpio.serout(), но я не могу заставить ее работать. Это мой код:

#include <gpio.h>;
#define LED D5

void setup() {
  gpio.mode(LED, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  Serial.write("Starting blinking.");
  gpio.serout(LED, HIGH, 1000000, 10);
  Serial.write("Done.");
}

#include <gpio.h>; - моя догадка после того, как компилятор выдал ошибку 'gpio' was not declared in this scope, но ошибка остается. Файл gpio.h явно импортируется нормально, иначе он пожаловался бы на это. Все, что я могу найти, - это фрагменты кода, такие как справочная страница, ссылка на которую приведена выше, без полных набросков.

Есть ли способ использовать эти gpio функции?


person Wouter    schedule 12.03.2017    source источник
comment
Что ж, оказывается, что GPIO предназначена только для кода Lua, а я использую Arduino IDE и C.   -  person Wouter    schedule 24.04.2017


Ответы (3)


Несмотря на то, что существует несколько плат с именами NodeMCU (или NodeMCU), имя NodeMCU на самом деле относится к одной из нескольких возможных прошивок, которые могут быть установлены на плате микросхемы / разработчика на базе ESP8266.

NodeMCU - популярный SDK для ESP8266, который предоставляет вам интерпретатор Lua и ряд различных модулей для управления различными функциями и использования разных протоколов связи. См. документацию по NodeMCU, в которой перечислены и задокументированы различные доступные расширения, включая модуль gpio, на который вы ссылаетесь ваш вопрос. См. http://lua.org для получения информации о языке программирования Lua.

Мне очень нравится Lua, и я нахожу использование NodeMCU SDK большим удовольствием. Однако есть и другие варианты программирования этих плат.

Очень хорошей альтернативой является использование Arduino-совместимого SDK, который позволяет вам программировать на C. Если вы собираетесь использовать Arduino IDE, вам необходимо установить этот SDK. Инструкции по установке и загрузке SDK см. В репозитории github esp8266 / Arduino.

После установки этого SDK вы можете управлять контактами на плате точно так же, как если бы вы программировали любой другой Arduino, используя функцию digitalWrite. Итак, для вашего примера вы можете сделать что-то вроде:

int pin = 12; // or whatever pin you want
for (int i = 0; i < 10000; i++) {
   digitalWrite(pin, HIGH);
   delay(10);
   digitalWrite(pin, LOW);
   delay(10);
}

Вы должны извлечь это в функцию, и то, что я написал, не так гибко, как функция gpio.serout, но дает вам место для начала. Вы можете взглянуть на модуль gpio (исходный код) и адаптируйте его реализацию функции serout, если вам нужно что-то более сложное.

person Matthew Burke    schedule 20.04.2017

Быстрый способ начать использовать NodeMCU - использовать IDE Arduino. Вы можете использовать последовательность шагов, описанную в ссылка. Как только вы это сделаете, вы можете использовать примеры в самой среде IDE. Для начала вы можете использовать пример в Файл-> Примеры-> Основы-> Blink. При этом будет мигать встроенный светодиод.

person Ravi S    schedule 26.08.2018

Нет необходимости использовать файл заголовка "gpio.h". Для генерации одного из выводов ввода / вывода вы можете использовать код Arduino для простого мигания светодиода и напрямую записать его на плату NODEMCU.

Существует два разных метода программирования NODEMCU:

  1. Arduino IDE
  2. Запись некоторой прошивки, которая действует как операционная система и внутри которой мы пишем наши файлы кода.

Пока мы используем Arduino IDE для программирования, нам не нужно беспокоиться о прошивке, поскольку код Arduino преобразуется в формат * .bin, который записывается на NODEMCU, и прошивка, о которой мы говорим, нам помогает. программировать на разных языках, таких как MicroPython, Lua.

Обо всем позаботится Arduino IDE. Она создает собственную версию прошивки и записывает ее на плату.

person K_3    schedule 13.02.2018