Nous allons créer un système pour envoyer un chiffre par les ondes radios entre deux attiny85.
Pour cela nous allons envoyer depuis un premier attiny85 (le transmetteur) le message "1234" en appuyant sur un bouton.
Lorsque le deuxième attiny85 (le récepteur) recevra ce message ,il allumera une LED.
Voilà un schéma explicatif

Matériel
- 2 Attiny85
- 2 Breadboard
- 1 Émetteur Radio
- 1 Récepteur Radio
- 1 Bouton Tactile
- 1 Led
- 1 Résistance (par ex 1kOhm)
- 1 Arduino
Programmation des attiny85
Avant tout chose, vous devez apprendre à programmer un attiny85
Voici mon tutoriel expliquant comment programmer un attiny85 avec un arduino
http://forum.snootlab.com/viewtopic.php?f=38&t=772&p=3693
Schéma de montage

Pour vérifier si le transmetteur envoie bien des données quand vous appuyez sur le bouton, vous pouvez mettre une led (avec une résistance) entre la broche 0 (data) de l'attiny85 et la terre (Gnd).
Pour alimenter les attiny85 en 5V, vous pouvez utiliser l'arduino ou une pile ou un câble usb
Ajouter la bibliothèque : MANCHESTER
Pour communiquer entre les deux attiny85, nous allons utiliser la bibliothèque MANCHESTER
Vous pouvez consulter la documentation ici
Et le télécharger ici
Il vous suffit d'extraire l'archive dans arduino-1.0.1/libraries
Puis de le renommer Manchester.
Programmation du Récepteur
- Code: Tout sélectionner
//Test de Récepteur Radio 433.92Mhz Attiny85
//Par Sarrailh Rémi
//Domaine Publique
// Attiny85 (5v)
// -------
// |0 -|
// |1 3|
// |2 4|
// |+ o|
// -------
//Ajout de la bibliothèque Manchester
#include <MANCHESTER.h>
//Définition des broches pour chaque composants
int dataPin = 0; //Data du Récepteur
int ledPin = 1; //+ de la LED
void setup()
{
//Mettre la led sur la broche 0
pinMode(ledPin, OUTPUT);
//Allume la led 1 secondes au démarrage
digitalWrite(ledPin, HIGH);
delay(1000);
//Eteins la led
digitalWrite(ledPin, LOW);
// Mettre le récepteur sur la broche 1
MANRX_SetRxPin(dataPin);
// Préparation de la réception des données
MANRX_SetupReceive();
// Lancement de la réception des données
MANRX_BeginReceive();
}
void loop()
{
//Si les données sont lisibles
if (MANRX_ReceiveComplete())
{
//Récupère le message (en int)
unsigned int data = MANRX_GetMessage();
MANRX_BeginReceive();
//Si le message est égale à 1234
if (data == 1234)
{
//Active la led pendant 1 secondes
digitalWrite(ledPin, HIGH);
delay(1000);
//Eteins la led
digitalWrite(ledPin, LOW);
}
}
}
Programmation de l’Émetteur
- Code: Tout sélectionner
#include <MANCHESTER.h>
//Définition des broches pour chaque composants
int txPin = 0; //Transmetteur radio
int button = 1; // Bouton Tactile
void setup()
{
//Active l'envoi des données sur la broche txPin (
MANCHESTER.SetTxPin(txPin);
//Activation du bouton
pinMode(button, INPUT);
digitalWrite(button, HIGH);
}
void loop()
{
//Si le bouton est appuyé
if (digitalRead(button) == LOW)
{
//Envoyer 1234
unsigned int data = 1234;
MANCHESTER.Transmit(data);
//Le bouton est remis sur HIGH
digitalWrite(button, HIGH);
}
}