- Explication de travail:
- Composants requis:
- Schéma:
- Utilisation du module émetteur-récepteur sans fil nRF24L01 +:
- Programmation des Arduinos:
- Programme de traitement:
- Essai:
Créer un réseau local pour partager le personnel et les données confidentielles est devenu presque impossible pour un homme ordinaire dans notre monde moderne. C'est principalement parce que toutes les méthodes de chat courantes comme Whatsapp, Facebook, Hangout et presque tout impliquent une connexion Internet.
Et si nous pouvions partager des données sans le support d'Internet ?
À quel point ce serait cool si vous pouviez communiquer avec des personnes à l'intérieur de votre maison ou de votre lieu de travail sans un pack réseau ou une connexion Internet?
Et si nous pouvions personnaliser notre écran de discussion avec notre propre imagination?
Tout cela est possible avec un microcontrôleur et un support de transmission sans fil. Cette salle de discussion Arduino utilisant le projet nRF24L01 vous guidera dans la configuration d'une salle de discussion à faible coût dans votre région.
Alors allons-y et voyons comment cela fonctionne.
Explication de travail:
Fondamentalement, pour que cela fonctionne, nous aurons besoin d'une paire de cartes Arduino et de modules sans fil bon marché. Les modules sans fil que nous utiliserons ici sont nRF24L01. La raison du choix de ces modules est que ce sont les successeurs de Zigbee et qu'il est facile de travailler avec une connexion configurée. De plus, ces modules fonctionnent sur 2,4 GHz (bande ISM) avec des options de spectre étalé à sauts de fréquence et de salve de choc, ce qui nous permet de nous détendre face aux problèmes d'interférence.
Notre Arduino et NRF24L01 sont connectés ensemble pour établir une communication série afin qu'ils puissent se parler. Les NRF24L01 sont des modules émetteurs-récepteurs semi-duplex, ils peuvent donc envoyer et recevoir des données. Les données sont collectées auprès de l'utilisateur et transmises ces données peuvent être reçues par n'importe quel (ou un module particulier) et l'afficher sur leur écran.
Mais!!!!! Allons-nous discuter en utilisant l'écran de débogage d'Arduino? Bien sûr que non. Nous allons créer et personnaliser notre propre écran de discussion avec l'aide de «Traitement». Le traitement est un logiciel capable de communiquer avec l'Arduino en utilisant UART. Nous allons créer un fichier.exe avec le langage de traitement, qui pourrait fonctionner sur n'importe quel ordinateur avec Java Runtime. Pour discuter, il suffit de brancher notre Arduino et d'ouvrir ce fichier.exe, et Booooom !! nous sommes dans notre propre chat-room privatisé totalement gratuit.
Ce projet se limite à simplement ajouter deux membres à la salle de chat, mais le nRF24L01 a 6 pipelines, et il pourrait donc y avoir un maximum de 6 membres dans notre salle de chat. Cette salle de caractères peut fonctionner dans une plage de 100 mètres selon les modules nRF24L01.
Alors allons faire du shopping !!!!
Composants requis:
- Arduino (toute version ou modèle) - 2Nos
- Module émetteur-récepteur sans fil nRF24L01 + - 2Nos
- 3.3 Régulateur de tension - 2Nos. (Pas obligatoire)
- Fils de connexion
- Intérêt (Lolz)
Schéma:
Arduino Mega avec nRF24L01:
Arduino Nano avec nRF24L01:
Notre projet n'implique aucune connexion complexe. J'ai utilisé un Arduino Mega et un Arduino Nano et leurs connexions avec nRF24L01 sont illustrées ci-dessus. Vous pouvez utiliser tous les modèles Arduino.
Utilisation du module émetteur-récepteur sans fil nRF24L01 +:
Cependant, pour que notre nRF24L01 fonctionne sans bruit, nous pourrions vouloir considérer les choses suivantes. Je travaille sur ce nRF24L01 + depuis longtemps et j'ai appris que les points suivants peuvent vous aider à ne pas être touché par un mur.
1. La plupart des modules nRF24L01 + du marché sont faux. Les moins chers que nous pouvons trouver sur Ebay et Amazon sont les pires (ne vous inquiétez pas, avec quelques ajustements, nous pouvons les faire fonctionner)
2. Le problème principal est l'alimentation et non votre code. La plupart des codes en ligne fonctionneront correctement, j'ai moi-même un code fonctionnel que j'ai personnellement testé, faites-moi savoir si vous en avez besoin.
3. Faites attention car les modules imprimés en tant que NRF24L01 + sont en fait Si24Ri (Oui, un produit chinois).
4. Les modules clone et faux consommeront plus d'énergie, ne développez donc pas votre circuit d'alimentation basé sur la fiche technique nRF24L01 +, car Si24Ri aura une consommation de courant élevée d'environ 250 mA.
5. Méfiez-vous des ondulations de tension et des surtensions, ces modules sont très sensibles et peuvent facilement brûler. (;-(frit jusqu'à 2 modules jusqu'à présent)
6. L'ajout d'un couple de condensateurs (10 uF et 0,1 uF) à travers Vcc et Gnd du module aide à rendre votre alimentation pure et cela fonctionne pour la plupart des modules.
Si vous rencontrez des problèmes, signalez-le dans la section des commentaires ou lisez ceci.
Programmation des Arduinos:
Le programme pour Arduino Nano et Mega sera similaire pour le changement des broches CE et CS. Je vais expliquer le programme en le divisant en petits segments.
Depuis que l'Arduino et le nRF24L01 communiquent via le SPI, nous avons fait appel à la bibliothèque SPI. Nous avons également inclus notre bibliothèque Maniacbug RF24 pour que nos modules RF fonctionnent. Téléchargez le fichier à partir d'ici et ajoutez-les à votre IDE.
#comprendre
Nos modules NRF sont connectés respectivement aux broches 8 et 10 à CE et CS.
RF24 myRadio (8, 10);
Nous créons un package de données structurées appelé package . Le texte variable sera utilisé pour transmettre des données en ondes.
struct package {char text; // Texte à transmettre à l'antenne}; typedef struct package Package; Données du package;
Dans la fonction void setup () , nous initialisons le débit en bauds à 9600 et configurons nos modules à 115 avec une consommation d'énergie MIN et une vitesse de 250KBPS. Vous pouvez manipuler ces valeurs plus tard.
void setup () {Serial.begin (9600); retard (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // 115 bande au-dessus des signaux WIFI myRadio.setPALevel (RF24_PA_MIN); // Puissance MIN basse rage myRadio.setDataRate (RF24_250KBPS); // Vitesse minimale}
Le module est conçu pour fonctionner en mode transmission si les données sont reçues via le tampon série, sinon il sera en mode récepteur à la recherche de données à l'antenne. Les données de l'utilisateur sont stockées dans un tableau de caractères et envoyées à WriteData () pour les transmettre.
void loop () {while (Serial.available ()> 0) // Récupère les valeurs de l'utilisateur {val = Serial.peek (); if (index <19) // Un de moins que la taille du tableau {inChar = Serial.read (); // Lire un caractère inData = inChar; // Stockez-le index ++; // Incrémenter où écrire le prochain inData = '\ 0'; // Null termine la chaîne} if (val == '#') {strcpy (data.text, inData); WriteData (); // Mettre le module en mode transmission while (index! = 0) {inData = ''; indice--; }}} ReadData (); // Mettre le module en mode réception}
La fonction void WriteData () écrit les données sur l'adresse 0xF0F0F0F0AA, cette adresse est utilisée comme tube d'écriture sur un autre module.
void WriteData () {myRadio.stopListening (); // Arrêter la réception et démarrer la transmission myRadio.openWritingPipe (0xF0F0F0F066); // Envoie des données sur cette adresse 40 bits myRadio.write (& data, sizeof (data)); retard (300); }
La fonction void ReadData () écrit les données sur 0xF0F0F0F066 cette adresse, cette adresse est utilisée comme tube de lecture sur un autre module.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Quel tube à lire, 40 bits Address myRadio.startListening (); // Arrêtez la transmission et démarrez la réévaluation if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
Voilà, notre partie programmation est terminée. Si vous ne pouvez pas comprendre peu de choses ici, vérifiez les deux programmes pour les deux Arduinos, donnés dans la section Code ci-dessous, j'ai ajouté des lignes de commentaires pour mieux expliquer les choses.
Programme de traitement:
«Processing» est un logiciel open source utilisé par les artistes pour la conception graphique. Ce logiciel est utilisé pour développer des logiciels et des applications Android. Il est assez facile à développer et très similaire à l'IDE de développement Android. C'est pourquoi j'ai raccourci l'explication.
Le code de traitement des deux écrans de discussion est indiqué ici:
- Code de traitement de l'écran de discussion 1
- Code de traitement de l'écran de discussion 2
Faites un clic droit dessus et cliquez sur «Enregistrer le lien sous..» pour les télécharger et les ouvrir sur votre ordinateur après avoir configuré les Arduinos. Vous devez installer le logiciel «Traitement» pour ouvrir ces fichiers *.pde, puis les «exécuter» pour ouvrir les boîtes de discussion. La section des commentaires est ouverte aux requêtes. Le schéma de traitement du module émetteur et récepteur est identique.
Dans la section de code ci-dessous, le "port = new Serial (this, Serial.list (), 9600); // Lit le 4ème PORT à 9600 baudrate" est important car il décide du port à partir duquel les données.
void setup () {size (510 500); port = new Serial (this, Serial.list (), 9600); // Lit le 4ème PORT à 9600 baudrate println (Serial.list ()); arrière-plan (0); }
Ici, j'ai lu les données du 4ème port de mon Arduino.
Donc, par exemple si vous avez COM COM COM COM COM
Ensuite, le code ci-dessus lira les données de COM.
Essai:
Maintenant que notre croquis de traitement et Arduino est prêt, téléchargez simplement le programme sur Arduino et laissez-le branché sur votre ordinateur portable. Ouvrez votre croquis de traitement et commencez à taper et appuyez sur "Entrée". Votre message sera transmis à l'autre Arduino qui affichera le texte reçu sur une autre application de traitement connectée à un autre ordinateur. Consultez la vidéo ci-dessous pour une démonstration complète.
Donc, voici comment vous pouvez parler à vos amis et à votre famille dans votre région sans avoir de connexion Internet, en utilisant cette salle de discussion Arduino peu coûteuse.