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

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