Que se passe-t-il là-bas? Modules 433Mhz

Salut ensemble,

aujourd'hui, j'aimerais à vous la contribution dernière pour l'instant de la rangée "qu'Est-ce qui fonctionne donc là ?" présentent. Nous commençons par un espace de radio primitif entre deux UNOs. En plus, nous utilisons l'un 433Mhz assortiment de notre boutique on-line avec à deux contrôleurs de gestion. Vous trouvez E-Book aux modules de radio ici.Nous relevons les modules d'abord simplement sur Unos, comme dans l'image de manière montrée :

Généralement ce n'est pas à faire conseillé 433Mhz modules sur Steckbrett là le métal contenu en cela le signal répand ou dérange, mais sur le sujet Dérangements, nous venons parler encore.

L'idée derrière les sketches suivants est transmettre un simple signal de High sur 433Mhz modules d'envoyant à ONU recevant. Nous commençons par le code pour l'émetteur :

int data = 7;

void setup(){
 Serial.begin(9600);
 pinMode(LED_BUILTIN, SORTIE);
 pinMode(5, SORTIE); 
 digitalWrite(5, LOW); //Si nous utilisons comme GND
 pinMode(6, SORTIE);
 digitalWrite(6, HIGH); //Si nous utilisons comme VCC
 pinMode(data, SORTIE); 
 digitalWrite(data, LOW);  //Pour les données
}

void loop() {            digitalWrite(data, LOW);   digitalWrite(LED_BUILTIN, LOW);   delay(1000);   digitalWrite(data, HIGH);   digitalWrite(LED_BUILTIN, HIGH);   delay(1000);
}

Dans nos contributions préalables, nous avons montré, comme on aménage DVB-T le Brode comme SDR sur Raspberry et GQRX à l'installé. Maintenant, nous sommes de cette solution entre-temps un peu entwachsen et utilisons dans cet exemple SDR# sous Windows.

Comme nous voient tout à fait bien de manière fonctionnée notre sketch et fait qu'il doit. Maintenant, nous nous occupons du code pour le récepteur :

int data = 5;

void setup(){
 Serial.begin(9600);
 pinMode(LED_BUILTIN, SORTIE);
 pinMode(4, SORTIE); 
 digitalWrite(4, LOW); //Si nous utilisons comme GND
 pinMode(data, ENTREE); 
 digitalWrite(data, LOW);  //Pour les données
 pinMode(7, SORTIE);
 digitalWrite(7, HIGH); //Si nous utilisons comme VCC
}

void loop() {     //met à l'entrée de signal LED sur High   digitalWrite(LED_BUILTIN,digitalRead(data));   delay(50);
}

Si est le code nous devions transmettre à chaque signal de High de l'émetteur le fait de s'allumer LED internes du récepteur enregistrent. Malheureusement cela ne marche pas du tout, comme vous à imitez de ce projet pourraient constater.

Cela a beaucoup de causes à quoi je ne veux pas arriver, cependant, plus près autour du cadre de cette contribution non faire sauter. Pour cette raison, nous cherchons Libary les corrections de faute contient et nous peut transmettre sûrement les données plus complexes qu'High Low primitif le signal. La solution pour ce problème est le successeur de VirtualWire Libary : RadioHead

Vous savez cette bibliothèque après lui Téléchargement sur la fonction contenue dans IDE "*.zip la bibliothèque ajoutent"

Nous utilisons une version facilement modifiée d'ask_receiver et ask_transmitter pour notre exemple.

Pour ne pas devoir changer Pins dans RH_Ask.h aussi encore, nous câblons immédiatement à neuf nos Unos. Pins prédéfinis dans Libary sont couverts comme c'est indiqué plus loin :

433-module Receiver d'ONU Transmitter d'ONU
VCC 5 V 5 V
GND GND GND
DATA 11 12

 

Le code pour l'émetteur :

#include <RH_ASK.h>
#include <SPI.h> //Nécessité actually used but needed to compile

RH_ASK driver;

void setup()
{     Serial.begin(9600);     if (!driver.init())          Serial.println("init failed");
}

void loop()
{     const char *msg = "Résultats des mesures"; //nouvelle à transmettre.     driver.envoie((uint8_t *)msg, strlen(msg));     driver.waitPacketSent();     delay(200);
}

 

Le code pour le récepteur :

#include <RH_ASK.h>
#include <SPI.h> //Nécessité actualy used but needed to compile

RH_ASK driver;

void setup()
{     Serial.begin(9600); //Debugging only     if (!driver.init())          Serial.println("init failed");
}

void loop()
{     uint8_t buf[9]; //Format de la nouvelle à recevoir     uint8_t buflen = sizeof(buf);     if (driver.recv(buf, &buflen)) //Non-blocking     {       int i;       //Message with a good checksum received, dump it.       Serial.print("Le message :");       Serial.println((char*)buf);              }
} Dans le moniteur en série du récepteur, nous voyons la dépense :

Beaucoup de plaisir lors du bricolage & jusqu'à la prochaine fois :)

Amateurfunk (amateurfunk)Für arduinoProjekte für anfänger

Laisser un commentaire

Tous les commentaires sont modérés avant d'être publiés