Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Include para 433Mhz
- //data NANO D11
- #include <RH_ASK.h>
- #include <SPI.h> // Not actualy used but needed to compile
- //Includes para Oled
- #include <Wire.h>
- #include <Adafruit_GFX.h>//oled
- #include <Adafruit_SSD1306.h>//oled
- //Resolucion OLED
- #define SCREEN_WIDTH 128 // OLED x
- #define SCREEN_HEIGHT 32 // OLED Y
- //--------------------------------------------------------------------------------------
- //Instancias OLED y 433Mhz
- Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);//Instancia del OLED
- RH_ASK driver;//Crea el driver 433Mhz en RX...Instancia el receptor 433 MHZ
- //--------------------------------------------------------------------------------------
- //Configura Oled a valores de tamano y posicion x e y por defecto
- void OledConfig(uint16_t tam=2,uint16_t x=0,uint16_t y=15){
- // inicializo oled en la direccion i2x 0x3C placa 0x78
- if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
- Debug("Problema Oled !!!");
- while (true);
- }else {Debug("Oled OK");
- }
- oled.clearDisplay(); // Clear
- oled.setTextSize(tam); // tamano texto
- oled.setTextColor(WHITE); // color texto
- oled.setCursor(x, y); // Posicion texto
- }
- //--------------------------------------------------------------------------------------
- //Imprime texto en la pantalla OLED
- void OledPrint(String texto,uint16_t tam=2,uint16_t x=0,uint16_t y=15){
- oled.clearDisplay(); // Clear
- oled.setTextSize(tam); // tamano texto
- oled.setTextColor(WHITE); // color texto
- oled.setCursor(x, y); // Posicion texto
- oled.println(texto); // texto
- oled.display(); // Muestra en Oled
- }
- //--------------------------------------------------------------------------------------
- //Inicializa driver Tx Rx 433 Mhz
- void TxRxInit(){
- if (!driver.init()){
- //Serial.println("Falla inicializacion 433Mhz");
- Debug("Falla inicializacion 433Mhz");
- while (true);//Fallo inicializacion 433Mhz
- }else { Debug ("RX 433 Mhz inicializado ");
- }
- }
- void Debug(char* txt){
- if (Serial){
- Serial.println (txt);
- }
- }
- //--------------------------------------------------------------------------------------
- //--------------------------------------------------------------------------------------
- void setup()
- {
- if (Serial)
- {Serial.begin(9600);} // Debug RS232
- else {while (true){};}
- //Inicializa OLED
- delay(2000);
- OledConfig();//Inicializa OLED
- OledPrint("Waiting TX");//Envia mensaje al Oled
- delay (2000);
- TxRxInit();//Inicializa 433Mhz RxTx
- }
- //--------------------------------------------------------------------------------------
- void loop()
- {
- uint8_t buf[12];//Texto
- uint8_t buflen = sizeof(buf);//Tamano Buffer
- //Debug ("Waiting TX...");
- if (driver.recv(buf, &buflen)) // No bloquea
- {
- int i;
- // Mensaje con checksum correcto.Se muetra
- //Serial.print("Mensaje : ");
- //Serial.println((char*)buf);
- Debug ("Mensaje :");
- Debug (buf);
- OledPrint((char*)buf);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement