- Explicación de trabajo:
- Componentes requeridos:
- Diagrama de circuito:
- Trabajando con el módulo transceptor inalámbrico nRF24L01 +:
- Programando los Arduinos:
- Programa de procesamiento:
- Pruebas:
Crear una red local para compartir personal y datos confidenciales se ha vuelto casi imposible para un hombre común en nuestro mundo moderno. Esto se debe principalmente a que todos los métodos de chat comunes como Whatsapp, Facebook, Hangout y casi todo implican una conexión a Internet.
¿Y si pudiéramos compartir datos sin el medio de Internet ?
¿Qué tan genial sería si pudiera comunicarse con las personas dentro de su casa o lugar de trabajo sin un paquete de red o conexión a Internet?
¿Y si pudiéramos personalizar nuestra pantalla de chat con nuestra propia imaginación?
Todo esto es posible con un microcontrolador y un medio de transmisión inalámbrico. Esta sala de chat Arduino que utiliza el proyecto nRF24L01 le guiará en la configuración de una sala de chat de bajo costo en su área local.
Así que entremos y veamos cómo funciona.
Explicación de trabajo:
Básicamente, para que esto funcione, necesitaremos un par de placas Arduino y módulos inalámbricos baratos. Los módulos inalámbricos que usaremos aquí son nRF24L01. La razón para elegir estos módulos es que son los sucesores de Zigbee y es fácil trabajar con una conexión configurada. Además, estos módulos funcionan en 2,4 GHz (banda ISM) con opciones de espectro ensanchado por salto de frecuencia y ráfaga de choque, lo que nos hace sentir relajados ante los problemas de interferencia.
Nuestro Arduino y NRF24L01 están conectados entre sí para establecer una comunicación serial para que puedan hablar entre ellos. Los NRF24L01 son módulos transceptores semidúplex, por lo que pueden enviar y recibir datos. Los datos se recopilan del usuario y se transmiten estos datos pueden ser recibidos por cualquier módulo (o uno en particular) y mostrarlo en su pantalla.
¡¡¡¡¡Pero!!!!! ¿Vamos a chatear usando la pantalla de depuración de Arduino? Por supuesto no. Vamos a construir y personalizar nuestra propia pantalla de chat con la ayuda de "Procesamiento". Processing es un software que es capaz de comunicarse con Arduino usando UART. Crearemos un archivo.exe con lenguaje de procesamiento, que podría ejecutarse en cualquier computadora con Java Runtime. Para chatear solo tenemos que conectar nuestro Arduino y abrir este archivo.exe, y ¡¡Booooom !! estamos en nuestra propia sala de chat totalmente gratuita y privatizada.
Este proyecto se limita a agregar dos miembros a la sala de chat, pero el nRF24L01 tiene 6 Pipelines, por lo que podría haber un máximo de 6 miembros en nuestra sala de chat. Esta sala de carbón puede funcionar dentro del rango de 100 metros dependiendo de los módulos nRF24L01.
¡¡¡Así que vamos de compras !!!!
Componentes requeridos:
- Arduino (cualquier versión o modelo) - 2Nos
- nRF24L01 + Módulo transceptor inalámbrico - 2Nos
- 3.3 Regulador de voltaje - 2Nos. (No es obligatorio)
- Cables de conexión
- Interés (lolz)
Diagrama de circuito:
Arduino Mega con nRF24L01:
Arduino Nano con nRF24L01:
Nuestro proyecto no implica conexiones complejas. He usado un Arduino Mega y un Arduino Nano y sus conexiones con nRF24L01 se muestran arriba. Puede utilizar cualquier modelo de Arduino.
Trabajando con el módulo transceptor inalámbrico nRF24L01 +:
Sin embargo, para que nuestro nRF24L01 funcione sin ruido, es posible que deseemos considerar las siguientes cosas. He estado trabajando en este nRF24L01 + durante mucho tiempo y aprendí que los siguientes puntos pueden ayudarlo a no ser golpeado contra una pared.
1. La mayoría de los módulos nRF24L01 + del mercado son falsos. Los baratos que podemos encontrar en Ebay y Amazon son los peores (No te preocupes, con pocos retoques podemos hacerlos funcionar)
2. El principal problema es la fuente de alimentación, no su código. La mayoría de los códigos en línea funcionarán correctamente, yo mismo tengo un código de trabajo que probé personalmente, avíseme si los necesita.
3. Preste atención porque los módulos impresos como NRF24L01 + son en realidad Si24Ri (sí, un producto chino).
4. Los módulos clon y falsos consumirán más energía, por lo tanto, no desarrolle su circuito de energía basado en la hoja de datos nRF24L01 +, porque Si24Ri tendrá un alto consumo de corriente de aproximadamente 250 mA.
5. Tenga cuidado con las fluctuaciones de voltaje y las sobrecargas de corriente, estos módulos son muy sensibles y pueden quemarse fácilmente. (;-(frito 2 módulos hasta ahora)
6. Agregar un par de condensadores (10uF y 0.1uF) a través de Vcc y Gnd del módulo ayuda a que su suministro sea puro y esto funciona para la mayoría de los módulos.
Aún así, si tiene problemas, informe en la sección de comentarios o lea esto.
Programando los Arduinos:
El programa para Arduino Nano y Mega será similar para el cambio en los pines CE y CS. Explicaré el programa dividiéndolo en pequeños segmentos.
Dado que Arduino y nRF24L01 se comunican a través de SPI, hemos solicitado la biblioteca SPI. También hemos incluido nuestra biblioteca Maniacbug RF24 para que funcionen nuestros módulos de RF. Descargue el archivo desde aquí y agréguelos a su IDE.
#incluir
Nuestros módulos NRF están conectados a los pines 8 y 10 a CE y CS respectivamente.
RF24 myRadio (8, 10);
Creamos un paquete de datos estructurados llamado paquete . El texto variable se utilizará para transmitir datos al aire.
estructura paquete {texto char; // Texto para transmitir al aire}; paquete estructura typedef Paquete; Datos del paquete;
En la función void setup () , inicializamos la velocidad en baudios a 9600 y configuramos nuestros módulos a 115 con un consumo de energía MIN y una velocidad de 250KBPS. Puede jugar con estos valores más tarde.
configuración vacía () {Serial.begin (9600); retraso (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // 115 bandas por encima de las señales WIFI myRadio.setPALevel (RF24_PA_MIN); // MIN potencia baja rabia myRadio.setDataRate (RF24_250KBPS); // Velocidad mínima}
El módulo está diseñado para funcionar en modo de transmisión si los datos se reciben a través del búfer serial, de lo contrario, estará en modo receptor buscando datos en el aire. Los datos del usuario se almacenan en una matriz de caracteres y se envían a WriteData () para transmitirlos.
void loop () {while (Serial.available ()> 0) // Obtener valores del usuario {val = Serial.peek (); if (índice <19) // Uno menos que el tamaño de la matriz {inChar = Serial.read (); // Leer un carácter inData = inChar; // Almacenarlo index ++; // Incrementar dónde escribir a continuación inData = '\ 0'; // Nulo termina la cadena} if (val == '#') {strcpy (data.text, inData); WriteData (); // Ponga el módulo en modo de transmisión while (index! = 0) {inData = ''; índice--; }}} ReadData (); // Poner el módulo en modo de recepción}
La función void WriteData () escribe los datos en la dirección 0xF0F0F0F0AA, esta dirección se utiliza como tubería de escritura en otro módulo.
void WriteData () {myRadio.stopListening (); // Deje de recibir y comience a transmitir myRadio.openWritingPipe (0xF0F0F0F066); // Envía datos en esta dirección de 40 bits myRadio.write (& data, sizeof (data)); retraso (300); }
La función void ReadData () escribe los datos en 0xF0F0F0F066 esta dirección, esta dirección se usa como tubería de lectura en otro módulo.
vacío ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Qué canalización leer, 40 bits Dirección myRadio.startListening (); // Detener la transmisión y comenzar a Revelar if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
Eso es todo, nuestra parte de programación ha terminado. Si no puede entender algunas cosas aquí, verifique los dos programas para ambos Arduinos, que se encuentran en la sección de Código a continuación, agregué líneas de comentarios para explicar las cosas mucho mejor.
Programa de procesamiento:
'Processing' es un software de código abierto que utilizan los artistas para el diseño de gráficos. Este software se utiliza para desarrollar software y aplicaciones de Android. Es bastante fácil de desarrollar y muy similar al IDE de desarrollo de Android. Por tanto, he acortado la explicación.
El código de procesamiento para ambas pantallas de chat se proporciona aquí:
- Código de procesamiento de la pantalla de chat 1
- Código de procesamiento de la pantalla de chat 2
Haga clic derecho sobre ellos y haga clic en 'Guardar enlace como…' para descargarlos y abrirlos en su computadora después de configurar los Arduinos. Necesita instalar el software 'Processing' para abrir estos archivos *.pde y luego 'Ejecutarlos' para abrir los Chat Box. La sección de comentarios está abierta para consultas. El esquema de procesamiento para el módulo transmisor y receptor son idénticos.
En la sección de código a continuación, el "puerto = nuevo Serial (este, Serial.list (), 9600); // Lee el 4º PUERTO a 9600 baudios" es importante ya que decide desde qué puerto a los datos.
configuración vacía () {tamaño (510,500); puerto = nuevo Serial (este, Serial.list (), 9600); // Lee el 4º PUERTO a 9600 baudios println (Serial.list ()); fondo (0); }
Aquí he leído datos del cuarto puerto de mi Arduino.
Entonces, por ejemplo, si tiene COM COM COM COM COM
Luego, el código anterior leerá datos de COM.
Pruebas:
Ahora que nuestro bosquejo de Procesamiento y Arduino está listo, simplemente cargue el programa en Arduino y déjelo enchufado en su computadora portátil. Abra su boceto de procesamiento y comience a escribir y presione "Enter", su mensaje se transmitirá al otro Arduino que mostrará el texto recibido en otra aplicación de procesamiento conectada a otra computadora. Consulte el video a continuación para ver una demostración completa.
Entonces, así es como puede hablar con sus amigos y familiares en su área local sin tener ninguna conexión a Internet, utilizando esta sala de chat Arduino de bajo costo.