Arduino CC1101
Arduino CC1101
Componenti:
- Arduino Uno
- CC1101 (Versione 433MHz SMA)
(https://it.aliexpress.com/item/1005002603656188.html?
spm=a2g0o.productlist.main.1.16d92475n5gcXU&algo_pvid=212b89da-fccd-47b5-bdef-
24dd5337a1bc&algo_exp_id=212b89da-fccd-47b5-bdef-24dd5337a1bc-0&pdp_ext_f=%7B
%22sku_id%22%3A%2212000021352867203%22%7D&pdp_npi=2%40dis%21EUR
%212.06%211.79%21%21%21%21%21%402100b0d116728307801401963d073f
%2112000021352867203%21sea&curPageLogUid=Npyq8tiO0wEn)
Step 1 – Collegamenti
Versione 10 pin
Step 2 – Librerie
Le librerie utilizzate sono 2:
1) https://github.com/LSatan/SmartRC-CC1101-Driver-Lib
- E’ necessario scaricare la libreria da github e importare come file zip
2) RCSwitch
I) Script ricevitore
#include <ELECHOUSE_CC1101_SRC_DRV.h>
#include <RCSwitch.h>
int pin;
void setup() {
Serial.begin(9600);
pin = 0;
if (ELECHOUSE_cc1101.getCC1101()){
Serial.println("Connection OK");
}else{
Serial.println("Connection Error");
}
ELECHOUSE_cc1101.Init();
ELECHOUSE_cc1101.setMHZ(433.92);
mySwitch.enableReceive(pin);
ELECHOUSE_cc1101.SetRx();
}
void loop() {
if (mySwitch.available()) {
output(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength(),
mySwitch.getReceivedDelay(),
mySwitch.getReceivedRawdata(),mySwitch.getReceivedProtocol());
mySwitch.resetAvailable();
}
}
Script Rx.ino
Per funzionare correttamente lo script del ricevitore ha bisogno dello script output.ino, che deve
essere posizionato all’interno della stessa cartella di Rx.ino
void output(unsigned long decimal, unsigned int length, unsigned int delay, unsigned int* raw,
unsigned int protocol) {
return bin;
}
Script output.ino
ATTENZIONE
Se per caso non dovesse funzionare, è necessario modificare il file
ELECHOUSE_CC1101_SRC_DRV.cpp, in Ubuntu si trova nel percorso
/home/nomeUtente/Arduino/libraries/SmartRC-CC1101-Driver-Lib-master/
#include <ELECHOUSE_CC1101_SRC_DRV.h>
#include <RCSwitch.h>
int pin;
void setup() {
Serial.begin(9600);
while(!Serial);
pin = 6;
if (ELECHOUSE_cc1101.getCC1101()){
Serial.println("Connection OK");
}else{
Serial.println("Connection Error");
}
ELECHOUSE_cc1101.Init();
ELECHOUSE_cc1101.setMHZ(433.92);
mySwitch.enableTransmit(pin);
ELECHOUSE_cc1101.SetTx();
mySwitch.setProtocol(INSERIRE_PROTOCOLLO);
mySwitch.setPulseLength(INSERIRE_PULSELENGHT);
}
void loop() {
/* Binary code */
mySwitch.send("INSERIRE_BIT");
delay(20000);
}
Script Tx.ino
Inoltre, è consigliato inserire nel setup i seguenti 2 parametri opzionali ottenuti tramite lo script
ricevitore:
mySwitch.setProtocol(INSERIRE_PROTOCOLLO);
mySwitch.setPulseLength(INSERIRE_PULSELENGHT);
Per quando riguarda il send è possibile utilizzare vari metodi di trasmissione, sotto sono riportati tre
diversi esempi:
mySwitch.send(5393, 24); /* Decimal code */
mySwitch.send("000000000001010100010001"); /* Binary code */
mySwitch.sendTriState("00000FFF0F0F"); /* Tri-state code */
QUESTA GUIDA E' SOLO A SCOPO INFORMATIVO NON MI ASSUMO NESSUNA RESPONSABILITÀ SU CIO' CHE FARETE E SUI
DANNI CHE POTRESTE CAUSARE!!!