sexta-feira, 22 de março de 2019

Modulo de Controle WiFi para o Robo Esteira

Vamos descrever de forma objetiva como montar o modulo WiFi com base no ESP8266, modulo ESP-12 o circuito de controle para o Robô Esteira https://www.youtube.com/watch?v=c9rS8bXxDIk !
Vejamos o diagrama eletrônico da controladora na figura 1 !

                                                                       Figura 1

No diagrama da figura 1 dividiremos em três módulos ! O primeiro modulo se referente a fonte de alimentação composta por J1, JP3 D1, IC2, IC3, CI,C2 e C3,R3, LED5, estes componentes são responsáveis pelas tensões de %v e #V3 necessárias ao circuito para o funcionamento.
O segundo modulo se refere ao circuito do ES8266 no caso ESP12, que é composta pelo próprio ES12 ( WiFi Module ), R1, R5 e C% ( responsável pelo RESET do modulo ),  R10 e R4 Conectores JP5, JP2, SV4, SV3, X1 ( conector serial ).
O terceiro modulo é responsável pela compatibilização das tensões de 3v3 para 5,0V e de 5,0V para 3V3, composta por Q1, Q2, Q3, Q4 , R8,R9,R2,R7,R10,R11,R2,R13 e conector de saída.

Na figura 2 temos o desenho do layout da controladora WiFi Edukatika.

Figura 2

Como obter o Firmware !

Em nosso canal no Youtube mostramos em video os passos iniciais sobre a compilação de firmware proprio onde voce pode divulgar o nome de sua empresa e ou desenvolvedor.
Porem neste texto vamos nos fixar em padronizar o firmware e para obter o firmware entre em contato com edukatika@hotmail.com .

Instalando o Firmware.

Para a instalação do firmware voce precisa de um adaptador USB/RS232 como mostrado na figura 3.

Figura 3


Agora voce vai precisar do software para gravar o FIRMWARE na sua controladora WIFI ESP8266/ESP12.
O link para o software esta aqui https://github.com/nodemcu/nodemcu-flasher?utm_source=rb-community&utm_medium=blog&utm_campaign=esp8266-running-nodemcu-as-a-controller
Na figura 4 vemos a tela do software que voce acabou de fazer download no link anterior. O arquivo a ser gravado que enviamos por Email é FirmwareLUA_095_20150318.bin !


Figura 4
O processo de gravação passo a passo voce pode ver aqui neste LINK.

Agora voce deve fazer download da ferramenta de transferência e desenvolvimento na linguagem escolhida.
A linguagem de programação é LUA neste bloque já falamos sobre ela veja o link http://edukatikateaching.blogspot.com/2015/!
Neste link tem o software de desenvolvimento em LUA https://github.com/espressif/esptool  !
Caso voce tenha dificuldades entre em contato no Email edukatika@hotmail.com !
Na figura 5 voce tem a tela do software ESPlorer .


                                                                                  Figura 5

Abaixo o codigo fonte em LUA desenvolvido pela Edukatika.

*------------------------------------------------------------------------------------------
-- mODULO esp8266 ep-12 kasakontrole
-- modo AP 4 canais
-- Clovis Magoga Rodrigues 25/03/2015 as 00h28
dirM1A = 1
dirM1B = 2
dirM2A = 3
dirM2B = 4
gpio.mode(dirM1A, gpio.OUTPUT)
gpio.mode(dirM1B, gpio.OUTPUT)
gpio.mode(dirM2A, gpio.OUTPUT)
gpio.mode(dirM2B, gpio.OUTPUT)
gpio.write(dirM1A,gpio.LOW)
gpio.write(dirM1B,gpio.LOW)
gpio.write(dirM2A,gpio.LOW)
gpio.write(dirM2B,gpio.LOW)
wifi.setmode(wifi.STATIONAP)
wifi.ap.config({ssid="RoboEsteira",pwd="12345678"});
wifi.ap.setip({ip="11.0.0.37",netmask="255.255.255.0",gateway="11.0.0.1"})
print(wifi.ap.getip())
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
    conn:on("receive", function(client,request)
        local buf = "";
        local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
        if(method == nil)then
            _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
        end
        local _GET = {}
        if (vars ~= nil)then
            for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
                _GET[k] = v
            end
        end
        buf = buf.."<h1> WebServer EDUKATIKA</h1>";
        buf = buf.."<h2> RoboEsteira V.1.0</h2>";
        buf = buf.."<p>P/  Frente <a href=\"?pin=ON1\"><button>ON</button></a>&nbsp;<a";
        --href=\"?pin=OFF1\"><button>OFF</button></a></p>";
        buf = buf.."<p> P/   Traz <a href=\"?pin=ON2\"><button>ON</button></a>&nbsp;<a";
        --href=\"?pin=OFF1\"><button>OFF</button></a></p>";
        buf = buf.."<p>P/ Direita <a href=\"?pin=ON3\"><button>ON</button></a>&nbsp;<a";
       -- href=\"?pin=OFF1\"><button>OFF</button></a></p>";   
        buf = buf.."<p>P/ Esquerda <a href=\"?pin=ON4\"><button>ON</button></a>&nbsp;<a";
        buf = buf.."<p>    Parar  <a href=\"?pin=OFF1\"><button>ON</button></a>&nbsp;<a";
        --href=\"?pin=OFF1\"><button>OFF</button></a></p>";         
        local _on,_off = "",""
        if(_GET.pin == "ON1")then
             -- para frente
              gpio.write(dirM1A, gpio.HIGH);
              gpio.write(dirM1B, gpio.LOW);
              gpio.write(dirM2A, gpio.HIGH);
              gpio.write(dirM2B, gpio.LOW);
        elseif(_GET.pin == "ON2")then
              -- para traz
              gpio.write(dirM1A, gpio.LOW);
              gpio.write(dirM1B, gpio.HIGH);
              gpio.write(dirM2A, gpio.LOW);
              gpio.write(dirM2B, gpio.HIGH);
        elseif(_GET.pin == "ON3")then
        -- para direita
              gpio.write(dirM1A, gpio.LOW);
              gpio.write(dirM1B, gpio.HIGH);
              gpio.write(dirM2A, gpio.HIGH);
              gpio.write(dirM2B, gpio.LOW);
       elseif(_GET.pin == "ON4")then
       -- para esquerda
              gpio.write(dirM1A, gpio.HIGH);
              gpio.write(dirM1B, gpio.LOW);
              gpio.write(dirM2A, gpio.LOW);
              gpio.write(dirM2B, gpio.HIGH);
       elseif(_GET.pin == "OFF1")then
            -- pare
              gpio.write(dirM1A, gpio.LOW);
              gpio.write(dirM1B, gpio.LOW);
              gpio.write(dirM2A, gpio.LOW);
              gpio.write(dirM2B, gpio.LOW);
        end
        client:send(buf);
        client:close();
        collectgarbage();
    end)
end)

*------------------------------------------------------------------------------------------------------

Copie e cole o conteudo no aplicativo mostrado na figura 5 e acione o botão "SAVE TO ESP"

Nenhum comentário:

Postar um comentário