Navigation

    • Register
    • Login
    • Search
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. Jean Pierre Rojas Vanegas
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Jean Pierre Rojas Vanegas

    @Jean Pierre Rojas Vanegas

    1
    Reputation
    3
    Posts
    288
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    Jean Pierre Rojas Vanegas Follow

    Best posts made by Jean Pierre Rojas Vanegas

    • RE: 💬 Touch Display Scene Controller

      To make this sketch works, you need to define: #define MY_RF24_CE_PIN 17 and #define MY_RF24_CS_PIN 18 or it'll not work.

      posted in Announcements
      Jean Pierre Rojas Vanegas
      Jean Pierre Rojas Vanegas

    Latest posts made by Jean Pierre Rojas Vanegas

    • RE: 💬 Touch Display Scene Controller

      To make this sketch works, you need to define: #define MY_RF24_CE_PIN 17 and #define MY_RF24_CS_PIN 18 or it'll not work.

      posted in Announcements
      Jean Pierre Rojas Vanegas
      Jean Pierre Rojas Vanegas
    • RE: NRF24L01 does not work on scene controller

      @Jean-Pierre-Rojas-Vanegas
      I already found a solition. By default, the MyConfig.h library sets CE, CS, to pins 9, 10, respectively. I simply have to manually set CE and CS on pins 17 and 18. When I connect the gateway, it assigns me an ID and shows me the image on the display.

      posted in Development
      Jean Pierre Rojas Vanegas
      Jean Pierre Rojas Vanegas
    • NRF24L01 does not work on scene controller

      Hello!
      I'm new on Mysensors forum. I have and Arduino Mega 2560 and NRF24L01 radio conecter on pins 14 for SCK, 15 for MOSI, 16 for MISO, 17 for CE and 18 for CS. I Have a LIL9481 display configured in the sketchs as CTE32HR on pins 38, 39, 40, 41. The problem is when I boot the program it just does not show anything on the display. I attach the sketck I have so far. Please check it and tell me what can be wrong and how to get the "SceneController" to be displayed. I apologize if the topic is not in the right place, please put it where it should go. Thanks in advance.

      Sketch code:

      /**
       * The MySensors Arduino library handles the wireless radio link and protocol
       * between your home built sensors/actuators and HA controller of choice.
       * The sensors forms a self healing radio network with optional repeaters. Each
       * repeater and gateway builds a routing tables in EEPROM which keeps track of the
       * network topology allowing messages to be routed to nodes.
       *
       * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
       * Copyright (C) 2013-2015 Sensnology AB
       * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
       *
       * Documentation: http://www.mysensors.org
       * Support Forum: http://forum.mysensors.org
       *
       * This program is free software; you can redistribute it and/or
       * modify it under the terms of the GNU General Public License
       * version 2 as published by the Free Software Foundation.
       *
       *******************************
       *
       * REVISION HISTORY
       * Version 1.0 - Henrik Ekblad
       * 
       * DESCRIPTION
       * http://www.mysensors.org/build/scene_controller
       * Touch Display Scene Controller build using a touch enabled tft display
       * attached to a ATMega 2560. This example fetches time from controller and sends
       * in scene commands to the controller. 
       * Short press sends V_SCENE_ON and long press (>0.5sec) sends V_SCENE_OFF.
       *
       * Henrik Ekblad <henrik.ekblad@mysensors.org>
       *
       * This example uses:
       * UTFT library: http://www.henningkarlsen.com/electronics/library.php?id=51
       * Convert your own images here: http://www.henningkarlsen.com/electronics/t_imageconverter565.php
       *
       * The 3v3 output on the ATMega2560 is especially bad. I had to use a step down 
       * on the 5V output to get solid transmissions.
       * 
       *
       * Connect radio 
       * ----------------------------------
       * Radio               Arduino Pin
       * ----------------------------------
       * GND                 GND  
       * 5V  -> Step down -> 3V3   (see buying guide for help finding step-down)
       * SCK                 14 
       * MOSI                15 
       * MISO                16 
       * CE                  17   
       * CSN                 18
       *
       */
      
      // Enable debug prints to serial monitor
      #define MY_DEBUG 
      
      // Enable soft spi as radio has a hard time sharing spi 
      #define MY_SOFTSPI
      
      // Enable and select radio type attached
      #define MY_RADIO_NRF24
      //#define MY_RADIO_RFM69
      
      #include <TimeLib.h> 
      #include <SPI.h>
      #include <MySensors.h>  
      #include <stdarg.h>
      #include <UTFT.h>
      #include <UTouch.h>
      #include <UTFT_Buttons.h>
      #include <avr/pgmspace.h>
      #include "arial_bold.c"
      #include "ArialNumFontPlus.c"
      #include "logo.c"
      
      #define CHILD_ID 1
      
      int LONG_PRESS = 500; // Number of millisecons to trinnger scene off for button push
      int RESEND_DEBOUNCE = 2000; // Number of millisecons interval between sending of same 
                                  // scene number again. 
                                  // This is used to avoid unwanted re-trigger when using 
                                  // a sensetive touch diplay.
      
      // Add your buttons here. Max is 5 if you still want time at the top.
      char *buttons[] = {
          (char *)"Good Morning", 
          (char *)"Clean Up!", 
          (char *)"All Lights Off", 
          (char *)"Music On/Off"
        };
      
      const int buttonCount = sizeof(buttons)/sizeof(char *);
      const int padding = 10;
      const int topBarHeight = 60;
      
      MyMessage on(CHILD_ID, V_SCENE_ON);
      MyMessage off(CHILD_ID, V_SCENE_OFF);
      UTFT myGLCD(CTE32HR,38,39,40,41);
      UTouch  myTouch( 6, 5, 4, 3, 2);
      UTFT_Buttons  myButtons(&myGLCD, &myTouch);
      bool timeReceived = false;
      unsigned long lastTimeUpdate=0, lastRequest=0;
      char timeBuf[20];
      
      
      void setup()  
      { 
        Serial.println("***setup****");
        myGLCD.InitLCD();
        myGLCD.clrScr();
        myGLCD.setFont((uint8_t*)ArialNumFontPlus);
        myGLCD.setColor(100, 255, 100);
        myGLCD.setBackColor(0, 0, 0);
        myGLCD.drawBitmap (0, 0, 60, 60, (unsigned int*)logo);
      
        myTouch.InitTouch();
        myTouch.setPrecision(PREC_MEDIUM);
      
        myButtons.setButtonColors(VGA_WHITE, VGA_GRAY, VGA_WHITE, VGA_RED, VGA_BLUE);
        myButtons.setTextFont((uint8_t*)arial_bold);
        int height = (myGLCD.getDisplayYSize()-topBarHeight-(padding*(buttonCount+2)))/buttonCount;
      
        // Add buttons
        for (int i=0; i<buttonCount;i++) {
          int y = topBarHeight + padding+(i*(height+padding));
          myButtons.addButton( padding, y, myGLCD.getDisplayXSize()-padding*2, height, buttons[i]);
        }
        myButtons.drawButtons();
      
        // Request time from controller. 
        requestTime();
      
        // Send the sketch version information to the gateway and Controller
        sendSketchInfo("Scene Ctrl", "1.0");
        present(CHILD_ID, S_SCENE_CONTROLLER);
         
      }
      
      void presentation()  {
      
         Serial.println("***presentation****");
        // Send the sketch version information to the gateway and Controller
        sendSketchInfo("Scene Ctrl", "1.0");
        present(CHILD_ID, S_SCENE_CONTROLLER);
      }
      
      
      int lastPressedButton = -1;
      unsigned long lastPressedButtonTime = 0;
      
      void loop()      
      { 
        unsigned long now = millis();
      
         Serial.println("***loop****");
      
        if (myTouch.dataAvailable()) {
          int pressedButton = myButtons.checkButtons();
      
          if (pressedButton>=0) {
            bool longPress = millis()-now>(unsigned long)LONG_PRESS;
      
            if (pressedButton != lastPressedButton || now-lastPressedButtonTime > (unsigned long)RESEND_DEBOUNCE) {
              if (longPress) {
                send(off.set(pressedButton));
                Serial.print("Long pressed: ");
              } else {
                send(on.set(pressedButton));
                Serial.print("Pressed: ");    
              }
              Serial.println(pressedButton);    
              lastPressedButton = pressedButton;    
              lastPressedButtonTime=now;  
            }
          }
        }
      
        // If no time has been received yet, request it every 10 second from controller
        // When time has been received, request update every hour
        if ((!timeReceived && now-lastRequest > (unsigned long)10*1000)
          || (timeReceived && now-lastRequest > (unsigned long)60*1000*60)) {
          // Request time from controller. 
          Serial.println("requesting time");
          requestTime();  
          lastRequest = now;
        }
      
        // Update time every second
        if (timeReceived && now-lastTimeUpdate > 1000) {
          printTime();  
          lastTimeUpdate = now;
        }
      }
      
      
      
      // This is called when a new time value was received
      void receiveTime(unsigned long time) {
        Serial.println("***recive****");
        
        // Ok, set incoming time 
        setTime(time);
        timeReceived = true;
      }
      
      void printTime() {
        sprintf(timeBuf, "%02d:%02d:%02d", hour(), minute(), second());
        myGLCD.print(timeBuf, 60,7);
      }
      
      posted in Development
      Jean Pierre Rojas Vanegas
      Jean Pierre Rojas Vanegas