Ciao a tutti. Vorrei presentarvi il mio primo lavoro su Arduino e vorrei avere dei pareri da gente più esperta di me.
Il progetto parte da un idea di mio padre. Un semplice cerca persone per chiamare dalla cucina di un bar una cameriera che dista circa una quindicina di metri.
Funzionamento : Arduino 1(Cucina) --> 2 bottoni (chiamata) + 2 led (verifica di arrivo messaggio)
Arduino 2(Impiegato1) --> 1 Buzzer + 1 led
Arduino 3(Impiegato3) --> 1 Buzzer + 1 led
Hardware = Elegoo Nano v3.0 ATmega328P
Modulo Kuman nRF24L01 + PA + LNA Antenna e ricetrasmettitore Wireless
2 Buzzer, 4 Led, 2 pulsanti, Condensatori 10 uF
Libreria = RF24 --> GitHub - nRF24/RF24: OSI Layer 2 driver for nRF24L01 on Arduino & Raspberry Pi/Linux Devices
Parte 1
Collegamenti Arduino 1 NANO--NRF24L01
3V3 --> V+ }
GND --> GND } uF
9 --> CE
10 --> CSN
11 --> MOSI
12 --> MISO
13 --> SCK
NO --> IRQ
Pulsante pin 4, 7
led pin 2, 5
Arduino 2/3 NANO--NRF24L01
3V3 --> V+ }
GND --> GND } uF
9 --> CE
10 --> CSN
11 --> MOSI
12 --> MISO
13 --> SCK
NO --> IRQ
Buzzer e led pin 3
Parte 2 ( non definitiva)
Ora, ho creato due sketch uno per la trasmittente e uno per il ricevente. Ho preso spunto da internet in quanto non sono molto esperto. Gli sketch non sono definitivi in quanto manca ancora il terzo terminale (Cameriere 2) e nello sketch del trasmettitore manca la verifica dei led se il messaggio viene ricevuto o meno.
Trasmittente
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 10); // CE, CSN
const byte address[][6] = {"00001", "00002"};
const int pinout = 7;
const int pinin = 4; //input from button to arduino
void setup() {
pinMode(3, OUTPUT); /
Serial.begin(115200);
radio.begin();
radio.openWritingPipe(address[1]);
radio.setPALevel(RF24_PA_HIGH); // (MIN, LOW, HIGH, MAX)
radio.stopListening();
pinMode(pinin, INPUT);
pinMode(pinout, OUTPUT);
}
void loop() {
digitalWrite(pinout, HIGH);
int tombol = digitalRead(pinin);
if (tombol != LOW) {
txin();
}
else {
Serial.println("Premi pulsante per inviare dati");
delay(1000);
}
}
void txin() {
bool txan;
const char data[] = "Chiamato";
txan = radio.write(&data, sizeof(data));
delay(1000);
if (txan)
Serial.println("Data Sent");
else
Serial.println("Failed");
}
Ricevente
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 10); // CE, CSN
const byte address[][6] = {"00001","00002"};
void setup() {
pinMode(3, OUTPUT); //miki
Serial.begin(115200);
radio.begin();
radio.openReadingPipe(0, address[1]);
radio.setPALevel(RF24_PA_HIGH);
radio.startListening();
}
void loop() {
if (radio.available()) {
digitalWrite(3, HIGH); //miki
delay(1000); //miki
digitalWrite(3, LOW); //miki
delay(1000); //miki
char text[90] = "";
radio.read(&text, sizeof(text));
Serial.println(text);
}
}
Parte 3 ( in fase di sviluppo)
Andrò a realizzare con una stampante 3d e https://www.tinkercad.com/ i contenitori delle trasmittenti.
Posterò i file una volta realizzati
Commento
Nel progetto dovrà essere integrato un sistema di alimentazione, io pensavo a batterie al litio ricaricabili, per ora per fare test ho utilizzato due powerbank usb, quelle che si utilizzano per i cellulari, e tutto ha funzionato. Accetto consigli per migliorare e terminare il mio progetto. Grazie a chiunque abbia speso cinque minuti per leggermi. Buona vita!