Esp2866 wifi sendir póst við ræsingu.

Esp2866 wifi sendir póst við ræsingu.

Raspberry PI er notaður sem vefþjón  undir skipun sem sendir póst.

wifieldur

Hér er notaður reykskynjari til að ræsa Esp8266, hann tengir sig við þráðlausa netið og bíður eftir iptölu.
Þegar iptalan er komin á hann ræsir hann php scriptu sem liggur á vefslóð á Raspberry PI og sendir póst.

Undirbúa Raspberry PI til að geta keyrt þessa scriptu.

sudo apt-get install apache2 –y
sudo apt-get install php5 libapache2-mod-php5 –y
sudo apt-get install php-pear –y
sudo pear install Mail
sudo pear install Net_SMTP

Til að ræsa Esp8266 er notaður Transitor Latch, svo esp8266 dragi ekkert afl á meðan engin eldur er.
Transitor latch kveikir á LD1117AV33 regulator sem fæðir esp8266.

Esp8266 þarf rúmlega 200mA til að ræsa og tengjast þráðlausu neti.

Lua Loader er notaður til að upploda init.lua og http.lua.

 

init.lua

 

-- Constants
SSID    = "Wifi ssid"
APPWD   = "wifi password"
CMDFILE = "http.lua"   -- File that is executed after connection

-- Some control variables
wifiTrys     = 0      -- Counter of trys to connect to wifi
NUMWIFITRYS  = 200    -- Maximum number of WIFI Testings while waiting for connection

-- Change the code of this function that it calls your code.
function launch()
  print("Connected to WIFI!")
  print("IP Address: " .. wifi.sta.getip())
  -- Call our command file every minute.
  tmr.alarm(0, 60000, 1, function() dofile(CMDFILE) end )
end

function checkWIFI() 
  if ( wifiTrys > NUMWIFITRYS ) then
    print("Sorry. Not able to connect")
  else
    ipAddr = wifi.sta.getip()
    if ( ( ipAddr ~= nil ) and  ( ipAddr ~= "0.0.0.0" ) )then
      -- lauch()        -- Cannot call directly the function from here the timer... NodeMcu crashes...
      tmr.alarm( 1 , 500 , 0 , launch )
    else
      -- Reset alarm again
      tmr.alarm( 0 , 2500 , 0 , checkWIFI)
      print("Checking WIFI..." .. wifiTrys)
      wifiTrys = wifiTrys + 1
    end 
  end 
end

 

 

http.lua

 

conn=net.createConnection(net.TCP, false)
conn:on("receive", function(conn, payload) print("Get done.", payload) end )
conn:connect(80,"192.168.1.5")
conn:send("GET /mail.php"  .." HTTP/1.1\r\nHost: ip.a.esp.xx\r\n" .. "Connection: keep-alive\r\Accept: */*\r\n\r\n")

 

mail.php

 

 mail