arduino vb net ethernet

8
Vasculhando a internet a procura de um exemplo simples que eu possa expandir e não tiveram sorte e estou esperando que alguém pode ajudar. Eu quero controlar um Arduino através de um cabo Ethernet usando o código VB em um P. Eu descobri que alguém !a" isso# mas usa uma conexão $i%i# mas eu não tenho sido capa" de modi!icar com sucesso o código para que ele comece a !alar Ethernet em ve" de $i%i. Vou anexar o código que eu tenho até agora# mas pode ser mais !&cil se alguém sabe de um exemplo simples para acender um 'nico (E) que eu possa modi!icar o exemplo para conseguir o que eu quero. código Arduino* ++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ++ )eclarations ++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -include /P0.h1 -include Ethernet.h1 ++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ++ $ired con!iguration parameters ++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, b2te mac34 5 6 7x87# 7xA9# 7x)A# 7x77# 7x):# 7x;B <= unsigned c har local>ip34 5 6:89#:?@#:#:77<= ++ 0P address o! $i/hield uns igned char gate a2 >ip 34 5 6:89#:?@#:#:<= ++ router or gatea2 0P address unsigned char subne t>mas34 5 69CC#9CC#9CC#7<= ++ subnet mas !or the local net or Ethernet/er ver serverD@7= char bu!!er3974= void setupD 6  pinFodeD@#GHIPHI=  Ethernet.beg inDmac# local>ip=  /erial.beginD8?77= < void loopD 6  Ethernetlient client 5 server.availableD=  i! Dclient 6  boolean current(ine0sBlan 5 true= hile Dclient.connectedD 6  i! Dclient.availableD 6  int val=  i! Dbu!!er374 55 JGJ  6  digital$riteD@#K0LK=  <  else i! Dbu!!er374 55 J%J  6  digital$riteD@#(G$=  <  <  <  < < VB ode* 0mports /2stem.Met./ocets 0mports /2stem.Iext

Upload: aldenirjosebatista

Post on 05-Jul-2018

222 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Arduino VB Net Ethernet

8/16/2019 Arduino VB Net Ethernet

http://slidepdf.com/reader/full/arduino-vb-net-ethernet 1/8

Vasculhando a internet a procura de um exemplo simples que eu possa expandir enão tiveram sorte e estou esperando que alguém pode ajudar. Eu quero controlar umArduino através de um cabo Ethernet usando o código VB em um P. Eu descobri que alguém!a" isso# mas usa uma conexão $i%i# mas eu não tenho sido capa" de modi!icar comsucesso o código para que ele comece a !alar Ethernet em ve" de $i%i. Vou anexar ocódigo que eu tenho até agora# mas pode ser mais !&cil se alguém sabe de um exemplosimples para acender um 'nico (E) que eu possa modi!icar o exemplo para conseguir o queeu quero.

código Arduino*

++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++ )eclarations++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-include /P0.h1-include Ethernet.h1

++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++ $ired con!iguration parameters++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

b2te mac34 5 6 7x87# 7xA9# 7x)A# 7x77# 7x):# 7x;B <=unsigned char local>ip34 5 6:89#:?@#:#:77<= ++ 0P address o! $i/hieldunsigned char gatea2>ip34 5 6:89#:?@#:#:<= ++ router or gatea2 0P addressunsigned char subnet>mas34 5 69CC#9CC#9CC#7<= ++ subnet mas !or the local netor

Ethernet/erver serverD@7=

char bu!!er3974=

void setupD6  pinFodeD@#GHIPHI=  Ethernet.beginDmac# local>ip=

  /erial.beginD8?77=<

void loopD6  Ethernetlient client 5 server.availableD=  i! Dclient6

  boolean current(ine0sBlan 5 true=hile Dclient.connectedD6

  i! Dclient.availableD6

  int val=  i! Dbu!!er374 55 JGJ  6  digital$riteD@#K0LK=  <  else i! Dbu!!er374 55 J%J  6  digital$riteD@#(G$=  <  <  <  <<

VB ode*

0mports /2stem.Met./ocets0mports /2stem.Iext

Page 2: Arduino VB Net Ethernet

8/16/2019 Arduino VB Net Ethernet

http://slidepdf.com/reader/full/arduino-vb-net-ethernet 2/8

Public lass %orm:  )im tcplient As Me /2stem.Met./ocets.IcplientD  )im netor/tream As Metor/tream  )im Ne2Pressed As 0nteger

  Private %unction Arduino>onnectDB2Val 0P As /tring# B2Val Port As 0nteger AsBoolean  tcplient.onnectD0P# Port  netor/tream 5 tcplient.Let/treamD  0! Mot netor/tream.an$rite Gr Mot netor/tream.anOead Ihen  tcplient.loseD

  netor/tream 5 Mothing  Oeturn %alse  End 0!  Oeturn Irue  End %unction

  Private /ub Arduino>$riteDB2Val Gutput As /tring  0! Mot 0sMothingDnetor/tream Ihen  )im sendB2tes As 3B2te4D 5 Encoding.A/00.LetB2tesDGutput  )im endB2te As 3B2te4D 5 6K%E<  netor/tream.$riteDsendB2tes# 7# sendB2tes.(ength  netor/tream.$riteDendB2te# 7# :  Else

  FsgBoxDQEOOGOQ  End 0!  End /ub

  Private /ub %orm:>loadDB2Val sender As /2stem.Gbject# B2Val e As /2stem.EventArgsKandles F2Base.(oad  Arduino>onnectDQ:89.:?@.:.:77Q# @7

  picG!!.Visible 5 Irue  picGn.Visible 5 %alse  End /ub  Private /ub Arduino>)isconnectD  0! Mot 0sMothingDnetor/tream Ihen

  tcplient.loseD  netor/tream 5 Mothing  End 0!  End /ub

  Private /ub btnGn>licDB2Val sender As /2stem.Gbject# B2Val e As /2stem.EventArgsKandles btnGn.lic  picG!!.Visible 5 %alse  picGn.Visible 5 Irue  Arduino>$riteDQGQ  End /ub

  Private /ub btnG!!>licDB2Val sender As /2stem.Gbject# B2Val e As

/2stem.EventArgs Kandles btnG!!.(ic  picG!!.Visible 5 Irue  picGn.Visible 5 %alse  Arduino>$riteDQ%Q  End /ub

End lass

Eu descobri mensagens que !alam VB ao Arduino através de série e eu tenho quetrabalhar# $i%i ao Arduino# mas não pode testar devido a não ter um escudo $i%i dequalquer espécie# e eu tenho algumas versRes KIF( do código de trabalho# mas eurealmente quer controlar o Arduino usando VB e Ethernet.

Eu não sou muito !amiliari"ado com o Arduino nem VB mas sei o su!iciente paraentender o que est& acontecendo na maioria das ve"es. Sualquer ajuda sobre este é muitoapreciada especialmente se um exemplo simples que eu posso modi!icar podem ser!ornecidos ou ligados a.

/o# a client connects to the ArduinoTasTserver.

Page 3: Arduino VB Net Ethernet

8/16/2019 Arduino VB Net Ethernet

http://slidepdf.com/reader/full/arduino-vb-net-ethernet 3/8

  i! Dclient6

  boolean current(ine0sBlan 5 true=hile Dclient.connectedD6

  i! Dclient.availableD6

  int val=  i! Dbu!!er374 55 JGJ  6

  digital$riteD@#K0LK=  <  else i! Dbu!!er374 55 J%J  6  digital$riteD@#(G$=  <  <  <  <

VocU veri!ica para ver se o cliente tem alguma coisa a di"er# mas vocU nunca sepreocuparam em descobrir o que o cliente tem a di"er Dnão h& client.read D chama.

Então# vocU olha no bu!!er que vocU não tenha escrito para ver se algumas coisasmagicamente apareceu l&. Bem# é claro que não tem# até tampão não contém JGJ ou J%J naprimeira posião# então nada acontece.

VocU nunca leu o que o cliente tem a di"er# por isso permanece conectado. (ogo#não h& mais ligaRes disponWveis# por isso não h& mais clientes podem entrar na !ilapara ser ignorado.

Sual era o problema# a!inalX

VocU veri!icou o servidor Arduino com um navegador ebX Parece que vocU declararo servidor# mas não inici&Tlo na con!iguraão.

void setupD6 pinFodeD@#GHIPHI= Ethernet.beginDmac# local>ip= /erial.beginD8?77=

 ++ start the server listening on port @7 server.beginD=<

edit* eu deveria ter postado um lin para o exemplo esboo servidor no campo dejogos Dcampo de jogos 5 ii.

http*++pla2ground.arduino.cc+ode+$eb/erver/I

VocU vai ter que decidir se vocU quer usar uma abordagem KIIP eb server + ou umaabordagem de estilo telnet oldTschool no Arduino. K& uma abundYncia de exemplos para ocaso de servidor eb De# de !ato Zoomat vai estar aqui a qualquer momento paracompartilhar algum código KIIP de trabalho sólida.

Pode valer a pena dar uma olhada no exemplo Bitlash$eb/erver que vem com BitlashDhttp*++bitlash.net. [ um esboo que expRe Bitlash scripting como um servio eb apartir do Arduino over Ethernet. Ele também tem um servidor Ielnet para que vocU podeapenas enviar comandos# em oposião aos comandos envoltos em solicitaRes KIIP LEI.

Para o seu projeto vocU poderia simplesmente enviar Qd:\ 5 :Q para ligar o (E) nopino :\# e Qd:\ 5 7Q para deslig&Tlo.

Bitlash aqui* http*++bitlash.net e vocU pode navegar o código esboo servidor +telnet eb que vem na distribuião aqui*https*++github.com+billro2+bitlash+blob+master+examples+Bitlash$eb/erver+Bitlash$eb/erver. eu não

Page 4: Arduino VB Net Ethernet

8/16/2019 Arduino VB Net Ethernet

http://slidepdf.com/reader/full/arduino-vb-net-ethernet 4/8

Boa sorte com seu projeto#

Tbr

Edit* ):\ não est& indo trabalhar para um (E) porque é usado pelo escudoEthernet. )escobri esta ao criar um novo script embutido para o Bitlash$eb/erver. Fasagora vocU pode abrir um broser no servidor ipTaddress + toggleC e ele vai setrans!ormar pino C ligado e desligado.

código de controle de p&gina eb muito simples.

++"oomat ;T:T:9++simple button LEI !or servo and pin C++!or use ith 0)E :.7++open serial monitor to see hat the arduino receives++use the ] slash to escape the Q in the html# or use J instead o! Q++address ill loo lie http*++:89.:?@.:.:79*@; hen submited++!or use ith $C:77 based ethernet shields

-include /P0.h1-include Ethernet.h1

-include /ervo.h1/ervo m2servo= ++ create servo object to control a servo

b2te mac34 5 6 7x)E# 7xA)# 7xBE# 7xE%# 7x%E# 7xE) <= ++ph2sical mac addressb2te ip34 5 6 :89# :?@# :# :79 <= ++ ip in lanb2te gatea234 5 6 :89# :?@# :# : <= ++ internet access via routerb2te subnet34 5 6 9CC# 9CC# 9CC# 7 <= ++subnet masEthernet/erver serverD@;= ++server port

/tring read/tring=

++++++++++++++++++++++

void setupD6

  pinFodeDC# GHIPHI= ++pin selected to control  ++start Ethernet  Ethernet.beginDmac# ip# gatea2# gatea2# subnet=  server.beginD=

  m2servo.riteD87= ++set initial servo position i! desired  m2servo.attachD^= ++the pin !or the servo control  ++enable serial data print/erial.beginD8?77=/erial.printlnDQserver servo+pin C test :.7Q= ++ so 0 can eep trac o! hat is

loaded<

void loopD6  ++ reate a client connection  Ethernetlient client 5 server.availableD=  i! Dclient 6  hile Dclient.connectedD 6  i! Dclient.availableD 6  char c 5 client.readD=

  ++read char b2 char KIIP request  i! Dread/tring.lengthD :77 6

  ++store characters to stringread/tring _5 c=++/erial.printDc=

  <

++i! KIIP request has ended

Page 5: Arduino VB Net Ethernet

8/16/2019 Arduino VB Net Ethernet

http://slidepdf.com/reader/full/arduino-vb-net-ethernet 5/8

  i! Dc 55 J]nJ 6

  +++++++++++++++  /erial.printlnDread/tring= ++print to serial monitor !or debuging

client.printlnDQKIIP+:.: 977 GNQ= ++send ne page  client.printlnDQontentTI2pe* text+htmlQ=  client.printlnD=

  client.printlnDQKIF(1Q=  client.printlnDQKEA)1Q=

  client.printlnDQI0I(E1Arduino LEI test page+I0I(E1Q=  client.printlnDQ+KEA)1Q=  client.printlnDQBG)`1Q=

  client.printlnDQK:1ZoomatJs simple Arduino button+K:1Q= 

client.printlnDQa hre!5]Q+Xon]Q1GM+a1Q=client.printlnDQa hre!5]Q+Xo!!]Q1G%%+a1Q=

client.printlnDQ+BG)`1Q=  client.printlnDQ+KIF(1Q=

  dela2D:=

  ++stopping client  client.stopD=

  +++++++++++++++++++++ control arduino pin  i!Dread/tring.indexG!DQonQ 17++checs !or on  6  m2servo.riteD;7=  digital$riteDC# K0LK= ++ set pin C high  /erial.printlnDQ(ed GnQ=  <  i!Dread/tring.indexG!DQo!!Q 17++checs !or o!!  6  m2servo.riteD:;7=

  digital$riteDC# (G$= ++ set pin C lo  /erial.printlnDQ(ed G!!Q=  <  ++clearing string !or next read  read/tring5QQ=

  <  <  <  <<

Eu não tive muita chance de brincar com nenhum código ainda# mas eu possoresponder a algumas perguntas. Eu tentei a versão KIF( do controle e eu !i" chegar aesse trabalho com o meu Arduino. Eu acho que uma coisa que eu estou querendo aqui#porém# é como eu pode implementar uma aão de botão momentYneo durante o uso decomunicaRes Ethernet. )a pequena quantidade de experiUncia eb que eu tenho Euacredito que uma p&gina da eb é mais como um interruptor on + o!!. 0sso est& corretoXEu estou supondo que eu provavelmente poderia construir em algum tipo de atraso# masele iria !icar velho ter que clicar no botão v&rias ve"es para manter algo como uma lu"acesa.

Eu não tenho muita experiUncia com um Arduino até agora e estou tentando aprendermais todos os dias. Vou tentar trabalhar nas ideias acima mencionadas neste !im desemana# mas se alguém tem idéias de como eu pode implementar um interruptor estilo

momentYnea em ve" de um interruptor on + o!! seria muito apreciada# se vocUcompartilhar seus pensamentos ou idéias.

VocU precisa explicar mais detalhadamente a operaão desejada do seu Qsitchestilo momentYneaQ. [ a lu" para ser ligado enquanto o interruptor est& !echado +empurrado# e desliga quando o interruptor é aberto + lanadoX VocU est& querendo !a"erisso através de uma p&gina eb ou algum outro aplicativo VBX

Page 6: Arduino VB Net Ethernet

8/16/2019 Arduino VB Net Ethernet

http://slidepdf.com/reader/full/arduino-vb-net-ethernet 6/8

/ó encontrei este lin para Arduino VB (ab T interessantehttp*++source!orge.net+projects+arduinovblab+Xsource5recommended/a'de

Gbrigado a todos por sua ajuda e mensagens. Eu !inalmente tenho que trabalhar Paul/# obrigado por seu post inicial. )ei uma olhada melhor no meu código e comparouTomais perto de uma versão de trabalho do código de trabalho KIF( e descobriu que# comovocU disse# eu nunca estava lendo o cliente. Suanto a outras !ormas de !a"er a mesmacoisa que eu estou querendo um botão momentYneo de modo que no meu P eu clicar em umbotão e enquanto eu estou segurando o botão do mouse para baixo a lu" seria em e uma

ve" eu deixar de ir a lu" apagaTse até que eu clique e segure o botão novamente. Eutenho implementado isso usando o teclado# mas pensei que também seria bom !a"UTlo nocódigo VB bem usando o mouse# mas não percebi isso ainda. Gbrigado também a rbrightpara o lin. Eu posso de!initivamente ver alguns usos para essa inter!ace e programa no!uturo muito próximo. Feu código de trabalho est& abaixo. Ele tem alguns itens extrasem que eu tenho de mais um exemplo# mas acho que pode modi!ic&Tla para !a"er o que euquero.

Arduino ode*

++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++ )eclarations

++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-include /P0.h1-include Ethernet.h1

++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++ $ired con!iguration parameters++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,b2te mac34 5 6 7x87# 7xA9# 7x)A# 7x77# 7x):# 7x;B <=unsigned char local>ip34 5 6:89#:?@#:#:77<= ++ 0P address o! $i/hieldunsigned char gatea2>ip34 5 6:89#:?@#:#:<= ++ router or gatea2 0P address

unsigned char subnet>mas34 5 69CC#9CC#9CC#7<= ++ subnet mas !or the local netor

Ethernet/erver serverD@7=

++char bu!!er3974=/tring bu!!er 5 QQ=

void setupD6  pinFodeD@#GHIPHI=  Ethernet.beginDmac# local>ip=  /erial.beginD8?77=<

void loopD6  Ethernetlient client 5 server.availableD=  i! Dclient6

  boolean current(ine0sBlan 5 true=hile Dclient.connectedD6

  i! Dclient.availableD6

  char c 5 client.readD=  /erial.printDc=

bu!!er_5c= int val=

  i! Dc 55 JGJ  6  digital$riteD@#K0LK=  <

Page 7: Arduino VB Net Ethernet

8/16/2019 Arduino VB Net Ethernet

http://slidepdf.com/reader/full/arduino-vb-net-ethernet 7/8

Page 8: Arduino VB Net Ethernet

8/16/2019 Arduino VB Net Ethernet

http://slidepdf.com/reader/full/arduino-vb-net-ethernet 8/8

  Private /ub ontrol>Ne2)onDB2Val sender As Gbject# B2Val e As/2stem.$indos.%orms.Ne2EventArgs Kandles ontrol.Ne2)on  /elect ase Ne2Pressed  ase \@ J Hp  Jar>/topD  ase ;7 J )on  J ar>/topD  ase \8 J Oight  JFsgBoxDQ`ou pressed trl and Arroe2 OightQ  picG!!.Visible 5 %alse  picGn.Visible 5 Irue

  Arduino>$riteDQGQ  ase \^ J (e!t  J ar>IurnMoneD  End /elect  Ne2Pressed 5 7  End /ub

  Private /ub ontrol>Ne2HpDB2Val sender As Gbject# B2Val e As/2stem.$indos.%orms.Ne2EventArgs Kandles ontrol.Ne2Hp  Ne2Pressed 5 e.Ne2ode  /elect ase Ne2Pressed  ase \@ J Hp  Jar>%orard)riveD/peed.Iext

  ase ;7 J )on  Jar>Bacard)riveD/peed.Iext  ase \8 J Oight  picG!!.Visible 5 Irue  picGn.Visible 5 %alse  Arduino>$riteDQ%Q  ase \^ J (e!t  J ar>Iurn(e!tD  End /elect  End /ub

End lass

Em p&ginas KIF( aRes do mouse pode ser usado como abaixo.

input t2pe5QbuttonQ value5QQonmousedon5Qlocation.hre!DJhttp*++:9^.7.7.:+cgiTbin+cgi\[email protected]^77/:77J=Qonmouseup5Qlocation.hre!DJhttp*++:9^.7.7.:+cgiTbin+cgi\[email protected]/IGP7J=Q+1