Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Lua скрипты и модули

Тема в разделе "NodeMCU", создана пользователем Victor, 9 дек 2014.

  1. StasBronchukov

    StasBronchukov Новичок

    Сообщения:
    12
    Симпатии:
    2
    @PavelAndreev
    Зайти на сайт документации nodemcu и найти раздел dht
    dht - NodeMCU Documentation
    Там есть пример для dht11, убрать все лишнее от ds18b20 и добавить нужное от dht11
     
    Юрий Ботов нравится это.
  2. PavelAndreev

    PavelAndreev Новичок

    Сообщения:
    27
    Симпатии:
    0
    А тот пример, что приведен на сайте по ссылке, не подойдет?
     
  3. Alanen

    Alanen Новичок

    Сообщения:
    1
    Симпатии:
    0
    Немного поправил ваш код:

    1)
    Если прошивка скомпилирована с cripto то можно сделать так (на время тестирования)
    Код (Text):
    1.  
    2. username = crypto.toBase64("mail plain text")
    3. password = crypto.toBase64("pass plain text")
    4.  
    После
    Код (Text):
    1. conn:connect(465,"64.233.164.108")
    2.    end)
    - лишний (строка 30 )

    Функция
    Код (Text):
    1. net.createConnection(net.TCP, 1)
    Warning, deprecated API! net.createConnection with secure flag.
    вместо неё надо писать
    Код (Text):
    1.  conn=tls.createConnection()
    А это вот отсыльщик который мне удалось найти на просторах, немного поправил его, но что-то с логином еще надо пошаманить (никак руки не дойдут) может кто-то все-же заставит его работать.

    gamiltest.lua :

    Код (Text):
    1.  
    2.  -- Modifications for GMAIL by Andreas "Andy" Reischle: www.AReResearch.net
    3.  -- http://www.areresearch.net/2016/04/how-to-send-emails-via-gmail-from.html
    4.  
    5. -- configure ESP as a station
    6. local SSID = "AP name"
    7. local SSID_PASSWORD = "AP pass"
    8.  
    9.  
    10. wifi.setmode(wifi.STATION)
    11. wifi.sta.config{ssid=SSID, pwd=SSID_PASSWORD}
    12. wifi.sta.autoconnect(1)
    13.  
    14.  
    15. -- The email and password from the account you want to send emails from
    16. --If you have Firmware with crypto module
    17. local MY_EMAIL = crypto.toBase64("mailfrom@gmail.com")
    18. local EMAIL_PASSWORD = crypto.toBase64("mailpass")
    19. --or wo cripto , must be ecoded to base 64 somewere else
    20. --local MY_EMAIL = "base64login"
    21. --local EMAIL_PASSWORD = "base64password"
    22.  
    23. -- The SMTP server and port of your email provider.
    24. -- If you don't know it google [my email provider] SMTP settings
    25. local SMTP_SERVER = "smtp.gmail.com"
    26. local SMTP_PORT = "465" --local SMTP_PORT = "993" --local SMTP_PORT = "587"
    27.  
    28. -- The account you want to send email to
    29. local mail_to = "mailfrom@blabla.com"
    30.  
    31.  -- These are global variables. Don't change their values
    32.  -- they will be changed in the functions below
    33.  local email_subject = ""
    34.  local email_body = ""
    35.  local count = 0
    36.  local conn = nil -- will be used as socket to email server
    37.  -- The display() function will be used to print the SMTP server's response
    38.  function display(conn,response)
    39.     print("Got a response: ")
    40.     print(response)
    41.  end
    42.  -- The do_next() function is used to send the SMTP commands to the SMTP server in the required sequence.
    43.  -- I was going to use socket callbacks but the code would not run callbacks after the first 3.
    44.  function do_next()
    45.        if(count == 0)then
    46.          count = count+1
    47.          local IP_ADDRESS = wifi.sta.getip()
    48.          print ("Send my IP: " .. IP_ADDRESS)
    49.          --conn:send("EHLO\r\n");
    50.          conn:send("HELO "..IP_ADDRESS.."\r\n")
    51.        elseif(count==1) then
    52.          count = count+1
    53.          conn:send("AUTH LOGIN\r\n")
    54.        elseif(count == 2) then
    55.          count = count + 1
    56.          conn:send(MY_EMAIL.."\r\n")
    57.        elseif(count == 3) then
    58.          conn:send(EMAIL_PASSWORD.."\r\n")
    59.          count = count + 1
    60.        elseif(count==4) then
    61.          count = count+1
    62.          conn:send("MAIL FROM:<" .. MY_EMAIL .. ">\r\n")
    63.        elseif(count==5) then
    64.          count = count+1
    65.          conn:send("RCPT TO:<" .. mail_to ..">\r\n")
    66.        elseif(count==6) then
    67.          count = count+1
    68.          conn:send("DATA\r\n")
    69.        elseif(count==7) then
    70.          count = count+1
    71.          local message = string.gsub(
    72.          "From: \"".. MY_EMAIL .."\"<"..MY_EMAIL..">\r\n" ..
    73.          "To: \"".. mail_to .. "\"<".. mail_to..">\r\n"..
    74.          "Subject: ".. email_subject .. "\r\n\r\n" ..
    75.          email_body,"\r\n.\r\n","")
    76.          conn:send(message.."\r\n.\r\n")
    77.        elseif(count==8) then
    78.          count = count+1
    79.           tmr.stop(0)
    80.           conn:send("QUIT\r\n")
    81.        else
    82.          conn:close()
    83.        end
    84.  end
    85.  -- The connectted() function is executed when the SMTP socket is connected to the SMTP server.
    86.  -- This function will create a timer to call the do_next function which will send the SMTP commands
    87.  -- in sequence, one by one, every 5000 seconds.  
    88.  -- You can change the time to be smaller if that works for you, I used 5000ms just because.
    89.  function connected(conn)
    90.    print("Connected - Starting Timer")
    91.    tmr.alarm(0,2000,1,do_next)
    92.  end
    93.  -- @name send_email
    94.  -- @description Will initiated a socket connection to the SMTP server and trigger the connected() function
    95.  -- @param subject The email's subject
    96.  -- @param body The email's body
    97.  function send_email(subject,body)
    98.     count = 0
    99.     email_subject = subject
    100.     email_body = body
    101.     print ("Open Connection")
    102.     --conn = net.createConnection(net.TCP,1)
    103.     conn = tls.createConnection()
    104.     conn:on("connection",connected)
    105.     conn:on("receive",display)
    106.     conn:connect(SMTP_PORT,SMTP_SERVER)
    107.  end
    108.  -- Send an email
    109.  print ("Sending started...")
    110.  send_email("ESP8266-GMailSender","Hi there!")
    111.  
    112.  
     

Поделиться этой страницей