HM-SEC-MDIR anpassen zum Nachtlicht

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

Alveran
Beiträge: 250
Registriert: 07.08.2018, 20:17
Hat sich bedankt: 74 Mal
Danksagung erhalten: 25 Mal

Re: HM-SEC-MDIR anpassen zum Nachtlicht

Beitrag von Alveran » 25.03.2020, 15:50

Funktioniert. Klasse. Besteht Interesse an einer Anleitung? Dann würde ich ein paar Bilder machen und alles zusammen schreiben. :D

jp112sdl
Beiträge: 12115
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: HM-SEC-MDIR anpassen zum Nachtlicht

Beitrag von jp112sdl » 25.03.2020, 15:56

Ich glaub da brauchts keine Anleitung, die dann wieder irgendwo liegt, wo sie niemand bei Bedarf sofort findet. :mrgreen:
Es ist ja nur die Sensorklasse auszutauschen. Sollte mit ein paar Kommentaren direkt im example-Sketch der AskSinPP-Lib am besten zu machen sein.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Alveran
Beiträge: 250
Registriert: 07.08.2018, 20:17
Hat sich bedankt: 74 Mal
Danksagung erhalten: 25 Mal

Re: HM-SEC-MDIR anpassen zum Nachtlicht

Beitrag von Alveran » 25.03.2020, 16:33

Ich meine für den Aufbau des kompletten Nachtlichts.

jp112sdl
Beiträge: 12115
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: HM-SEC-MDIR anpassen zum Nachtlicht

Beitrag von jp112sdl » 25.03.2020, 17:02

Ach soooo :lol:
Ja klar, könnte dann auf asksinpp.de in die Projekte :)

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Alveran
Beiträge: 250
Registriert: 07.08.2018, 20:17
Hat sich bedankt: 74 Mal
Danksagung erhalten: 25 Mal

Re: HM-SEC-MDIR anpassen zum Nachtlicht

Beitrag von Alveran » 26.03.2020, 10:41

Macht es Sinn auf dem Bh1750 und auf dem AM312 noch die Spannungswandler zu entfernen? (Spannungsversorgung kommt von zwei AAA Batterien)

Alveran
Beiträge: 250
Registriert: 07.08.2018, 20:17
Hat sich bedankt: 74 Mal
Danksagung erhalten: 25 Mal

Re: HM-SEC-MDIR anpassen zum Nachtlicht

Beitrag von Alveran » 21.04.2020, 12:03

HM-SEC-MDIR Nachtlicht

Der HM-SEC-MDIR Sketch soll so angepasst werden das daraus ein Nachtlicht entsteht. Dazu müsste der Sketch so angepasst werden, das am Atmega ein Ausgang geschaltet wird(für eine Zeit X) wenn ein gewisser Helligkeitswert unterschritten wird und eine Bewegung erkannt wird.
An der CCU soll dazu nichts modifiziert werden, das Nachtlicht wird als ganz normal Bewegungsmelder erkannt und funktioniert auch so.

Vielen Dank an jp112sdl, TomMajor und papa für die Anpassungen am Sketch.

Code: Alles auswählen

// AskSin++
// 2016-10-31 papa Creative Commons - http://creativecommons.org/licenses/by-nc-sa/3.0/de/
// 2020-03-23 Tom Major - Nightlight extension
//- -----------------------------------------------------------------------------------------------------------------------

// define this to read the device id, serial and device type from bootloader section
// #define USE_OTA_BOOTLOADER

#define EI_NOTEXTERNAL
#include <EnableInterrupt.h>
#include <AskSinPP.h>
#include <LowPower.h>
// uncomment the following 2 lines if you have a TSL2561 connected at address 0x29
#include <Wire.h>
#include <sensors/Bh1750.h>

#include <MultiChannelDevice.h>
#include <Motion.h>

// we use a Pro Mini
// Arduino pin for the LED
// D4 == PIN 4 on Pro Mini
#define LED_PIN 4
// Arduino pin for the config button
// B0 == PIN 8 on Pro Mini
#define CONFIG_BUTTON_PIN 8
// Arduino pin for the PIR
// A0 == PIN 14 on Pro Mini
#define PIR_PIN 14

// Nightlight extension
#define NIGHTLI_PIN 6
#define NIGHTLI_BRIGHTN_THRESHOLD 5
#define NIGHTLI_TIME_SEC 180

// number of available peers per channel
#define PEERS_PER_CHANNEL 6

// all library classes are placed in the namespace 'as'
using namespace as;

// define all device properties
const struct DeviceInfo PROGMEM devinfo = {
    {0x56,0x78,0x90},       // Device ID
    "papa222222",           // Device Serial
    {0x00,0x4a},            // Device Model
    0x16,                   // Firmware Version
    as::DeviceType::MotionDetector, // Device Type
    {0x01,0x00}             // Info Bytes
};

/**
 * Configure the used hardware
 */
typedef AvrSPI<10,11,12,13> SPIType;
typedef Radio<SPIType,2> RadioType;
typedef StatusLed<LED_PIN> LedType;
typedef AskSin<LedType,BatterySensor,RadioType> BaseHal;
class Hal : public BaseHal {
public:
  void init (const HMID& id) {
    BaseHal::init(id);
    // set low voltage to 2.2V
    // measure battery every 1h
    battery.init(seconds2ticks(60UL*60),sysclock);
    battery.low(22);
    battery.critical(19);
  }
} hal;

typedef MotionChannel<Hal,PEERS_PER_CHANNEL,List0,Bh1750<> > MChannel;

typedef MultiChannelDevice<Hal,MChannel,1> MotionType;
MotionType sdev(devinfo,0x20);

ConfigButton<MotionType> cfgBtn(sdev);

void setup () {
  DINIT(57600,ASKSIN_PLUS_PLUS_IDENTIFIER);
  sdev.init(hal);
  buttonISR(cfgBtn,CONFIG_BUTTON_PIN);
  motionISR(sdev,1,PIR_PIN);
  sdev.initDone();
}

class LightAlarm : public Alarm {
  public:
  LightAlarm() : Alarm(0) {
    pinMode(NIGHTLI_PIN,OUTPUT);
    digitalWrite(NIGHTLI_PIN,LOW);
  }
  virtual ~LightAlarm() {}

  void setOn () {
    digitalWrite(NIGHTLI_PIN,HIGH);
    set(seconds2ticks(NIGHTLI_TIME_SEC));
    sysclock.add(*this);
  }

  virtual void trigger (__attribute__ ((unused)) AlarmClock& clock) {
    digitalWrite(NIGHTLI_PIN,LOW);
  }
} nightlight;

void loop() {
  bool worked = hal.runready();
  bool poll = sdev.pollRadio();
  // falls Bewegung und Helligkeit <= Schwelle und Nachtlicht nicht bereits aktiv, dann Anschalten für definierte Zeit
  if( sdev.channel(1).isMotion() && sdev.channel(1).status() <= NIGHTLI_BRIGHTN_THRESHOLD && nightlight.active()==false ) {
    nightlight.setOn();
  }
  if( worked == false && poll == false ) {
    // deep discharge protection
    // if we drop below critical battery level - switch off all and sleep forever
    if( hal.battery.critical() ) {
      // this call will never return
      hal.activity.sleepForever(hal);
    }
    // if nothing to do - go sleep
    hal.activity.savePower<Sleep<>>(hal);
  }
} 

Bauteile

• 1x Arduino Pro Mini (3.3V / 8MHz)
• 1x CC1101 868MHz Funkmodul
• AM312
• BH1750
• Teelicht LED
• 330Ohm Widerstand
• Taster

Aufbau
wiring_Steckplatine.png
Konfiguration

Code: Alles auswählen

#define NIGHTLI_PIN 6
#define NIGHTLI_BRIGHTN_THRESHOLD 5
#define NIGHTLI_TIME_SEC 300
IMG_20200421_115414.jpg
Der WAF ist natürlich Immens.

Ich würde die Anleitung für https://asksinpp.de/Projekte/ bereit stellen(wie?)

Vielleicht kann nochmal jemand was dazu sagen?
Macht es Sinn auf dem Bh1750 und auf dem AM312 noch die Spannungswandler zu entfernen? (Spannungsversorgung kommt von zwei AAA Batterien)

TomMajor
Beiträge: 1793
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 175 Mal
Danksagung erhalten: 399 Mal
Kontaktdaten:

Re: HM-SEC-MDIR anpassen zum Nachtlicht

Beitrag von TomMajor » 21.04.2020, 18:41

Alveran hat geschrieben:
21.04.2020, 12:03
HM-SEC-MDIR Nachtlicht

Der WAF ist natürlich Immens.

Ich würde die Anleitung für https://asksinpp.de/Projekte/ bereit stellen(wie?)

Vielleicht kann nochmal jemand was dazu sagen?
Macht es Sinn auf dem Bh1750 und auf dem AM312 noch die Spannungswandler zu entfernen? (Spannungsversorgung kommt von zwei AAA Batterien)
Hey Alveran,

ein guter WAF kann nie schaden, freut mich zu hören. :)

Wegen den Spannungswandlern, ich hatte hier für die BME280 und MAX44009 Boards ca. 5uA raus bekommen was man jeweils spart.
https://github.com/TomMajor/SmartHome/t ... sor-boards

Bezüglich Bh1750 und AM312, entweder kann man vom Aufdruck auf den Typ schliessen und dann im Datenblatt schauen oder halt den Strom vorher/nachher messen.
Da die LED im Nachtlicht ein "großer" Verbraucher gegenüber dem Ruhestrom der Spannungswandlern ist würde ich denken der Einfluss diese zu entfernen wird nicht so groß sein wie bei einem reinen Sensor-Gerät, je nach Einschaltdauer und Häufigkeit der LED halt..
Viele Grüße,
Tom

Alveran
Beiträge: 250
Registriert: 07.08.2018, 20:17
Hat sich bedankt: 74 Mal
Danksagung erhalten: 25 Mal

Re: HM-SEC-MDIR anpassen zum Nachtlicht

Beitrag von Alveran » 22.04.2020, 11:49

Ich hatte nur bedenken das diese Benötigt werden?(die Bauteile ohne Schaden nehmen) Aber wenn wenn man das ganze mit zwei AA Zellen betreibt sollte es doch keine Probleme geben.

Die Leuchtzeit der LED beschränkt sich auf wenige Minuten jede Nacht. Da wir eigentlich einen guten Schlaf haben und selten jemand nachts aufsteht.

TomMajor
Beiträge: 1793
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 175 Mal
Danksagung erhalten: 399 Mal
Kontaktdaten:

Re: HM-SEC-MDIR anpassen zum Nachtlicht

Beitrag von TomMajor » 22.04.2020, 12:14

Alveran hat geschrieben:
22.04.2020, 11:49
Ich hatte nur bedenken das diese Benötigt werden?(die Bauteile ohne Schaden nehmen) Aber wenn wenn man das ganze mit zwei AA Zellen betreibt sollte es doch keine Probleme geben.

Die Leuchtzeit der LED beschränkt sich auf wenige Minuten jede Nacht. Da wir eigentlich einen guten Schlaf haben und selten jemand nachts aufsteht.
bei 2x AA brauchst du die nicht.
Der Bh1750 chip hat bis 3,6V operating voltage und der AM312 arbeitet ja auch bei nominal 3V durch den verwendeten Spannungsregler.
Ein paar uA sleep Strom lassen sich so sparen.
Viele Grüße,
Tom

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“