Hola.
Que casualidad, llevo un tiempo haciendo lo mismo y no lo he conseguido, solo por ahora. Ya que su pouerto RS232 es d e3.3V.
Dejo un ejemplo de lo que he hecho hace semanas pero cn PIC, para que te hagas una idea.
; ZONA DE DATOS **********************************************************************
LIST P=16F88
INCLUDE <P16F88.INC>
__CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _FOSC_EC
;_XT_OSC
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
CBLOCK 0x20
ENDC
ENTER EQU .13 ; Código de tecla "Enter" o "Retorno de Carro".
CAMBIO_LINEA EQU .10 ; Código para el cambio de línea.
#DEFINE Entrada0 PORTB,4 ; Define dónde se sitúan las entradas.
#DEFINE Entrada1 PORTB,5
#DEFINE Entrada2 PORTB,6
#DEFINE Entrada3 PORTB,7
; ZONA DE CODIGOS ********************************************************************
ORG 0
goto Inicio
ORG 4 ; Aquí se sitúa el vector de interrupción para
goto LeeEntradasVisualiza ; atender las subrutinas de interrupción.
Mensajes ; Los mensajes no deben sobrepasar las 256
addwf PCL,F ; primeras posiciones de memoria de programa.
MensajeEntradas
DT ENTER, .1, .2, .3, .4, .5, ENTER, 0x00
MensajeWlanActive1
DT "wlan active 1", ENTER, 0x00
goto Salir
MensajeWlanActive0
DT "wlan active 0", ENTER, 0x00
Salir
call Retardo_5s
call Retardo_1s
DT "exit", ENTER, 0x00
call Retardo_1s
Inicio
call RS232_Inicializa
bsf STATUS,RP0 ; Configura como entrada las 4 líneas correspondientes
bsf Entrada0 ; del Puerto B respetando la configuración del
; bsf Entrada1 ; resto de las líneas.
; bsf Entrada2
; bsf Entrada3
bcf OPTION_REG,NOT_RBPU ; Activa las resistencias de Pull-Up del Puerto B.
bcf STATUS,RP0
bcf STATUS,RP1
call RS232_LineasBlanco ; Visualiza unas cuantas líneas en blanco
call RS232_LineasBlanco ; para limpiar la pantalla.
call LeeEntradasVisualiza ; Lee las entradas y visualiza por primera vez.
movlw b'10001000' ; Habilita la interrupción RBI y la general.
movwf INTCON
Principal
sleep ; Espera en modo de bajo consumo que se
goto Principal ; modifique una entrada.
; Subrutina de Servicio a la Interrupcion" ----------------------------------------------
;
; Lee el estado de las entradas y las monitoriza en la pantalla del HyperTerminal.
LeeEntradasVisualiza
call RS232_LineasBlanco
movlw MensajeEntradas ; Nombre de las entradas.
call RS232_Mensaje ; Lo visualiza en el ordenador.
;LeeEntrada3
; btfss Entrada3 ; ¿Entrada = 1?, ¿Entrada = Abierta?
; goto Entrada3Cerrado ; No, está cerrada.
; call VisualizaAbierto
; goto LeeEntrada2
;Entrada3Cerrado
; call VisualizaCerrado
;LeeEntrada2
; btfss Entrada2 ; Se repite el procedimiento para las
; goto Entrada2Cerrado ; demás entradas.
; call VisualizaAbierto
; goto LeeEntrada1
;Entrada2Cerrado
; call VisualizaCerrado
;LeeEntrada1
; btfss Entrada1
; goto Entrada1Cerrado
; call VisualizaAbierto
; goto LeeEntrada0
;Entrada1Cerrado
; call VisualizaCerrado
LeeEntrada0
btfss Entrada0
goto Entrada0Cerrado
call VisualizaAbierto
goto FinVisualiza
Entrada0Cerrado
call VisualizaCerrado
FinVisualiza
call RS232_LineasBlanco
bcf INTCON,RBIF ; Limpia el flag de reconocimiento de la
retfie ; interrupción.
;
VisualizaAbierto
movlw MensajeWlanActive1 ; Visualiza el mensaje "Abierto"
call RS232_Mensaje ; en el HyperTerminal.
return
VisualizaCerrado
movlw MensajeWlanActive0 ; Visualiza el mensaje "Cerrado"
call RS232_Mensaje ; en el HyperTerminal.
return
INCLUDE <RS232.INC>
INCLUDE <RS232MEN.INC>
INCLUDE <RETARDOS.INC>
END
En esta parte se envía o recibe los comandos AT.
PAaa los comandos AT.
goto LeeEntradasVisualiza ; atender las subrutinas de interrupción.
Mensajes ; Los mensajes no deben sobrepasar las 256
addwf PCL,F ; primeras posiciones de memoria de programa.
MensajeEntradas
DT ENTER, .1, .2, .3, .4, .5, ENTER, 0x00
MensajeWlanActive1
DT "wlan active 1", ENTER, 0x00
goto Salir
MensajeWlanActive0
DT "wlan active 0", ENTER, 0x00
Salir
call Retardo_5s
call Retardo_1s
DT "exit", ENTER, 0x00
call Retardo_1s
Hace semansa compré Arduino UNo r3, haré pruebas con él si me sale te lo enseño.
El router tiene contraseña, ahy que indicarlo dentro del PIC o Arduino. Pulsas Entere, en realidad lo envías que es 0x13 y salto de línea que es 0x10 para mensajes.
Contraseña en mic aso de ejemplo, 12345, luego Enter. Cuando entres, enviarás comandos y lo leer con el serial terminal o una LCD que pusiste en ARduino.
Saludo.