Nieuwe plugin: BH1750 LUX Sensor

Experimentele Plug-ins
Forumregels
LET OP: DIT IS HET EXPERIMENTELE GEDEELTE
BETREDEN OP EIGEN RISICO :lol:

Nieuwe plugin: BH1750 LUX Sensor

Berichtdoor rtenklooster » 14 maart 2015, 22:30

Hoi allemaal, ik had me voorgenomen wat nieuwe plugins te schrijven om meer hardware te ondersteunen op de nodo. Meer hardware = potentieel meer geinteresseerde (nieuwe) users.

Bij deze een plugin voor deze goedkope, goed werkende lux sensoren.
Afbeelding
Je sluit ze aan via i2c. Zijn 5v tolerant. Lux zegt mij meer, dan een ldr analoge waarde.

Code: Selecteer alles
//#######################################################################################################
//#################################### Plugin-254: LuxRead   ############################################
//#######################################################################################################

/*********************************************************************************************\
* Funktionele beschrijving: Deze plugin leest een lux sensor, de BH1750 uit.
*
* Het commando is LuxRead, <var> waarbij de luxwaarde wordt weggeschreven naar par1 uservar.
*
* Auteur             : Richard ten Klooster
* Support            : http://weblog.tenklooster.net
* Datum              : 03-2015
* Versie             : 0.1
* Nodo productnummer :
* Compatibiliteit    : Vanaf Nodo build nummer 744
* Syntax             : "LuxRead <Par1>"
*
***********************************************************************************************
* Technische beschrijving:
*
* De BH1750 is 3v en 5v tolerant. Aangesloten op de I2C Bus en vult één variabele met de huidige lux waarde.
*
* Compiled size      : 435 Bytes voor mega
*
*/


#define PLUGIN_ID 254
#define PLUGIN_NAME "luxRead"
#define BH1750_address           0x23

// Declaratie funkties. De Arduino verzorgt die niet buiten de .ino files.
boolean BH1750_ReadLux(void);
int BH1750_Read(int);

byte buff[2];

boolean Plugin_254(byte function, struct NodoEventStruct *event, char *string)
  {
  boolean success=false;

  switch(function)
  {
  #ifdef PLUGIN_254_CORE
  case PLUGIN_INIT:
    {
    WireNodo.beginTransmission(BH1750_address);
   WireNodo.write(0x10);                  //1lx reolution
   WireNodo.endTransmission();
    break;
    }

  case PLUGIN_COMMAND:
    {
    UserVar[event->Par1 -1] = BH1750_ReadLux();
    success=true;
    }
  #endif // CORE

  #if NODO_MEGA
  case PLUGIN_MMI_IN:
    {
    char *TempStr=(char*)malloc(INPUT_COMMAND_SIZE);

    if(GetArgv(string,TempStr,1))
      {
      if(strcasecmp(TempStr,PLUGIN_NAME)==0)
        {
        if(event->Par1 >0 && event->Par1<=USER_VARIABLES_MAX-1)
          {
          event->Command = PLUGIN_ID; // Plugin nummer 
          event->Type = NODO_TYPE_PLUGIN_COMMAND;
          success=true;
          }
        }
      }
    free(TempStr);
    break;
    }

  case PLUGIN_MMI_OUT:
    {
    strcpy(string,PLUGIN_NAME);            // Eerste argument=het commando deel
    strcat(string," ");
    strcat(string,int2str(event->Par1));

    break;
    }
  #endif // MMI
  }     
  return success;
}

#ifdef PLUGIN_254_CORE
boolean BH1750_ReadLux()
{
  int i;
  uint16_t val=0;    
  if(2==BH1750_Read(BH1750_address))
  {
   val=((buff[0]<<8)|buff[1])/1.2;
   val=val+15;
   return val;     
  }
}
 
int BH1750_Read(int address)
{
  int i=0;
  WireNodo.requestFrom(address, 2);
  while(WireNodo.available()) //
  {
    buff[i] = WireNodo.read();  // receive one byte
    i++;
  }
return i;
}
#endif // CORE
rtenklooster
 
Berichten: 377
Geregistreerd: 04 aug 2012, 12:10
Woonplaats: Aduard

Re: Nieuwe plugin: BH1750 LUX Sensor

Berichtdoor rwijbenga » 17 maart 2015, 11:58

Goed bezig!

Ik heb er ook een stel besteld, komen dan ook in de shop.
rwijbenga
 
Berichten: 344
Geregistreerd: 28 aug 2011, 14:58

Re: Nieuwe plugin: BH1750 LUX Sensor

Berichtdoor manjh » 17 maart 2015, 15:02

Is het een idee om een combi print te maken met daarop een Pro Mini, en een handjevol sensors?
Ik denk aan de UV sensor, de lux sensor (uit een andere post), een dht22, een bmp85? Dan heb je aardig wat metingen.
Voeg daarbij een "standaard" weerstationnetje voor een paar tientjes, en je hebt alles wat je wilt weten over het weer!
Zeker met de nieuwe webapp valt daar iets heel moois voor te maken...
Laatst bijgewerkt door manjh op 18 maart 2015, 20:10, in totaal 1 keer bewerkt.
Hans
manjh
 
Berichten: 1172
Geregistreerd: 29 aug 2011, 14:39

Re: Nieuwe plugin: BH1750 LUX Sensor

Berichtdoor andreo » 18 maart 2015, 19:40

Goed bezig, weer veel om te proberen :P
Groet, Andre
mijn NES
Nodo-Mega V3.7 R744|Nodo-Mini V3.7 R744|WebApp lokaal QNAP TS-119P II (SWINWA-PROD-V099)|WS-3500|ASUN650 zonweringsmodule | diverse KAKU |
andreo
 
Berichten: 119
Geregistreerd: 17 sep 2012, 23:51
Woonplaats: Anna Paulowna


Keer terug naar Plug-ins

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers. en 1 gast

cron