ESP8266: отправка температуры на Народный мониторинг. Бюджетный вариант.

Тема в разделе "Глядите, что я сделал", создана пользователем ИгорьК, 3 мар 2015.

  1. modex

    modex Нерд

    Хоумсмарт не рекомендуют использовать 01 версию.
    В есплорере, там слева снизу есть кнопка аплоад, через нее загонять скрипты, естественно перед этим нужно подключиться.

    По теме: скрипт работает! Выставил отправку с интервалом в 6 минут. Повесил на батарейку (тестер показал 2000mah), хватает ее на двое суток. Модуль постоянно включен, светодиод не выпаивал.
    Все таки в идеале бы допилить скрипт, чтобы в сон уходил и проблемы с отправкой после включения модуля не было (ибо пробуждается он рестартом), но для дома или где есть розетка, в принципе пофиг. На дачу хочу модуль еще сделать, но там уже наверно придется на ноумсмарте делать...
     
  2. ИгорьК

    ИгорьК Оракул Модератор

    Допилить можно. Но на ESP-1 не получится: на модуле не выведена нога, которую нужно соединить с его ресетом. Там филигранная пайка. Мало кто сможет.
     
  3. yucan

    yucan Нерд

    Да, про это где то проскакивала информация, тем не менее на "народмоне" много точек ,где используется ESP-01(без nodemcu). С ESPlorer-ом разобрался, спасибо Игорю за ссылку, весьма поучительная тема форума. Теперь другое. Прошиваю модуль, в эфире появляется точка, к которой можно подключиться. Загоняю скрипт - пропадает. Пока разбираюсь.
     
  4. modex

    modex Нерд

    Да, сложно подцепиться.. Тут картинка есть )) http://reefeed.com/doc/2687456

    И пусть себе пропадает, она все равно не нужна. Перед заливкой скриптов ввел три строчки для настройки подключения к ви-фи?
     
  5. ИгорьК

    ИгорьК Оракул Модератор

    1. Заказать прошивку здесь и залить ее в модуль.
    При заказе, дополнительно к тем что по умолчанию, поставить галки на bit, http, 1-Wire
    DS18b20 не заказывать! Скрипт написан не под него!
    Когда придет по почте, заливать ту прошивку, что float.
    Как залить - здесь. А лучше - здесь. Можно здесь.

    Или что я писал.

    2. Завести модуль в сеть - выполнить код в окне ESPlorera:
    Код (Lua):
    do
    wifi.setmode(wifi.STATION)
    wifi.sta.clearconfig()
    local scfg={}
    scfg.auto = true
    scfg.save = true
    scfg.ssid = 'Название точки доступа'
    scfg.pwd = 'Пароль'
    wifi.sta.config(scfg)
    wifi.sta.connect()
    tmr.alarm(6,15000, tmr.ALARM_SINGLE, function() ip = wifi.sta.getip(); print('\n', ip) end)
    end
    1. Выделить код.
    2. Нажать кнопку Block
    3. Ждать результат 15 секунд.
    Модуль заведен в сеть и больше ничего с сетью делать не надо - он будет входить в нее при включении каждый раз сам.

    upload_2018-1-12_17-27-2.png


    UPD 06/02/2018 - Идем сюда.

    -============= Устарело ==========-
    3. Загрузить в ESP модуль DS18b20 из поста 3 кнопкой "Upload"

    4. Исправленная версия (хотя выглядит теперь менее понятно). Она должна:
    - отправлять на народмон сразу правильную температуру;
    - исправил еще один баг(или фичу), который лежит на поверхности, но почему-то никто его не заметил :)

    Загрузить ее в ESP8266 под именем "NarodMonFinal.lua"


    Код (Lua):
    require('ds18b20')
    gpio2 = 4
    ds18b20.setup(gpio2)
    addres=ds18b20.addrs()
    sensors = table.getn(addres) or 1
    print("Sensors = "..sensors)
    function sendNarod()
       local sens = sensors
       for sens = sens, 1, -1 do
         ds18b20.read(addres[sens])
       end
       tmr.alarm(2,1000,0, function()
         local sensor = sens
         local tm
         local dataN = "#XX-XX-XX-XX-XX-XX\n"
         for sensor = sens, 1, -1 do
           tm = ds18b20.read(addres[sensor])
           print("T = "..tm)
           dataN =dataN.."#T"..sensor.."#"..tm.."\n"
         end
         dataN = dataN.."##\n"
         print(dataN)
         conn=net.createConnection(net.TCP, 0)
         conn:on("connection",function(conn, payload)
               conn:send(dataN)
               end)
         conn:on("receive", function(conn, payload)
           print('\nRetrieved in '..((tmr.now()-t)/1000)..' milliseconds.')
           print('Narodmon says '..payload)
           conn:close()
           end)
         t = tmr.now()
         conn:connect(8283,'narodmon.ru')
         end)
       collectgarbage()
    end
    sendNarod()
    tmr.alarm(0, 600000, 1, function() sendNarod() end )
    Народный Мониторинг подтвердил прием:
    55555533333.jpg

    ================================================================

    5. Когда все будет настроено и будет работать как нужно, создать и загрузить файл init.lua c с единственной строкой:
    Код (Lua):
    dofile("NarodMonFinal.lua")
     
    Последнее редактирование: 6 фев 2018
  6. ИгорьК

    ИгорьК Оракул Модератор

    У меня это реализовано здесь. Правда, не для отправки на народный мониторинг, а для работы по протоколу MQTT.
    В общем, если очень надо... Можно будет подумать.
     
    Последнее редактирование: 26 фев 2016
  7. yucan

    yucan Нерд

    Таким способом загнал. И новый скрипт от Игоря. Ничего в эфире не появляется. Сканером вай-фай сети смотрю - тишина. Может модуль у меня кирдыкнулся? Прошивается нормально, хотя согласования уровней я не делал.
     

    Вложения:

  8. ИгорьК

    ИгорьК Оракул Модератор

    А что Вы там с чем согласовывать хотите?
    А что в правой части ESPlorera нарисовывается в момент загона и сразу после? Фото в студию.
     
  9. Securbond

    Securbond Гуру

    Потомучто нужно загонять не в скрипты а в snippets))
    Или попробуйте нажать кнопку Run. Вы скрипт загнали, а запустить не запустили (не факт, но возможно)
     
    Последнее редактирование: 26 фев 2016
  10. yucan

    yucan Нерд

    Я имел ввиду сигнальные шины RX-TX (у меня уровень 5в, т.е.не толерантны). Вот в правой части что присходит.
     

    Вложения:

    • 45.JPG
      45.JPG
      Размер файла:
      119,8 КБ
      Просмотров:
      602
  11. Securbond

    Securbond Гуру

    как то встревал с тем, что esp отказывался принимать подчеркивание в названии сети, попробуйте на роутере сеть без знака подчеркивания сделать.
     
    ИгорьК нравится это.
  12. ИгорьК

    ИгорьК Оракул Модератор

    Вы через Ардуино прошиваете?
    Открыли порт, нажмите кнопку Heap - что происходит?
     
  13. Securbond

    Securbond Гуру

    СТОП !!, а что вы хотите увидеть в сканере wifi?? этот скрипт подключает модуль к Вашей сети, новую сеть он не делает. Вы должны увидеть модуль но не сканером wifi, а сканером вашей локалки!!!
     
  14. ИгорьК

    ИгорьК Оракул Модератор

    или узнав ip командой =wifi.sta.getip()
     
  15. yucan

    yucan Нерд

    Сканер как раз и видит мою домашнюю сеть, подключаю планшет например, тут же он его показывает
    Прошиваю usb-uart адаптером на CP2102
     
  16. Securbond

    Securbond Гуру

  17. Securbond

    Securbond Гуру

    Всетаки попробуйте запустить скрипт во вкладке snippets и уберите подчеркивание из названия сети (обзовите свою сеть человеческим названием (в настройках роутера)) ну и далее проверяйте IP как советовал Игорь выше
     
  18. yucan

    yucan Нерд

    Хочу пропробовать почистить память (залить blank1m.bin), заново прошить модуль.
     
  19. yucan

    yucan Нерд

    Хорошо, сейчас попробую.
     
  20. yucan

    yucan Нерд

    Это в ESRlorere?