ESP-8266/ESP32 NodeMCU Lua: азы программирования.

Тема в разделе "ESP8266, ESP32", создана пользователем ИгорьК, 25 июл 2017.

  1. RotaryF

    RotaryF Нерд

    Под модулем ВМЕ280 я понимаю саму "железяку". Если на нее не подать питание или оно "отвалится в процессе жизни", то это нештатная ситуация и i2c.setup (в частности) ее ,сдается мне, не обрабатывает должным образом, что приводит к "ets Jan 8 2013,rst cause:2, boot mode: ..."
     
  2. Airbus

    Airbus Радиохулиган Модератор

    Тему попутал?Причем здесь Ардуина?Ты хоть читай иногда где пишешь
     
  3. ИгорьК

    ИгорьК Гуру

    Почему нет - запросто. Что можно предпринять.
    Если устройство имеет не только этот датчик, но и еще что-то делает, и надо обеспечить его "живучесть", можно поступить так - использовать чудесную возможность модуля не виснуть, а перегружаться. Именно чудесную.

    1. Создаете таблицу checked = {}.
    2. Создаете файл pass.lua с одной строкой: checked.i2c = true
    3. При старте делаете dofile'pass.lua'
    4. Проверяете состояние checked.i2c
    5. Если оно тру - изменяете на фальс и перезаписываете файл pass.lua
    6. Инициируете стремное устройство, и если все хорошо, возвращаете pass.lua в состояние тру. А если железо косячит - устройство перегрузится и checked.i2c останется фальс.
    7. Если при старте pass.lua оказался фальс - стремное железо не трогаете.

    Подробно как это делать - смотрите тему про шаблон программ IoT.
     
  4. parovoZZ

    parovoZZ Гуру

    Сам-то проснулся?
    https://habr.com/post/371853/
     
  5. ИгорьК

    ИгорьК Гуру

    upload_2018-10-31_9-47-54.png

    3. КУЗЯВОСТЬ

    Сяпала Калуша по напушке и увазила Бутявку и волит:
    — О, бутявище некузявое.
    И — тюк Бутявку за сяпалки.
    И ну трямкать Бутявку.
    Полбутявки у Калуши в клямсах, полбутявки об напушку лепещется.
    Но тут Бутявка как заволит:
    — Оее, оее!
    И подудонилась Бутявка Калуше в клямсы: бздым!
     
    Последнее редактирование: 31 окт 2018
    RotaryF и Airbus нравится это.
  6. Airbus

    Airbus Радиохулиган Модератор

    Для тех кто в Танке повторю :Тему попутал?Причем здесь Ардуина?Тема называется
    ESP-8266/ESP32 Lua: азы программирования NodeMCU.LUA это язык программирования такой.Кстати очень классный.Почитай тему внимательно.Здесь ни строчки ни об Arduino IDE ни о Нано ни об Уно.Здесь вообще про другое железо esp8266/esp32 называется.Загугли-прикольная Вещь!
    [​IMG]
     
  7. RotaryF

    RotaryF Нерд

    Еще что-то делает и
    если речь идет о перезагрузке всего устройства (ESP8266-NodeMCU + датчики + исполнительные механизмы), то вступает в силу необходимость попадания во временной интервал (cron-маска), если же перезагружается только один модуль (прим. ВМЕ280), то самое оно. :rolleyes:
    В любом случае благодарю, буду разбираться.
     
  8. ИгорьК

    ИгорьК Гуру

    Приходится принимать ситуацию такой, какая она есть.
     
  9. RotaryF

    RotaryF Нерд

    Найти это заветное место не удалось, но и так все(?) получилось.
    Кстати, зачем именно таблица? - и просто с глобальной переменной все работает.
    Оставил тем не менее таблицу, для дальнейших расширений по строптивым устройствам. :eek:
    Интересно еще в каком режиме правильнее открывать этот однострочный Lua-модификатор таблицы w/w+? Как то нечетко разница между режимами в муму описана / я не понимаю
     
  10. ИгорьК

    ИгорьК Гуру

    для дальнейших расширений по строптивым устройствам

    Аналогично :) но "w" работает.
     
  11. RotaryF

    RotaryF Нерд

    w+ тоже работает. Могу предположить разную реакцию на отсутствие файла:
    w откроет в любом случае (при отсутствии создаст);
    w+ ругнется, но это нам допсигнал/защита от небрежности в обращении с техникой :confused:
     
  12. ИгорьК

    ИгорьК Гуру

    Проверьте.
     
  13. RotaryF

    RotaryF Нерд

    угу, но завтра
     
  14. ИгорьК

    ИгорьК Гуру

    Уф, позор на мою голову! Разница между w и w+ есть и принципиальная.
    Для нашего случая только w+!
     
    Последнее редактирование: 1 ноя 2018
  15. RotaryF

    RotaryF Нерд

    Так я сразу и сделал, но разница то какая?
    Ну уничтожит w наш pass.lua, но тут же и создаст.
    Проверил w/w+
    Скрипт
    print (file.open("no_file", "w+"))
    file.close()
    print (file.open("no_file", "w"))
    file.close()
    print (file.open("no_file", "w+"))
    file.close()
    Результат
    > dofile("toy1_11.lua");
    userdata: 0x3fff0a68
    userdata: 0x3fff0fd0
    userdata: 0x3fff0a68
    >
    Открывается не существовавший ранее файл. Предполагалось, что первый w+ ругнется, w файл создаст и откроет, второй w+ откроет
     
  16. ИгорьК

    ИгорьК Гуру

    upload_2018-11-1_9-33-44.png

    w - писать.
    w+ - все уничтожить и писать.

    Очевидно, w+ - то что нам требуется в данном случае. Что касается w, то он открывает существующий файл и куда становится его указатель по умолчанию - не определяется.
    Полагаю, что w хорош для новой записи, там ничего не испортишь.

    Если есть время и интерес - копайте w. Путем экспериментов и некоторого времени результат, возможно, будет.
     
  17. RotaryF

    RotaryF Нерд

    "Нравятся" мне такие описания.
    "Читать" оно и есть "читать", какие еще обновления?!
    Также и писать. Можно было бы еще w/w+ воспринять умом, если бы не было а - дозаписи.
    А ведь это еще не все режимы, блин! :eek:
    Ладно, работает и пусть работает. Есть чем еще заниматься
     
    ИгорьК нравится это.
  18. nkYellOw

    nkYellOw Нерд

    Спасибо автору за старание. На первом шаге при переходе по ссылке на три урока, блокируется сайт с ошибкой на ПО JS/CoinMiner.AH потенциально нежелательная программа
    Есть альтернативный источник уроков?)
     
  19. ИгорьК

    ИгорьК Гуру

    Наверно есть. Этот сайт ко мне отношения не имеет. Поищите.

    Установите блокировщик майнинга да читайте. Или отключите JavaScript в браузере.
    Или пусть майнит - много не намайнит.
     
    nkYellOw нравится это.
  20. nkYellOw

    nkYellOw Нерд

    По обьему памяти еще есть вопрос. Хочу взять с запасом пинов, что бы поиграться вот такую плату https://ru.aliexpress.com/item/5pcs...lgo_pvid=b6b08652-62c3-4c10-b722-6addee7acb12

    В описании нет инфы по памяти. Может кто то работал с данной платой, скажет что нибудь?