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

Wifi Músagildra

Esp2866 wifi sendir póst þegar mús er komin í gildru.

 Gamall Android Simi fyrir netsamband.

 

Ekkert rafmagn til staðar þar sem gildran er og til að sleppa við að skoða í hana á hverjum degi, þá er þægilegra að fá skilaboð, ESP8266 dregur ca 500metra með wifi.

Hér er notuð músagildra til að ræsa Esp8266, 9 Volta batteri er tengt við micro rofan og er hann spenntur niður með gildrunni í open stöðu, þegar mús kemur í gildru lokast rofin og hleypir rafmagni á lm1117 3,3 regulatir sem ræsir esp8266 sem tengir sig við þráðlausa netið á símanum sem er með internet sharing og bíður eftir iptölu.
Þegar iptalan er komin á hann ræsir hann php scriptu sem liggur á vefslóð og hún sendir sendir póst.

Síminn er hafður í hleðslu við næstu innstungu.

Vefþjónninn er Raspberry PI á heima internet tengingu.

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

 

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

 

Meira seinna eftir veiðar.

Undirbúa esp8266 fyrir LUA FW.

Undirbúa esp8266 fyrir LUA FW.

Ná í Lua Loader http://benlo.com/esp8266/ undir tools eru valmöguleikar til að ná í nýjasta firmware og flasher forrit.

Hér eru hlekkir á rétta staðina (https://github.com/nodemcu/nodemcu-flasher og https://github.com/nodemcu/nodemcu-firmware/tree/master/pre_build)

Síðan þarf að tengja esp8266 í flash mode, það er gert með að setja GPIO0 í GND

 tengja

CH_PD er alltaf tengdur við 3,3V

Hér er notaður cp2101 usb to ttl til að tala við esp8266

Best er að nota breadboard við þetta og tengja þetta saman og einnig fínt að setja þétti (100-200 micro farad) milli +- til að taka toppa.

Þegar búið er að ræsa esp8266 í Flash Mode þá opna ESP8266Flasher.exe

flash1

Velja nýjasta Fw skránna undir config og flash.

flash2

Eftir að búið er að setja inn nýjasta fw inn er slökkt GPIO0 tekin frá núlli esp8622 tilbúin og hægt að nota Lua Loader til að fikta.

flash3

Attiny85 Neopixel Jólaskraut

Attiny85 er mjög góður til að smækka Arduino verkefni.

Setti saman 3x Neopixel á bretti og setti í jólaskraut til að lífga aðeins upp á það.

IMG 20150103_152806 Medium 

Til að geta nýtt sér Attiny þarf að ná í sér forrit fyrir það undir Arduino IDE. Passa þarf að velja rétt  fyrir IDE útgáfuna sem er notuð.

1.x eða 1.5.x

Notast var við 1.x í þessu verkefni, https://code.google.com/p/arduino-tiny/

Svo þarf að afrita skránnar undir hardware þar sem arduino IDE er staðsett og búa til skrá sem heitir boards.txt og kopera úr Prospective Boards.txt skránni fyrir Attiny85.
Þessu er betur líst í readme skránni sem fylgir forriti.

Til að forrita Attiny85 kubbinn var notast við Arduino sem ISP, einföld lausn. En þetta eru nokkur skref.
1 Upploda ArduinoISP á Arduino borðið, passa vera búin að velja rétt com port.
2 Velja Attiny85 16Mhz internal clock sem bord undir tools.
3 Brenna bootloader á Attiny85 með burnbootloader í valmynd.
4 Upploda  kóða á Attiny með programmer. Gott video hér 

IMG 20150103_150751 Medium IMG 20150102_220810 Medium IMG 20150102_220500 Medium 

Arduino NeoPixel Led

Tengja WS2812B NeoPixel led við Arduino.

Munurinn á þessum Led og venjulegum RGB Led er að hægt er að stýra hverju Led fyrir sig með einum útgangi á GPIO á Raspberry PI.

Hægt er að kaupa þessar Led á borðum og stakar, hér eru notaðar stakar og þær festar á vero board.

sala1   IMG 20141227_131651 Medium  IMG 20141227_131840 Medium IMG 20141227_132638 Medium IMG 20141227_132943 Medium IMG 20141227_135853 Medium IMG 20141227_135907 Medium 

IMG 20141228_162355 Medium 

 

Kóði var fengin frá Adafruit.com ásamt tengimynd.

Eina sem þurfti að breyta í kóða var fjöldi led úr 60 í 4.

Bæta þarf við 1000µf þétti á milli +- til að vernda Neopixel fyrir straum í gegn við ræsingu.

Einnig setja 470OHM viðnám frá GPIO að inngangi á fyrsta Neopixel til að vernda hann.

teikningar