InicioHazlo Tu MismoDomotica casera parte2

hola 2do post !! aqui aprenderas como hacer una practica en proteus y una prueba de como usarlo para automatizar tu hogar

1 arma tu circuito en proteus:



2 luego de esto programa en MIKROC cuando abrimos el proyecto la senal de reloj es 4 Mhz






3 Abrimos el VirtualPorts aquie el link de descarga:

http://free-virtual-serial-ports-emulator.softonic.com/descargar

escojemos pair para hacer prueba con proteus.




los puertos seran 1 y 2



aceptamos y abrimos en hyperterminal y escojemos puerto 1 con velocidad de 9600
luego en proteus lo siguiente:
damos doble click en el puerto serie y escojemos el puerto 2




lo mismo hacemos en el pic para escojer el archivo hex que contiene la programacion en mi caso se llama MyProject.hex






En resumen aqui vemos que se prende la LUZ1 CON UN "a" y apaga con un "b" en el hyperterminal...
ahora aprenderemos como armar en visual basic10...

usaremos un elemento que nos permite recibir y enviar datos en visual que se llama "SerialPort" en nuestro form y armamos la interfaz asi:



ahora la prueba en proteus:



codigo fuente vb

Public Class Form1
Function obtenerPuertosSeriePC() As List(Of String)
Dim puertosSerie As List(Of String)

puertosSerie = New List(Of String)
Try
puertosSerie = New List(Of String)
For Each puertosSerieObtenidos As String
In My.Computer.Ports.SerialPortNames
puertosSerie.Add(puertosSerieObtenidos)
Next
obtenerPuertosSeriePC = puertosSerie
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical +
MsgBoxStyle.OkOnly)
obtenerPuertosSeriePC = puertosSerie
End Try
End Function
Private Sub OBTPIC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btObtenerPuertos.Click, OBTPIC.Click
Dim puertosSerie As List(Of String)
Dim i As Integer

txtPuerto1.Items.Clear()

puertosSerie = obtenerPuertosSeriePC()
For i = 0 To puertosSerie.Count - 1
txtPuerto1.Items.Add(puertosSerie(i).ToString)
Next

If txtPuerto1.Items.Count >= 1 Then
txtPuerto1.Text = txtPuerto1.Items(0)
Else
txtPuerto1.Text = ""
End If

If puertosSerie.Count = 0 Then
MsgBox("No se han detectado puertos serie en su equipo, " +
"asegúrese de que están correctamente configurados.",
MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
End If
End Sub

Private Sub CONPIC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CONPIC.Click
If txtPuerto1.Text = "" Then
MsgBox("Ingrese el puerto de conexión. ",
MsgBoxStyle.Information + MsgBoxStyle.OkOnly)

Else
CONPIC.Enabled = False
System.Threading.Thread.Sleep(1000)
SerialPort1.PortName = txtPuerto1.Text
SerialPort1.BaudRate = 9600
SerialPort1.Parity = IO.Ports.Parity.None
SerialPort1.DataBits = 8
SerialPort1.StopBits = IO.Ports.StopBits.One
SerialPort1.Open()
DesPIC.Enabled = True
labelconexion.Text = "Puerto serie (COM) con PIC CONECTADO"
labelconexion.ForeColor = Color.Green
BtnON1.Enabled = True
End If
End Sub

Private Sub BtnON1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnON1.Click
SerialPort1.Write("a" )
BtnON1.Enabled = False
BtnOFF1.Enabled = True
PictureBox1.Image = My.Resources.luz1uno
End Sub

Private Sub BtnOFF1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOFF1.Click
SerialPort1.Write("b" )
BtnOFF1.Enabled = False
BtnON1.Enabled = True
PictureBox1.Image = My.Resources.luzoff1
End Sub

Private Sub DesPIC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DesPIC.Click
SerialPort1.Close()
DesPIC.Enabled = False
CONPIC.Enabled = True
labelconexion.Text = "Puerto serie (COM) con PIC DESCONECTADO"
labelconexion.ForeColor = Color.Red
BtnON1.Enabled = False
BtnOFF1.Enabled = False
End Sub
End Class


TERMINADO aqui es todo !! por ahora ya tienes para encender una luz con tu PC facilmente puedes incrementar tu codigo para mas leds en proteus!




aqui un enlaze de un video de lo mismo pero hecho en visual 6






[size=18]Ahora con esos avanzes veremos como con un modem prenderemos el mismo foco
necesitas un modem obviamente ... recomiendo el huawei para q no tengas inconvenientes con los Comandos AT
[/size]
OK !!
QUE SON LOS COMANDOS AT:

los comandos AT sirven para comunicarte con un modem pues te perimitira acceder a el y realizar acciones desde tu pc ... las pruebas se pueden hacer en HYPERTERMINAL o cualquier otro que pruebe los puertos serie

Los comandos que debes usar son los siguientes:
AT+CMGF=1 (es el comando q permite trabajar en formato texto, pdu es 0, necesitas el comando para recibir los mensajes en texto si no te salen puros numeros)
AT+CNMI=1,2 (es el comando que recibe los mensajes y los lees, si no te saldra en una posicion es decir que cuando recibas el mensaje te llegara en la posicion 5de tu bandeja de entrada)
AT+CMGF="notelefono" enter
> mensaje Controlz
si deseas enviar un mensaje de texto..
prueba:




ahora agregale algunos detalles a tu form y mira la prueba
ok este diseño de encendido por sms
consiste en tener 2 codigos uno para encender y otro para apagar
el mensaje llega en un formato... tu tienes q eliminar ese formato para que te quede solo el mensaje
el mensaje se compara con los codigos que tu eliges en este caso es C1 Y C2
al comparar el mensaje realizara la accion de encendido o apagado ...
aqui la prueba:




CODIGO Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles obtpuertoModem.Click
Dim puertosSerie As List(Of String)
Dim i As Integer

txtpuertoModem.Items.Clear()

puertosSerie = obtenerPuertosSeriePC()
For i = 0 To puertosSerie.Count - 1
txtpuertoModem.Items.Add(puertosSerie(i).ToString)
Next

If txtpuertoModem.Items.Count >= 1 Then
txtpuertoModem.Text = txtpuertoModem.Items(0)
Else
txtpuertoModem.Text = ""
End If

If puertosSerie.Count = 0 Then
MsgBox("No se han detectado puertos serie en su equipo, " +
"asegúrese de que están correctamente configurados.",
MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
End If
End Sub
Private Sub btConectar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btConectar.Click
Try
If DesPIC.Enabled = False Then
MsgBox("Antes de conectar con el puerto serie modem " &
"debe conectar el puerto serie " &
"del Microcontrolador.",
MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
Else

SerialPort2.PortName = txtpuertoModem.Text
SerialPort2.BaudRate = 9600
SerialPort2.Parity = IO.Ports.Parity.None
SerialPort2.DataBits = 8
SerialPort2.StopBits = IO.Ports.StopBits.One
SerialPort2.Open()
DesModem.Enabled = True
btConectar.Enabled = False
LabelConexionModem.Text = "Puerto serie (COM) con modem CONECTADO"
LabelConexionModem.ForeColor = Color.Green
End If

Catch ex As Exception
MsgBox("Error al abrir el puerto serial: " &
ex.Message, MsgBoxStyle.Critical)
End Try
BtnON1.Enabled = True

End Sub


Private Sub DesModem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DesModem.Click
SerialPort2.Close()
DesModem.Enabled = False
btConectar.Enabled = True
LabelConexionModem.Text = "Puerto serie (COM) con Modem DESCONECTADO"
LabelConexionModem.ForeColor = Color.Red
BtnON1.Enabled = False
BtnOFF1.Enabled = False
End Sub
Private Sub compPuertoSerie_DataReceived(ByVal sender As System.Object,
ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) _
Handles SerialPort2.DataReceived

Dim resultadoModemGSM As String

Try
'Obtener el resultado devuelto por el puerto serie
resultadoModemGSM = SerialPort2.ReadExisting.Trim().ToString

If txtResultado.Text <> "" Then
txtResultado.Text = txtResultado.Text + vbCrLf +
resultadoModemGSM
Else
txtResultado.Text = resultadoModemGSM
End If
txtResultado.ScrollToCaret()

longitud.Text = Len(txtResultado.Text)
If Len(txtResultado.Text) >= 47 Then SMS.Text = Mid(txtResultado.Text, 48, Len(txtResultado.Text) - 47)
NOMBRE = Trim(SMS.Text)
NOMBRE = Replace(NOMBRE, vbCrLf, " " )
NOMBRE = Replace(NOMBRE, vbCr, " " )

If Trim(NOMBRE) = (C1.Text) Then
SerialPort1.Write("a" )

BtnON1.Enabled = False
BtnOFF1.Enabled = True
PictureBox1.Image = My.Resources.luzoff1
End If
If Trim(NOMBRE) = (C2.Text) Then
BtnON1.Enabled = True
BtnOFF1.Enabled = False
SerialPort1.Write("b" )
PictureBox1.Image = My.Resources.luzoff1
End If
System.Threading.Thread.Sleep(5000)
txtResultado.Text = ""
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical +
MsgBoxStyle.OkOnly)
End Try
End Sub
End Class

AHORA AGREGALE UN TEMPORIZADOR PARA QUE ENCIENDAS EL FOCO A LA HORA QUE DESEES


revisa el post con este enlace de los materiales

Datos archivados del Taringa! original
0puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
7visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

N
NiicoCR7🇦🇷
Usuario
Puntos0
Posts2
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.