• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Jak zapisać program w ESP8266 ?
#1
Jak zapisać program w ESP8266 ? . Kiedy uruchamiam esp z arduino to wszystko jet dobrze ale chciałem wgrać program do esp żeby on sam w sobie był modułem do którego jest podłączony np. termometr. Dziwnie się to odbywa bo przy uruchomieniu w programie ESPlorer kiedy kliknę aby otworzyć port to nie chce mi odczytać danych z modulu. Żeby odczytało jakiekolwiek informacje o module to muszę na chwilę odłączyć pin CH_PD. Zamruga niebieska dioda i wtedy widzi moduł. Kiedy wfgram program do modułu to wsyztko jest dobrze do momentu kiedy nie odłączą zasilania . Po ponownym podpięciu modułu nie działa Sad. W trakcie programowania mam popięte zasilanie , rx i tx oraz do 5v CH_PD i RST . Nigdzie się nie doczytałem żeby przez podanie jakiegoś stanu zapisywało do pamięci . Firmware oczywiście mam wgrane w moduł .
 
Odpowiedź
#2
Kod:
--'
-- 18b20 one wire example for NODEMCU
-- NODEMCU TEAM
-- LICENCE: http://opensource.org/licenses/MIT
-- Vowstar <vowstar@nodemcu.com>
-- code from http://www.esp8266.com/viewtopic.php?f=19&t=752
--'




wifi.setmode(wifi.STATION)
wifi.sta.config ( "WIFI_SSID" , "PASSWORD" )  
print(wifi.sta.getip())



   pin = 4
   ow.setup(pin)

   counter=0
   lasttemp=-999

   function bxor(a,b)
      local r = 0
      for i = 0, 31 do
         if ( a % 2 + b % 2 == 1 ) then
            r = r + 2^i
         end
         a = a / 2
         b = b / 2
      end
      return r
   end

   function getTemp()
           tmr.wdclr()    
           ow.reset(pin)
           ow.skip(pin)
           ow.write(pin,0x44,1)
           tmr.delay(800000)
           ow.reset(pin)
           ow.skip(pin)
           ow.write(pin,0xBE,1)

           data = nil
           data = string.char(ow.read(pin))
           data = data .. string.char(ow.read(pin))
           t = (data:byte(1) + data:byte(2) * 256)
            if (t > 32768) then
                       t = (bxor(t, 0xffff)) + 1
                       t = (-1) * t
                      end
            t = t * 625
                      lasttemp = t
            print("Last temp: " .. lasttemp)
   end

   srv=net.createServer(net.TCP)
   srv:listen(80,function(conn)
       getTemp()
       t1 = lasttemp / 10000
       t2 = (lasttemp >= 0 and lasttemp % 10000) or (10000 - lasttemp % 10000)
    conn:send("<!DOCTYPE html><html><body><p><b>nettemp.pl ds18b20</b><br>Temperature: " .. string.format("%2d", t1) .. "." .. string.format("%02d", t2) .. "</p></body></html>")
      conn:on("sent",function(conn) conn:close() end)
   end)
Udało mi się uruchomić te moduły bez arduino . Jak się okazało to przy wgrywaniu firmware nie robiłem tego prawidłowo . Mam natomiast jeden problem z czujnikiem ds18b20 dlatego że nie chce mi pokazywać temperatury . Czujniki zmieniałm nawet na ds1820 bez literki "B" i nadal nie widzi. Wgrywałem program do sterowania wyjściami z tego modułu to działa natomiast temperatura jakoś nie chce. Wstawiam kod w LUA , może ktoś ma jakiś pomysł. Oczywiście dane mojej sieci ustawiłem i na stornie jest wyświetlane to co program podaje prócz prawidłowej temperatury.
 
Odpowiedź
#3
Do poprawnego uploadu musisz podpiąć GPIO 0 do masy . Po uploadzie trzeba odpiąć z powrotem (pewnie dlatego ci nie działa wgrany sketch ).
 
Odpowiedź
#4
Dziala i na stronie pokazuje dane tylko złe, tak jak by czujnik nie działał. Nie wiem czyto nie wina samego programu że jest zły i źle przelicza temperaturę
 
Odpowiedź
#5
Próbowałeś robić wg tego:
http://www.instructables.com/id/Low-cost...ed-on-ESP/
Czytaj zwłaszcza komentarze. Jaki masz firmware w ESP?
 
Odpowiedź
#6
Oprogramowanie mam 0.9.6 . Na tym programie co mi podałeś działa tylko w ten sposób że wysyła dane na serwer ale temperatura nadal jest pokazywana w granicach 0.6st . Na innych programach też mi tak pokazuje. Nie wiem co jest przyczyną . Mam kilka czujników z różnych źródeł które w innych konfiguracjach czyli w arduino pokazują normalnie a w takim podłączeniu nie chcą. Podawałem nawet na dallasa zasilanie 5 v ale też nic się nie zmieniło. skoro program zadziałał i wysyła dane na serwer to tutaj musi być wszystko dobrze tylko te czujniki nie chcą działać.
 
Odpowiedź
#7
Niestety mój moduł nie chce przyjąć innego firmware jak nodemcu_float_0.9.6 a na tym ta temperatura fiksuje
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości