arduino vb net ethernet
TRANSCRIPT
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
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.
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
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
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
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= <
8/16/2019 Arduino VB Net Ethernet
http://slidepdf.com/reader/full/arduino-vb-net-ethernet 7/8
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