Sistema de alarma casera utilizando Netduino Plus (proyecto HomeAlarmPlus)


Se trata de un sistema de monitoreo de alarma simple con Netduino Plus y un panel de alarma típico. Esta aplicación podría ser usado en conjunción con los PC5010 Digital Security Controls (DSC) del panel de control del sistema de seguridad PowerSeries y sensores. Probado con. NET Micro Framework 4.2 (QFE1 y qfe2).

El objetivo de este proyecto es utilizar capacidades de Netduino Plus para controlar el sistema de alarma y reportar las actividades de cualquier detector del sensor de movimiento / por correo electrónico (utilizando protocolo simple de transferencia de correo (SMTP)), un servidor web local y Pachube (ahora Cosm).

Advertencia

Este código contiene información relacionada con un típico sistemas de alarma. Por favor, tenga en cuenta que este procedimiento puede anular la garantía. Cualquier sistema de alarma de cualquier tipo puede ser comprometido deliberadamente o puede fallar al operar como se espera por una variedad de razones.

El autor, Gilberto García, no se hace responsable de los fallos del sistema, tales como: instalación inadecuada, el conocimiento criminal, el acceso de intrusos, la falta de energía, falta de baterías reemplazables, el compromiso de Radio Frecuencia (Wireless) los dispositivos, los usuarios del sistema, detectores de humo, de movimiento detectores, dispositivos de alarma (sirenas, campanas, bocina), líneas telefónicas, falta de tiempo, falta de componentes, pruebas insuficientes, la seguridad y los seguros (propiedad o seguro de vida).

 Hardware
  • Netduino Plus
  • Tarjeta Micro SD
  • Adaptador de tarjeta SD
  • 3mm diodo emisor de luz (LED) verde por zona de alarma y detector de movimiento.
  • 330 ohmios para cada LED.
  • Resistencia 5600 ohmios por zona de alarma y detector de movimiento.
  • Schottky diodo por zona de alarma. Schottky diodo debe tener una baja caída de tensión como el SBR10U40CT.
  • Sparkfun ProtoScrewShield (sku: DEV-09729). Otros escudos que trabajarán son: Proto-Screwshield (Wingshield) kit de Adafruit o WingShield Industries.
  • Conexion WiFi  via WiFly Shield o  un adaptador WiFi .  Testado  con Netgear WNCE3001 , IOGEAR GWU627 y adap tadorMIFI de Telefónica.

OPcional

LED verde con soporte)

Conector Panel impermeable (RR-211300-30)

Cable USB 2.0 tipo A macho a un macho (10 pies o más). Se utiliza para acceder al Netduino Plus tabla en el panel de alarma.
200 Vatios / 350 VA UPS (APC System UPS BE350G o similar).
Botón de reset externo Empuje.
Arduino Proto Shield R3. Más espacio para los componentes adicionales. Mouser Electronics y otros.
LCD 16×2  3.3V para Netduino o 5V para Arduino.
Interruptor DPDT (o éste de Mouser Electronics) para la selección de voltaje LCD.

Circuito
El diagrama realizado con la herramienta Fritzing siguiente muestra cómo el Netduino plus, LEDs y las zonas de alarma (o detector de movimiento) están conectados. LCD circuitos de referencia de Szymon Kobalczy.

HomeAlarmPlus connection diagram (basic circuit) Rev-
HomeAlarmPlus connection diagram (basic circuit) RevA
HomeAlarmPlus connection diagram (enhanced circuit) RevG
Zone/Sensor connection

Tenga en cuenta que una o más zonas consisten en lo siguiente:
a) 1 contacto normalmente abierto y 1 contacto NC con fin de línea (EOL) resistencia.
b) Doble circuito de EOL, 1 Contacto normalmente cerrado con 5.6kohm EOL resistencia y diodo Schottky. Esto hará que la protección necesaria para la Netduino o Arduino.
c) Cada zona de tierra debe ser conectado a la ProtoScrewShield GND.
Netduino / ProtoScrewShield Pin
descripción
A0 Zona # 1
Zona A1 # 2
A2 Zona # 3
A3 Zona # 4
Sensor A4 # 1 [Detector de movimiento]
Zona de LED D2 # 1
D3 Zona LED # 2
D4 Zone LED # 3
D5 LED Zona # 4
D6 o D7 Sensor LED # 1 [Detector de movimiento]

Opciones Web Server

 

 

Opciones
descripción
Page / Root
/ open Abrir último archivo en la tarjeta SD.
/ files Lista sdcard en la tarjeta SD.
/ su superusuario. Muestra opciones adicionales.
/ Pachube muestra la actividad Pachube por zona / Datastream.
/ sobre los créditos de aplicación y versión.
/ delete-confirmar ¿Eliminar último archivo en la tarjeta SD [Ventana de confirmación].
/ delete-última Borrar el último archivo en la tarjeta SD [ninguna ventana de confirmación].
/ diagnóstico por ahora, muestra la memoria disponible en Netduino y las fuerzas para despejar el recolector de basura.
Código
Archivo config.ini debe copiarse en el directorio raíz de la tarjeta SD. La finalidad de este fichero es la de personalizar los parámetros en la tarjeta SD y evitar una mínima modificación del código fuente. Archivos CSS (header_style.css y table_style.css) deben ubicarse en WebResources carpeta.

 

microSD directory structure

Config.ini content:

01 ;AlarmByZones - Programmed for Netduino by Gilberto García - 5/9/2012 
02 ;Feel free to customize this file with your own definitions. 
03 ;[NETDUINO_PLUS_HTTP_PORT] HTTP server port. 
04 ;[ALARM_ZONES] should match with ACTIVE_ZONES constant defined in AlarmByZones.cs and Definitions.cs . 
05 ;[SENSORS] should match with MOTION_SENSORS constant defined in AlarmByZones.cs and Definitions.cs . 
06 ;[USE_EMAIL] Activate/Deactivate email option. Y or N arguments expected. 
07 ;[EMAIL_FREQ] Email frequency in minutes when the alarm/sensor is active.  
08 ;       This will define EMAIL_FREQUENCY in ConfigDefault.cs . 
09 ;[STORE_LOG] Saves alarm/sensor log. Y or N arguments expected. 
10 ;[STORE_EXCEPTION] Saves Netduino exceptions. Y or N arguments expected. 
11 ;[USE_PACHUBE] Activate/Deactivate Pachube option. Y or N arguments expected. 
12
13
14
15 [NETDUINO_PLUS_HTTP_PORT] 
16 8080 
17 [ALARM_ZONES] 
18 Zone1=FIRST FLOOR - Living room windows, Dining room windows, Porch (sliding doors), Garage door access. 
19 Zone2=SECOND FLOOR - Master Bedroom and Bathroom Windows. 
20 Zone3=FIRST FLOOR - Master Bedroom windows. 
21 Zone4=SECOND FLOOR - Bedroom 2 and bathroom windows. 
22 [SENSORS] 
23 Sensor1=Main door access 
24 [USE_EMAIL] 
25
26 [EMAIL_FREQ] 
27 10 
28 [STORE_LOG] 
29
30 [STORE_EXCEPTION] 
31
32 [USE_PACHUBE] 
33

 

Architecture of AlarmByZones (main)

Declaration

01 /// <summary> 
02  /// Alarm zones (Analog Input) 
03  /// </summary> 
04  static SecretLabs.NETMF.Hardware.AnalogInput[] Zones = newSecretLabs.NETMF.Hardware.AnalogInput[Alarm.User_Definitions.Constants.ACTIVE_ZONES]; 
05  /// <summary> 
06  /// Alarm zones LEDs (Digital Output) 
07  /// </summary> 
08  static Microsoft.SPOT.Hardware.OutputPort[] AlarmLeds = newMicrosoft.SPOT.Hardware.OutputPort[Alarm.User_Definitions.Constants.ACTIVE_ZONES]; 
09  /// <summary> 
10  /// Motion detector sensors (Analog Input) 
11  /// </summary> 
12  static SecretLabs.NETMF.Hardware.AnalogInput[] Sensors = newSecretLabs.NETMF.Hardware.AnalogInput[Alarm.User_Definitions.Constants.MOTION_SENSORS]; 
13  /// <summary> 
14  /// Motion detector LEDs (Digital Output) 
15  /// </summary> 
16  static Microsoft.SPOT.Hardware.OutputPort[] MotionLeds = newMicrosoft.SPOT.Hardware.OutputPort[Alarm.User_Definitions.Constants.MOTION_SENSORS]; 
17  /// <summary> 
18  /// Gets the total elapsed time measured by the current instance of each alarm zone. 
19  /// </summary> 
20  static System.Diagnostics.Stopwatch[] stopwatchZones = newStopwatch[Alarm.User_Definitions.Constants.ACTIVE_ZONES]; 
21  /// <summary> 
22  /// Gets the total elapsed time measured by the current instance of each motion detector sensor. 
23  /// </summary> 
24  static System.Diagnostics.Stopwatch[] stopwatchSensors = newStopwatch[Alarm.User_Definitions.Constants.MOTION_SENSORS]; 
25  /// <summary> 
26  /// Flag for detected zones when trigger. 
27  /// </summary> 
28  static bool[] detectedZones = newbool[Alarm.User_Definitions.Constants.ACTIVE_ZONES]; 
29  /// <summary> 
30  /// Flag for detected sensors when is trigger. 
31  /// </summary> 
32  static bool[] detectedSensors = newbool[Alarm.User_Definitions.Constants.MOTION_SENSORS]; 
33  /// <summary> 
34  /// Email 
35  /// </summary>    
36  /// <example> SMTPClient.Email("mail.gmx.com", 587, "[email protected]", "[email protected]", "user password");  
37  /// </example> 
38  static SMTPClient.Email email = newSMTPClient.Email(Alarm.UserData.Email.host, Alarm.UserData.Email.port, 
39    Alarm.UserData.Email.From, Alarm.UserData.Email.To, Alarm.UserData.Email.smtpPassword); 
40  /// <summary> 
41  /// SD Card Event Logger 
42  /// </summary> 
43  public static EventLogger SdCardEventLogger = newEventLogger(); 

Delegates 

1 /// <summary> 
2 /// Monitor zones delegate 
3 /// </summary> 
4 public delegate void MonitorZonesDelegate(); 
5 /// <summary> 
6 /// Monitor motion sensor delegate 
7 /// </summary> 
8 public delegate void MonitorMotionSensorDelegate(); 

Main 

01 public static void Main() 
02
03   Zones[0] = newSecretLabs.NETMF.Hardware.AnalogInput(SecretLabs.NETMF.Hardware.NetduinoPlus.Pins.GPIO_PIN_A0); 
04   Zones[1] = newSecretLabs.NETMF.Hardware.AnalogInput(SecretLabs.NETMF.Hardware.NetduinoPlus.Pins.GPIO_PIN_A1); 
05   Zones[2] = newSecretLabs.NETMF.Hardware.AnalogInput(SecretLabs.NETMF.Hardware.NetduinoPlus.Pins.GPIO_PIN_A2); 
06   Zones[3] = newSecretLabs.NETMF.Hardware.AnalogInput(SecretLabs.NETMF.Hardware.NetduinoPlus.Pins.GPIO_PIN_A3); 
07   AlarmLeds[0] = newMicrosoft.SPOT.Hardware.OutputPort(Pins.GPIO_PIN_D2,false);       
08   AlarmLeds[1] = newMicrosoft.SPOT.Hardware.OutputPort(Pins.GPIO_PIN_D3, false); 
09   AlarmLeds[2] = newMicrosoft.SPOT.Hardware.OutputPort(Pins.GPIO_PIN_D4, false); 
10   AlarmLeds[3] = newMicrosoft.SPOT.Hardware.OutputPort(Pins.GPIO_PIN_D5, false); 
11   Sensors[0] = newSecretLabs.NETMF.Hardware.AnalogInput(SecretLabs.NETMF.Hardware.NetduinoPlus.Pins.GPIO_PIN_A4); 
12   MotionLeds[0] = newMicrosoft.SPOT.Hardware.OutputPort(Pins.GPIO_PIN_D7, false); 
13   MonitorZonesDelegate monitorZones = newMonitorZonesDelegate(MonitorZones); 
14   MonitorMotionSensorDelegate monitorMotion = newMonitorMotionSensorDelegate(MonitorSensors); 
15   //based on a post by Valkyrie-MT 
17   Console.DEBUG_ACTIVITY("Setting NTP-time"); 
18   SetTime(); 
19   SdCardEventLogger.parseConfigFileContents(Alarm.User_Definitions.Constants.ALARM_CONFIG_FILE_PATH); 
20   InitArrays(); 
21   Console.DEBUG_ACTIVITY(Microsoft.SPOT.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()[0].IPAddress); 
22   SdCardEventLogger.SDCardAccess(); 
23   new Thread(Alarm.ProtoScrewShield_LED.Blink).Start();       
24   new Thread(Alarm.WebServer.startHttp).Start(); 
25   if (Alarm.ConfigDefault.Data.USE_PACHUBE) 
26   
27     Pachube.PachubeLibrary.InitPachubleLibrary(SdCardEventLogger.IsSDCardAvailable(), Alarm.ConfigDefault.Data.STORE_EXCEPTION); 
28     new Thread(Pachube.PachubeLibrary.PachubeConnect).Start(); 
29   
30   while (true
31   
32     Debug.Print("Memory available: " + Debug.GC(true)); 
33     monitorZones(); 
34     monitorMotion(); 
35     Thread.Sleep(Alarm.Common.Alarm_Constants.ALARM_DELAY_TIME); 
36   
37

Main Methods 

001 /// <summary> 
002 /// Loops thru each alarm zone 
003 /// </summary> 
004 static void MonitorZones() 
005
006   for (int i = 0; i < Zones.Length; i++) 
007   
008     int vInput = Zones[i].Read(); 
009     float volts = ((float)vInput / 1024.0f) * 3.3f; 
010     string strZoneDescription = "N/A"//If zone description is not found on SD Card N/A is default description. 
011     Console.DEBUG_ACTIVITY("Zone " + (i + 1).ToString() + ": Volts: " + volts); 
012     //format:                //Zone number, voltage 
013     Pachube.PachubeLibrary.statusToPachube = i == 0 ? (i + 1).ToString() + "," + volts : (i + 1).ToString() + "," + volts +"\r\n" + Pachube.PachubeLibrary.statusToPachube; 
014     AlarmLeds[i].Write(volts >= 3); 
015     //elapsed seconds 
016     double eSeconds = stopwatchZones[i].ElapsedSeconds; 
017     //elapsed minutes 
018     double eMinutes = stopwatchZones[i].ElapsedMinutes; 
019     Console.DEBUG_ACTIVITY("stopwatch[" + i.ToString() + "] = " + eSeconds.ToString() + " seconds"); 
020     Console.DEBUG_ACTIVITY("stopwatch[" + i.ToString() + "] = " + eMinutes.ToString() + " minutes\n"); 
021     if (volts >= 3 ) 
022     
023       /* 
024        Case #1: 
025         !detectedZones[i] = not triggered before. This is the first time in this cycle and first email to send. 
026        Case #2: 
027         detectedZones[i] && eMinutes >= EMAIL_FREQUENCY = triggered before and time is up for sending another email.            
028        */
029       if (!detectedZones[i] || (detectedZones[i] && eMinutes >= Alarm.ConfigDefault.Data.EMAIL_FREQUENCY)) 
030       
031         if (Alarm.Common.Alarm_Info.zoneDescription.Count>0) 
032         
033           if(Alarm.Common.Alarm_Info.zoneDescription.Contains("Zone" + (i + 1).ToString())) 
034           
035             strZoneDescription = (string)Alarm.Common.Alarm_Info.zoneDescription["Zone" + (i + 1).ToString()]; 
036           
037         
038         string info = "Zone " + (i + 1).ToString() + " " + strZoneDescription; 
039         stopwatchZones[i] = Stopwatch.StartNew(); 
040         detectedZones[i] = true
041         email.SendEmail("Alarm Trigger!", info); 
042         Alarm.Common.Alarm_Info.sbActivity.AppendLine("<tr>");
043         Alarm.Common.Alarm_Info.sbActivity.AppendLine("<td><center>" + DateTime.Now.ToString() + "</center></td> ");
044         Alarm.Common.Alarm_Info.sbActivity.AppendLine("<td><center> Zone " + (i + 1).ToString() + "</center></td>");
045         Alarm.Common.Alarm_Info.sbActivity.AppendLine("<td><center>" + strZoneDescription + "</center></td>");
046         Alarm.Common.Alarm_Info.sbActivity.AppendLine("</tr>");             if (Alarm.ConfigDefault.Data.USE_PACHUBE) 
047         
048           //supress timer and update Pachube with new status 
049           Pachube.PachubeLibrary.forceUpdate = true
050         
051         if (SdCardEventLogger.IsSDCardAvailable() && Alarm.ConfigDefault.Data.STORE_LOG) 
052         
053           SdCardEventLogger.saveFile(DateTime.Now.ToString("d_MMM_yyyy--HH_mm_ss") + ".log", info, "Log"); 
054         
055       
056     
057     else
058     
059       detectedZones[i] = false
060     
061   
062
063 /// <summary> 
064 /// Loops thru each sensor 
065 /// </summary> 
066 static void MonitorSensors() 
067 {   
068   for (int i = 0; i < Sensors.Length; i++) 
069   
070     int vInput = Sensors[i].Read(); 
071     float volts = ((float)vInput / 1024.0f) * 3.3f; 
072     string strSensorDescription = "N/A"//If sensor description is not found on SD Card N/A is default description. 
073     Console.DEBUG_ACTIVITY("Sensor " + (i + 1).ToString() + ": Volts: " + volts); 
074     MotionLeds[i].Write(volts >= 3); 
075     double eSeconds = stopwatchSensors[i].ElapsedSeconds; 
076     double eMinutes = stopwatchSensors[i].ElapsedMinutes; 
077     Console.DEBUG_ACTIVITY("stopwatch[" + i.ToString() + "] = " + eSeconds.ToString() + " seconds"); 
078     Console.DEBUG_ACTIVITY("stopwatch[" + i.ToString() + "] = " + eMinutes.ToString() + " minutes\n"); 
079     if (volts >= 3) 
080     
081       /* 
082        Case #1: 
083         !detectedZones[i] = not triggered before. This is the first time in this cycle and first email to send. 
084        Case #2: 
085         detectedZones[i] && eMinutes >= EMAIL_FREQUENCY = triggered before and time is up for sending another email.            
086        */
087       if (!detectedSensors[i] || (detectedSensors[i] && eMinutes >= Alarm.ConfigDefault.Data.EMAIL_FREQUENCY)) 
088       
089         if (Alarm.Common.Alarm_Info.sensorDescription.Count > 0) 
090         
091           if(Alarm.Common.Alarm_Info.sensorDescription.Contains("Sensor" + (i + 1).ToString())) 
092           
093             strSensorDescription = (string)Alarm.Common.Alarm_Info.sensorDescription["Sensor" + (i + 1).ToString()]; 
094           
095         
096         string info = "Sensor " + (i + 1).ToString() + " " + strSensorDescription; 
097         stopwatchSensors[i] = Stopwatch.StartNew(); 
098         detectedSensors[i] = true
099         email.SendEmail("Alarm Trigger!", info); 
100         Alarm.Common.Alarm_Info.sbActivity.AppendLine("<tr>");
101         Alarm.Common.Alarm_Info.sbActivity.AppendLine("<td><center>" + DateTime.Now.ToString() + "</center></td> ");
102         Alarm.Common.Alarm_Info.sbActivity.AppendLine("<td><center> Sensor " + (i + 1).ToString() + "</center></td>");
103         Alarm.Common.Alarm_Info.sbActivity.AppendLine("<td><center>" + strSensorDescription + "</center></td>");
104         Alarm.Common.Alarm_Info.sbActivity.AppendLine("</tr>"); 
105         if (Alarm.ConfigDefault.Data.USE_PACHUBE) 
106         
107           //supress timer and update Pachube with new status 
108           Pachube.PachubeLibrary.forceUpdate = true
109         
110         if (SdCardEventLogger.IsSDCardAvailable() && Alarm.ConfigDefault.Data.STORE_LOG) 
111         
112           SdCardEventLogger.saveFile(DateTime.Now.ToString("d_MMM_yyyy--HH_mm_ss") + ".log", info, "Log"); 
113         
114       
115     
116     else
117     
118       detectedSensors[i] = false
119     
120   
121
122 /// <summary> 
123 /// Synchronize Netduino time with NTP Server 
124 /// </summary> 
125 public static void SetTime() 
126
128   Extension.SetFromNetwork(DateTime.Now, new TimeSpan(-5, 0, 0)); 
129
130 /// <summary> 
131 /// Initializes stopwatch and alarms/sensors arrays 
132 /// </summary> 
133 private static void InitArrays() 
134
135   for (int i = 0; i < Alarm.User_Definitions.Constants.ACTIVE_ZONES; i++) 
136   
137     stopwatchZones[i] = Stopwatch.StartNew(); 
138     detectedZones[i] = false
139   
140   for (int i = 0; i < Alarm.User_Definitions.Constants.MOTION_SENSORS; i++) 
141   
142     stopwatchSensors[i] = Stopwatch.StartNew(); 
143     detectedSensors[i] = false
144   
145

 

Cosm, formerly Pachube, Alarm Console

Final Product

LCD and WiFi Internet Adapter
Alarm Panel with Netduino Plus, LCD and WiFi Internet Adapter

 

Comentarios comunidad Netduino

http://forums.netduino.com/index.php?/topic/4202-home-alarm-system-using-netduino-plus-homealarmplus-project/

Repositorio código fuente
https://github.com/ferraripr/HomeAlarmPlus

Video

YouTube video

Fuente Gilberto García

Sencilla red doméstica de audio y video


Los ordenadores personales y la gran cantidad de dispositivos multimedia existente en la actualidad (consolas de videojuegos, lectores de DVD, receptores de satélite, receptores de TDT, videocámaras, seguridad activa y pasiva, etc.)  han irrumpido progresivamente en nuestra vida cotidiana  y según las previsiones van a  ir mejorando en carastericticas y funciones en una progresión exponencial .Esto al menos en cuanto a los ordenadores se refiere ,pues  existe una ley conocida como  » Ley de Moore» ,formulada por Gordon E. Moore el 19 de abril de 1965 , que afirma que  aproximadamente cada dos años se duplicará el número de transistores en una computadora ( esto G.E.Moore lo hizo  basándose en  que el número de transistores por pulgada en circuitos integrados se duplicaba cada año ,y que la tendencia continuaría durante las siguientes dos décadas).
Por ejemplo, como pincelada de la caótica situación actual,  basta observar la meteórica evolución en tecnología, carastericticas, prestaciones y precio sufrida por los lectores de DVD: muy sucintamente primero solo reproducían VCD, después vino el DVD, mas  tarde reproducían MP3, luego reproducían MPEG4, XDIV… ¡y  ahora incluyen entradas de USB/SD/MMC, integran receptores de TDT e incluso capturan en  DIVX!

Se observa pues, que en tecnología, es muy difícil obtener productos estables finales, ya  que el mercado esta ofreciendo muy rápidamente productos que compiten constantemente en prestaciones y precio de un modo que nos sorprende especialmente por el ritmo de crecimiento al que lo hacen. Precisamente por esta razón, quizás se haga interesante en lugar de disponer de tantos aparatos o dispositivos multimedia  como localizaciones se tengan,  estudiar la forma de rentabilizar su uso  sobre   multitud de localizaciones (en lugar de circunscribirse a la localización física del propio dispositivo).Además dada la  infinidad de  aplicaciones  posibles  para estos dispositivos: entretenimiento multimedia, la video-vigilancia, la retransmisión y descodificación de señales, etc.  , podría ser muy interesante en el ámbito domestico compartir dicho potencial que nos ofrecen   dichos dispositivos  entre las diferentes posibles  localizaciones de la vivienda, para lo cual nada más fácil que retransmitir las señales  de audio y video desde la fuente   a cualquier otro dispositivo capaz de reproducir   estas señales (TV, monitor, proyector, amplificador de audio, etc.)

Lamentablemente para nuestro propósito  se necesitan conexiones físicas dedicadas en el ámbito de  audio y video desde nuestro dispositivo a los   dispositivos reproductores, las cuales en ocasiones no son fáciles de realizar en una vivienda (ya se sabe: instalación de canaletas, tendido cables, inclusión de  cajetines, etc.)
Probablemente el lector aducirá que existen en el mercado transmisores de audio/video inalámbricos en la banda de 2,4G que cumplen este requerimiento. Esta solución si bien corrige ciertas deficiencias ,exigen de un transmisor de  video y audio vía radio  y de tantos receptores dedicados como se necesiten ( lo cual encarece terriblemente el resultado final), pero aun así, al menos en las soluciones comerciales probadas para una recepción perfecta,  exigen en la mayoría de las veces  un alcance visual entre emisor y receptor que no siempre es posible de disponer (y además la transmisión no esta libre de interferencias al cruzar objetos entre ambos extremos)
Precisamente para solucionar este problema, se pensó en una solución cableada, pero no siempre es posible realizar un tendido de audio y video por toda una vivienda… ¿existe pues alguna otra solución  posible?

Efectivamente la existe, pues en la mayoría de las viviendas (ya sea una vivienda individual o un edificio de varias viviendas) existe una distribución de antena  bastante normalizada que por lo general se apoya bien en un amplificador multibanda ( en el caso de una única vivienda) o en varios amplificadores dedicados(en el caso de una instalación colectiva) y desde la salida de estos, apoyándose en tantos distribuidores como sea necesario, se llega hasta cada vivienda y allí nuevamente se montaran tantos distribuidores como se precisen para cubrir las habitaciones necesarias.

Esquema distribución señal antena
Estudiando el caso pormenorizado de una vivienda  aislada (ver ilustración), podemos ver pues que  la distribución del tendido interior de antena se asemeja a una típica distribución en estrella, en la que la inyección de una señal en un nodo terminal  debería  llegar a los otros nodos (siempre que permanezcan a la misma estrella).
De este modo,  sí introducimos una señal  de RF suficiente potente mezclada con la de antena que proviene normalmente de una cabecera, deberían llegar también  ambas señales mezcladas a todas las habitaciones disponibles: así pues tenemos el medio físico para distribuir nuestra señal de audio y video en diferentes localizaciones de la red,  en lo que bien puede considerarse un pequeña red de  de videocable (también llamadas redes CATV).

El modulador de RF  Aurel MAV VHF224

Para implementar nuestra red de audio y video la forma mas simple de realizarla es modulando ambas señales en RF para transmitirlas por el mismo medio de transmisión, el cual  en nuestro caso, será la instalación de antena de la vivienda.
Para nuestro modulador de RF podríamos pensar en circuitos discretos con transistores (en la literatura  técnica existen multitud de éstos), pero normalmente el montaje de estos  requiere de instrumentación para el ajuste que no siempre se dispone.
Modernamente  AUREL  ha irrumpido en el mercado con  un modulo de bajo coste  en SMD perfectamente ajustado y calibrado,style=’COLOR:black’> con alimentación única de +5Vdc y listo  para funcionar: el MAV-VHF-224.
Este circuito hibrido  incorpora un ircuito transmisor de audio y vídeo de alta calidad  muy estable en la frecuencia  con un  destacadísimo  alto rechazo armónico, además operando en la banda de VHF  en el canal 12 a 224.5 MHZ de VHF ,la cual  puede ser recibida con cualquier receptor de TV estándar.
COLOR:black; En cuanto a sus  entradas, admite señal de video compuesto estándar PAL a 1.2 Vpp de nivel, ( admitiendo por tanto en su entrada de video directamente señales de videocámaras, cámaras de vigilancia, etc usando los conectores de salida estándar como RCA y SCART)  y respecto a la señal de audio  esta debe tener un nivel de 1 Vpp  y una impedancia de  100Kohm.

Aspecto del MAV VHF 224

Esquema y conexiones del MAV VHF-224

Amplificador Booster de RF

Lamentablemente dado que la señal entregada por el MAV VHF-224 es demasiado débil (2mW/75ohmios) para atacar directamente una antena de RF, nos deberíamos plantear amplificar la señal de RF,  bien por medio de una etapa de RF, cuyo ajuste puede ser complejo, o  bien a través de un simple circuito de bajo coste  diseñado específicamente para conectarlo a la salida de RF del MAV VHF224.
El citado  CI hibrido AUREL es el MCA-TX,  el cual no requiere de ningún tipo de ajuste, y es capaz de entregar una potencia máxima en antena superior a 50mW (el equivalente a +19dbm, es decir unos 126dB/µV)  sobre 50ohmios  (con una distorsión de intermodulación de 50db) consumiendo unos 100mA.

Aspecto del modulo MCA

patilla función
1 +12 voltios
2 Enabled (poner a +12v para funcionamiento normal)
3 Masa
6 style=’FONT-SIZE: 9.5pt;FONT-FAMILY: Arial’>Entrada VHF (proveniente de la patilla 11 del MAV-VHF224)
7 Masa
10 Masa
13
Masa
15 style=’FONT-SIZE: 9.5pt;FONT-FAMILY: Arial’>Salida VHF

Listado conexiones modulo MCA

Esquema interno modulo MCA

El circuito

Dado que el MAV 224 contiene toda la electrónica necesaria para la constitución de un modulador de RF, tan solo deberemos alimentarlo con 5V estables, y conectar las señales de entrada de audio  y video  a sus terminales.
En cuanto a la fuente de alimentación, utilizaremos una fuente externa ya montada de corriente continua de unos 12 a  15V filtrados y unos 200mA, pues  el precio de esta es considerablemente mas bajo  que sí lo realizamos con componentes discretos. Lógicamente  si la fuente externa es de 5V filtrada y bien estabilizada podemos obviar el montaje de la parte del regulador  de esta (una vez que la hayamos probado y medido esta con un polímetro).

Si decidimos la realización de la fuente de 5v DC , para la regulación de la alimentación  del MAV dado que su consumo no excede de los 90 mA,  bien podemos emplear como circuito regulador un 78L05 de bajo nivel de ruido o bien utilizar un clásico: el 7805 (en ambos casos obtendremos resultados sobresalientes).
Los condensadores tanto en la entrada del regulador  como  a la salida contribuyen a aplanar la tensión de salida y  son bastantes importantes, pues de estos depende en gran medida que la señal RF pueda tener algún tipo de distorsión y ruido inducido.

Se aconseja muy encarecidamente para evitar posibles errores de inversión de polaridad que pudieran estropear el MAV224 a la hora de alimentar el circuito, conectar un diodo de protección en serie con la entrada de la alimentación del circuito.

Respecto a las conexiones del MAV224, conectaremos a masa las patillas 1, 3,  7 y 10  y  la salida de la fuente de 5v a la patilla 5.
En cuanto a las conexiones de audio, dado que la mayoría de las señales de audio son estero, realizaremos un simple mezclador  formado por R1, C1 y C2 con objeto de componer una única señal que atacara directamente al pin2 del MAV.

Tal y como comentamos en la introducción, el MAV acepta una señal directa sin desacoplamiento de video normalizada (máximo 1.2V pp sobre 75 ohmios) por lo que conectaremos  directamente esta al pin 4.
Finalmente la salida de RF  aunque esta específicamente diseñada para atacar una antena (lógicamente con un limitadísimo alcance), dado su  escasa potencia lo dotaremos de una pequeña etapa booster basado en él modulo hibrido MCA de AUREL

En cuanto a la conexión del circuito booster MCA-TX  a nuestro montaje no puede ser más simple:
Conectaremos las patillas 3, 10, 13 a masa, las patas 2 y  1 a +12v  directos (no es necesario que estén estabilizados pero si conveniente que estén bien filtrados), a través de un circuito  LC   formados por L1y C4/C6, conectando después la salida del MAV-VHF (patilla 11) a la patilla 6 del MCA y finalmente conectaremos a la patilla de salida  15 del MCA a través de un modo un tanto atípico (pero que funciona a la perfección)   al  activo de  la toma de antena colectiva a través de un condensador de desacople sin conexión de masa  (es muy importante obviar la masa en este caso pues los  resultados serán bastante mejores)

Como ultima nota importante, cabe destacar, que si no disponemos  de cableado interior de antena,  el resultado no es satisfactorio si conectamos el activo de la salida de RF a la citada toma de antena, o simplemente no nos  atrevemos a realizar la conexión directa, dada  la gran potencia de salida del MCA, se puede utilizar este montaje en «modo antena exterior».
Para realizar este montaje utilizaremos el mismo circuito eliminando el condensador de desacople de la salida del booster MCA e instalaremos a la salida  del MCA una pequeña antena de al menos 33cm vertical (puede construirse con una pequeña varilla telescópica ajustada a esa altura o bien simplemente  utilizar un trozo de hilo de cobre rígido)
Lógicamente  los resultados serán mejores si empleamos  antenas «mayores» como puede ser una de 65cm, una de cuernos e incluso una directiva  del tipo Yagui: el resultado final dependerá de las condiciones de trabajo y del entorno (esta claro que estos problemas quedarían minimizados sí lo hacemos a través de una conexión directa)

Lista de componentes

R1 100k ajustable
R2 220ohmios 1/4W (opcional)
C1, C2 22Kpf /100v poliester
C5, C6 100nF/25V poliester
C7 100KpF/100V
L1 Inductancia VK200
D1 diodo silicio 1N4148
D2 diodo LED (opcional)
U1 circuito hibrido MAV-VHF224 (*)
U2 circuito regulador 7805
U3 circuito hibrido MCA (*)
Varios:
2 plaquita circuito impreso premecanizada de fibra de vidrio
4 conectores RCA hembra
1 jack hembra de 3 ½ «(según la salida de transformador de 12v)
1 pequeño transformador que de unos 12v DC 250mA
1 radiador de 20º /W (por ejemplo uno  típico para T03)
(*) Si se tiene dificultad en conseguir estos circuitos híbridos, estos componentes están disponibles en la Web de COELMA (http://www.coelma.es)

Montaje

Dada la gran sencillez del circuito, al integrar toda la electrónica necesaria en el interior del circuito hibrido, solo deberemos realizar  la fuente de  alimentación de unos 100mA /5V estabilizados  en un circuito aparte (quizás el lector la pueda reciclar de algún otro proyecto en desuso) y las conexiones del MAV hacia el exterior, por lo que no se hace necesario la utilización de placas de  circuito impreso especificas para el proyecto (aunque se adjunta diseño de estas).

Dada la extrema sencillez y dado que es posible adquirir aparte esta, se aconseja si se requiere   realizar la fuente de alimentación aparte, realizarla en un pequeño trozo de circuito impreso para prototipos teniendo especial cuidado de la serigrafía del regulador (recuerde a la izquierda es la entrada de 12v, el centro la masa y a la derecha la salida de 5v)  y la polaridad de los dos condensadores electrolíticos.
Lógicamente el uso del diodo Led es opcional, aunque conveniente, sobre todo si se desea tener una indicación visual de que el circuito esta funcionando.

Una vez montada la fuente de alimentación la probaremos con un polímetro y procederemos a realizar el resto del circuito en una pequeña plaquita aparte en la que montaremos el MAV.
>Dado lo  frágil de las conexiones del MAV, con objeto de no dañar las patillas se aconseja la utilización de un zócalo de una fila de 12 pines (o recortar uno mas largo hasta lo necesario)
Realizadas  las conexiones de la alimentación al MAV, tan solo hace falta las conexiones de audio /video (desde las cuales se pueden realizar directamente desde el zócalo hasta los propios conectores) y la conexión de salida del MAV a la entrada del MCA.
Por simplicidad  con objeto de no mezclar  módulos y dado que es conveniente el uso de un radiador para el modulo MCA, es interesante realizar las conexiones de este aparte en una pequeña plaquita aparte.
En esta plaquita una vez montado el circuito hibrido, realizaremos la citada conexión de RF a través de un cable coaxial de 75ohmios desde el pin 11 de salida del MAV al pin 6 de entrada de RF del MCA
Después realizaremos las conexiones de masa (PINES 3, 7,10 y 13), conectaremos las conexiones de 12v   (pines 1 y 2) a través de un choque   VK200 y finalmente conectaremos   a través de un condensador de desacople   la salida de RF.
Respecto al MCA, se aconseja conectar un pequeño disipador de 10 a 20º/W y conectar a masa la aleta metálica de esta (lógicamente con cuidado de que no toque los otros pines del c.hibrido)

Por ultimo elegiremos un contenedor de plástico suficientemente ventilado y espacioso para albergar adecuadamente el circuito.
En este fijaremos las placas adecuadamente y practicaremos  5 orificios para albergar las dos conexiones RCA de audio, una para un RCA de video,  un RCA de RF y por ultimo un jack de alimentación.
Finalmente soldaremos los condensadores de desacople de audio y de salida de RF directamente sobre los jack (un extremo ira al RCA y otro ira al coaxial que va a las palcas)

Modo de empleo usando la salida de video de un PC

Normalmente tenemos conectado a nuestro ordenador un monitor  que actúa  como el principal mostrándose en este  el cuadro de diálogo de inicio de sesión al iniciar el equipo (además, casi todos los programas mostrarán ventanas en el monitor principal cuando las abre inicialmente), pero se  pueden seleccionar diferentes resoluciones de pantalla y diferentes configuraciones de calidad de color en cada monitor. Por lo tanto se pueden  conectar varios monitores con adaptadores de vídeo individuales o con un solo adaptador de vídeo que admita varias salidas. Para configurar la organización de varios monitores lo haremos siguiendo los siguientes pasos:

1. Haga clic en Inicio y, a continuación, en el Panel de control.
2. Haga clic en Apariencia y temas y, después, haga clic en Pantalla.
3. En la ficha Configuración, haga clic en Identificar para mostrar un número grande en cada uno de los monitores. Indica qué monitor corresponde a cada icono.
4. Haga clic en los iconos del monitor y arrástrelos a las posiciones que representan cómo quiere mover los elementos de un monitor a otro y, después, haga clic en Aceptar o en Aplicar para ver los cambios.

NOTA: las posiciones de los iconos determinan cómo mover los elementos de un monitor a otro. Por ejemplo, si está utilizando dos monitores y quiere mover los elementos de un monitor a otro arrastrándolos a izquierda y derecha, coloque los iconos uno al lado del otro. Para mover elementos entre monitores arrastrándolos arriba y abajo, coloque los iconos uno encima del otro. Las posiciones de los iconos no tienen que corresponderse con las posiciones físicas de los monitores. Puede poner los iconos uno encima del otro aunque los monitores estén situados uno al lado del otro.
5-Seleccione el monitor secundario  una Resolución baja (640 x480)   y una calidad de color de 8 bits y pulse en la pestaña «Extender el escritorio de Windows a este monitor», aplique y acepte los cambios.

6-A partir de este momento puede arrastrar a la derecha del monitor cualquier ventana y pasara a ser reproducida en el monitor secundario (y por tanto no en el principal)

Una vez conectadas  tanto la salida de audio y video de nuestro  ordenador, el activo de la salida de RF a la toma de antena y alimentado el circuito, se trata de sintonizar su TV en  el canal 12 en su TV o  bien sintonizar manualmente este en la frecuencia de 224,5 Mhz: en ambos casos deberá ver una  imagen en color con perfecta nitidez.

Carastericticas  del circuito

Tensión de alimentación: 12V DC
Corriente absorbida: 200mA
Portadora de video: 224,5MHZ(+-75Khz)
Subportadora de audio: 5.5Mhz(+-70khz)
Modulación de video: amplitud negativa PAL en banda base
Sensibilidad de entrada de video: 1.2Vpp como máximo
Sensibilidad de entrada de audio: 1Vpp
Impedancia de entrada de audio: 100k
Potencia de RF de salida (50ohmios): +19dBm

Placas circuito impreso y diagrama de conexiones

Placa Fuente y modulador de RF(Lado componentes)
Lista componnetes  Modulador RF

C4= 470mF/16V,
C6= 22nF,
U1=MAVVHF224,
U2=7805,
C5=0,22mf/16V
,C6=10nF,
P1=100K vertical

Lado circuito impreso

Placa Booster

Lista Componentes  Booster:
U1=MCA-TX,
L1=VK200

Lado circuito impreso

PLANO DE CONEXIONES

Alternativas y mejoras al montaje propuesto

Aunque  el circuito se ha pensado para conectar la salida de la tarjeta de audio y video de un PC o una  cámara de videovigilancia con audio   a las entradas del MAV, nada impide que las fuentes procedan de un  Euroconector (perteneciente a un video, receptor de satélite, receptor de TDT, reproductor de  DVD, etc.)

Respecto al video, dado que la señal de  video presente el   pin 19 es una señal de video normalizada, tan solo habría que conectarla al pin4 del MAV directamente (tal y como se explico en la introducción)

Respecto al audio desgraciadamente en algunos casos la señal entregada por ambos canales (pines 1, 3 y masa 4) podría ser demasiado baja y por tanto  habría que aumentar el nivel de estos  con un amplificador operacional.
En este caso Aurel nos propone el esquema de mas abajo  con un A.O., en el que,  dado que hay dos señales de audio, se ha diseñado el circuito en modo sumador inversor de dos canales cuya salida se pude ajustar desde  una ganancia  de 2 hasta aproximadamente 12 a través de P1
Esto lo vemos aplicando el concepto de tierra virtual, la tensión máxima de salida cuando p1 ofrezca su máxima resistencia (p1=220k) será:
Vout= VR*(47k+220k)/22k  +VL*(47k+220k)/22k=(VR+VL)* (47k+220k)/22k =12.1*(VR+VL)