• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Esp8266ex жопоруким новичкам...

dazmir

New member
В общем...
Прошивку вы прошили.
Теперь надо заливать скрипты
Обязательно должен быть скрипт инициализации init.lua
вот мой скрипт.
(можешь просто скопировать, сохранить в файл и дать ему имя init.lua)

wifi.setmode(wifi.STATIONAP) --режим работы станция/точка
wifi.sta.config("ИМЯ ТОЧКИ ДОСТУПА","ПАРОЛЬ") --подключаемся к точке доступа
cfg = {} --настройка точки доступа на модуле
cfg.ssid = "ESP_WIFI_AP" --имя точки
cfg.pwd = "789456123" --пароль
print(wifi.ap.config(cfg))
print('AP ip: ',wifi.ap.getip()) --ip адрес точки доступа
print('mem size: ',node.heap()/1000,'Kb') --оставшаяся память в киллобайтах
Вы уж меня извините. Можете мне пошагово от А и до Я расписать. В это деле у меня первые шаги. Я очень надеюсь на ваше понимание.
 

brig

New member
Пошагово (для новичков).

Если вы прошили свой модуль прошивкой NodeMCU (можно взять здесь и прошить вот этим), то:

1)
Проще всего начать работу с помощью LuaLoader. Скачайте эту программу и распакуйте в отдельный каталог.
2)
Запустите LuaLoader. Сразу можно будет попробовать взаимодействие с модулем нажатием кнопок:
- Heap - получить размер свободного ОЗУ;
- ChipID - получить серийный номер чипа ESP8266 вашего модуля;
- Restart - перезагрузка модуля...
3)
Кнопка Upload File позволяет выбрать на диске и записать во флеш-память модуля файл с программой (скриптами), который можно потом запустить на исполнение кнопкой DoFile. При запуске прошивка первым делом ищет и запускает на выполнение файл init.lua, который должен содержать набор команд, необходимых для выполнения при запуске модуля. Для примера можно взять файлы init.lua и LuaLoader.lua из каталога version, записать их во флеш-память модуля и выполнить перезагрузку.
4)
Изучить документацию и попробовать примеры, которые можно увидеть по ссылкам (LuaLoader -> меню Help -> NodeMCU Lua API).

В дальнейшем следует использовать более серьезную и универсальную программу Esplorer.
 

dazmir

New member
Пошагово (для новичков).

Если вы прошили свой модуль прошивкой NodeMCU (можно взять здесь и прошить вот этим), то:

1)
Проще всего начать работу с помощью LuaLoader. Скачайте эту программу и распакуйте в отдельный каталог.
2)
Запустите LuaLoader. Сразу можно будет попробовать взаимодействие с модулем нажатием кнопок:
- Heap - получить размер свободного ОЗУ;
- ChipID - получить серийный номер чипа ESP8266 вашего модуля;
- Restart - перезагрузка модуля...
3)
Кнопка Upload File позволяет выбрать на диске и записать во флеш-память модуля файл с программой (скриптами), который можно потом запустить на исполнение кнопкой DoFile. При запуске прошивка первым делом ищет и запускает на выполнение файл init.lua, который должен содержать набор команд, необходимых для выполнения при запуске модуля. Для примера можно взять файлы init.lua и LuaLoader.lua из каталога version, записать их во флеш-память модуля и выполнить перезагрузку.
4)
Изучить документацию и попробовать примеры, которые можно увидеть по ссылкам (LuaLoader -> меню Help -> NodeMCU Lua API).

В дальнейшем следует использовать более серьезную и универсальную программу Esplorer.
Спасибо большое!! Очень доходчиво.
 

TRO

Member
Дошла и моя очередь в освоении этого чуда.
Модуль ESP-01. Долго мучался пока не нашел что нужно подтянуть к питанию CH_PD. Все равно не пошло. Потом мучался с осцилографом и понял что в паре с pl2303 нужно подтягивать как выход PLки так и выход Esp8266, иначе ни туда ни сюда сигнал не проходил... Потом когда с АТ командами игратся надоело решил прошить NodeMCU, пока нарыл что нужно перед прошивкой еще и один из GPIO к земле прибить еще куча времени убежала. Прошился флешлоадером (тупо угадывая скорость перебором), и то несмотря на то что прошивается одной кнопкой, для прошивки последней версии пришлось её качать и вставлять во флешер, причем правильно ли я это делал было тоже совсем неочевидно.
Esplorer конечно крутотень, но пока освоился совсем утомился. В принципе меня пока хватило запустить пример веб сервера с кнопкой, и то выходной пин че то не меняет состояяние (подозреваю ему тоже подтяжка нужна). Поковырял этот код примера и справочник, нашел как внутренний АЦП в браузер выводить, думаю к мультиметру прикрутить чтобы удаленно видеть что он показывает (по работе часто нужно). Несколько раз при опросе АЦП бедняга ребутнулся. Теперь мечта менюшки и прочие красивости научится в браузере рисовать с нормальным ввод выводом из фрм и кучки кнопок, плюс динамическое обновление параметров, но поскольку ни в HTML ни в LUA я не шурупаю, затянется это ой как надолго.
 

RIX

New member
Честно когда читал, слаживалось впечатление будь-то у вас только мануал на китайском языке на руках и все :)))
Все нюансы что вы писали есть в сети и быстро находятся, причем по первым ссылкам....
А с хтмл вообще вопросов не возникнет если потратите немного времени :)
 

tms320

New member
Пытаюсь написать свою прошивку, используя "Unofficial Development Kit for Espressif ESP8266" (http://programs74.ru/udkew.html). Плата работает в режиме STA. При подключении платы к точке доступа (роутеру) сетевое имя платы выводится как "ESP_FE9D2B". Вопрос: как изменить это имя?
 

tms320

New member
Пока мой код делает только подключение к точке доступа (вывод отладочной информации в UART я для читабельности не привожу):
Код:
void ICACHE_FLASH_ATTR user_init()
{
    // Инициализация uart0 и uart1 со скоростью 115200
    uart_init(BIT_RATE_115200, BIT_RATE_115200);
    os_delay_us(1000);

    // Отключаем автоконнект
    wifi_station_set_auto_connect(0);

    WiFi_Connect();
}
Функция WiFi_Connect реализована в отдельном файле:
Код:
typedef enum
{
    WIFI_DISCONNECTED = 0,
    WIFI_CONNECTING,
    WIFI_CONNECTED,
    WIFI_SETMODE_ERROR,
    WIFI_CONNECTING_ERROR
} TWiFiState;

TWiFiState WiFiState = WIFI_DISCONNECTED;

static ETSTimer WiFiTimer;

static void ICACHE_FLASH_ATTR WiFi_Check(void* arg)
{
    struct ip_info ipConfig;
    os_timer_disarm(&WiFiTimer);

    if (WiFiState == WIFI_DISCONNECTED)
    {
        wifi_station_connect();
    }

    switch(wifi_station_get_connect_status())
    {
        case STATION_GOT_IP:
            wifi_get_ip_info(STATION_IF, &ipConfig);
            if (ipConfig.ip.addr != 0)
            {
                WiFiState = WIFI_CONNECTED;
            }
            break;
        case STATION_WRONG_PASSWORD:
            WiFiState = WIFI_CONNECTING_ERROR;
            break;
        case STATION_NO_AP_FOUND:
            WiFiState = WIFI_CONNECTING_ERROR;
            break;
        case STATION_CONNECT_FAIL:
            WiFiState = WIFI_CONNECTING_ERROR;
            break;
        default:
            WiFiState = WIFI_CONNECTING;
    }
    os_timer_setfn(&WiFiTimer, (os_timer_func_t *)WiFi_Check, NULL);
    os_timer_arm(&WiFiTimer, WIFI_CHECK_PERIOD, 0);
}


void ICACHE_FLASH_ATTR WiFi_Connect()
{
    // Структура с информацией о конфигурации STA (в режиме клиента AP)
    struct station_config staConfig;
    char info[150];

    // При необходимости переводим плату в режим клиента AP
    if (wifi_get_opmode() != STATION_MODE)
    {
        wifi_set_opmode_current(STATION_MODE);
    }

    if (wifi_get_opmode() == STATION_MODE)
    {
            wifi_station_get_config(&staConfig);
            os_memset(staConfig.ssid, 0, sizeof(staConfig.ssid));
            os_memset(staConfig.password, 0, sizeof(staConfig.password));
            os_sprintf(staConfig.ssid, "%s", WIFI_AP_NAME);
            os_sprintf(staConfig.password, "%s", WIFI_AP_PASSWORD);
            wifi_station_set_config(&staConfig);
            // Включаем автоконнект
            wifi_station_set_auto_connect(1);
            // Запускаем таймер проверки соединения по Wi-Fi
            os_timer_disarm(&WiFiTimer);
            os_timer_setfn(&WiFiTimer, (os_timer_func_t *)WiFi_Check, NULL);
            os_timer_arm(&WiFiTimer, WIFI_CHECK_PERIOD, 0);
    }
    else
    {
        WiFiState = WIFI_SETMODE_ERROR;
    }
}
Всё работает, всё подключается. Когда я на роутере (точка доступа, к которой подключилась плата) смотрю список устройств в WiFi-сети, то плата имеет сетевое имя "ESP_FE9D2B".
 
Сверху Снизу