• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

My First Mirror... until now ^^

Scheduled Pinned Locked Moved Show your Mirror
37 Posts 17 Posters 43.7k Views 18 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    fischi87 @cruunnerr
    last edited by Jan 6, 2018, 3:33 PM

    @cruunnerr

    ah yes alright, thanks

    1 Reply Last reply Reply Quote 0
    • M Offline
      metalldetector
      last edited by Apr 19, 2019, 2:15 PM

      hi… i have motion detector pir. and a led5050 strip.
      can you please provide the software part between pir and led… for dimming and on off feature … pleeeese
      thx

      1 Reply Last reply Reply Quote 0
      • C Offline
        cruunnerr
        last edited by cruunnerr Apr 20, 2019, 7:07 PM Apr 20, 2019, 7:02 PM

        Hey @metalldetector

        I already did somewhere in the forum ^^

        You need to install PIGPIOD.

        sudo apt-get install build-essential python-dev unzip wget

        wget http://abyz.me.uk/rpi/pigpio/pigpio.zip && unzip pigpio.zip && cd PIGPIO && sudo make install

        Connect the PIR like shown at Part 2.2 and follow the guide:
        https://forum.magicmirror.builders/topic/6291/howto-turn-on-off-your-monitor-time-based-pir-button-app?page=1

        When creating the pir.py and fill ist with this code:

        #!/usr/bin/env python
        
        import sys
        import time
        import RPi.GPIO as io
        import subprocess
        import pigpio
        
        io.setmode(io.BCM)
        SHUTOFF_DELAY = 119 # seconds
        PIR_PIN = 25       # 22 on the board
        LED_PIN = 16
        
        def main():
            io.setup(PIR_PIN, io.IN)
            io.setup(LED_PIN, io.OUT)
            turned_off = False
            last_motion_time = time.time()
        
            while True:
                if io.input(PIR_PIN):
                    last_motion_time = time.time()
                    io.output(LED_PIN, io.LOW)
                    print ".",
                    sys.stdout.flush()
                    if turned_off:
                        turned_off = False
                        turn_on()
                else:
                    if not turned_off and time.time() > (last_motion_time + 
                                                         SHUTOFF_DELAY):
                        turned_off = True
                        turn_off()
                    if not turned_off and time.time() > (last_motion_time + 1):
                        io.output(LED_PIN, io.HIGH)
                time.sleep(.1)
        
        def turn_on():
        	subprocess.call("sh /home/pi/monitor_on.sh", shell=True)
        
        def turn_off():
        	subprocess.call("sh /home/pi/monitor_off.sh", shell=True)
        
        if __name__ == '__main__':
            try:
                main()
            except KeyboardInterrupt:
                io.cleanup()
        
        

        For the monitor_on.sh use this:

        vcgencmd display_power 1
        
        pigs p 17 1
        pigs p 22 1
        pigs p 24 1
        
        sleep 0.06s
        
        pigs p 17 2
        pigs p 22 2
        pigs p 24 2
        
        sleep 0.06s
        
        pigs p 17 3
        pigs p 22 3
        pigs p 24 3
        
        sleep 0.06s
        
        pigs p 17 4
        pigs p 22 4
        pigs p 24 4
        
        sleep 0.06s
        
        pigs p 17 5
        pigs p 22 5
        pigs p 24 5
        
        sleep 0.06s
        
        pigs p 17 6
        pigs p 22 6
        pigs p 24 5
        
        sleep 0.06s
        
        pigs p 17 7
        pigs p 22 7
        pigs p 24 6
        
        sleep 0.06s
        
        pigs p 17 8
        pigs p 22 8
        pigs p 24 7
        
        sleep 0.06s
        
        pigs p 17 9
        pigs p 22 9
        pigs p 24 8
        
        sleep 0.06s
        
        pigs p 17 10
        pigs p 22 10
        pigs p 24 9
        
        sleep 0.06s
        
        pigs p 17 11
        pigs p 22 11
        pigs p 24 10
        
        sleep 0.06s
        
        pigs p 17 12
        pigs p 22 12
        pigs p 24 11
        
        

        For monitor_off.sh use this:

        pigs p 17 12
        pigs p 22 12
        pigs p 24 11
        
        sleep 0.06s
        
        pigs p 17 11
        pigs p 22 11
        pigs p 24 10
        
        sleep 0.06s
        
        pigs p 17 10
        pigs p 22 10
        pigs p 24 9
        
        sleep 0.06s
        
        pigs p 17 9
        pigs p 22 9
        pigs p 24 8
        
        sleep 0.06s
        
        pigs p 17 8
        pigs p 22 8
        pigs p 24 7
        
        sleep 0.06s
        
        pigs p 17 7
        pigs p 22 7
        pigs p 24 6
        
        sleep 0.06s
        
        pigs p 17 6
        pigs p 22 6
        pigs p 24 5
        
        sleep 0.06s
        
        pigs p 17 5
        pigs p 22 5
        pigs p 24 5
        
        sleep 0.06s
        
        pigs p 17 4
        pigs p 22 4
        pigs p 24 4
        
        sleep 0.06s
        
        pigs p 17 4
        pigs p 22 4
        pigs p 24 4
        
        sleep 0.06s
        
        pigs p 17 3
        pigs p 22 3
        pigs p 24 3
        
        sleep 0.06s
        
        pigs p 17 2
        pigs p 22 2
        pigs p 24 2
        
        vcgencmd display_power 0
        
        sleep 0.06s
        
        pigs p 17 1
        pigs p 22 1
        pigs p 24 1
        
        sleep 0.06s
        
        pigs p 17 0
        pigs p 22 0
        pigs p 24 0
        
        

        Hope that helps. Try to find your best way and ask, if u need more help :)

        Edit:
        Oh and u need to start Pigpio on reboot with rc.local. ;)

        M N 2 Replies Last reply Apr 21, 2019, 6:49 AM Reply Quote 3
        • swvalentiS Offline
          swvalenti Project Sponsor
          last edited by Apr 20, 2019, 8:48 PM

          If you told me that your background wasn’t a stock photo I would upvote this! Nice work!

          1 Reply Last reply Reply Quote 0
          • C Offline
            cruunnerr
            last edited by Apr 21, 2019, 5:32 AM

            Well, meanwhile i changed my background, but still love it :P

            Bild Text

            1 Reply Last reply Reply Quote 0
            • M Offline
              metalldetector @cruunnerr
              last edited by Apr 21, 2019, 6:49 AM

              @c:face_with_steam_from_nose: ruunnerr ok that works…
              -What ist the Funktion of LED_PIN = 16 .
              Only one pin …
              Do I need RGB pins in the script?

              -And then the led stripe start it’s flickering…
              Thx4yourhelp

              1 Reply Last reply Reply Quote 0
              • C Offline
                cruunnerr
                last edited by cruunnerr Apr 21, 2019, 7:08 AM Apr 21, 2019, 7:05 AM

                LED-Pin just shows, if the PIR detects motion. You don’t need to use it.

                The pir.py script starts the other shell scripts when motion is detected.

                So all commands for the RGB-Stripe are within the shell scripts (monitor_on / off.sh).
                And as u can see, i used GPIO 17,22 and 24.
                17 = red
                22 = green
                24 = blue

                To control the LEDs i used PIGPIOD and it’s commands, as i wrote.

                So after installing PIGIOD u can start it with:
                sudo pigpiod

                Commands like pigs p 22 128 will set green to 50%.
                pigs p 24 255 will set blue to 100%

                in the shell script i fade all colors from 1 to 12% with sleeps.

                Edit:

                As i wrote before u need to Autostart pigpiod via rc.local.

                sudo nano /etc/rc.local

                Mine looks like this:

                #!/bin/sh -e
                #
                # rc.local
                #
                # This script is executed at the end of each multiuser runlevel.
                # Make sure that the script will "exit 0" on success or any other
                # value on error.
                #
                # In order to enable or disable this script just change the execution
                # bits.
                #
                # By default this script does nothing.
                
                # Print the IP address
                _IP=$(hostname -I) || true
                if [ "$_IP" ]; then
                  printf "My IP address is %s\n" "$_IP"
                fi
                
                iwconfig wlan0 power off &
                
                sleep 5 &
                
                /usr/local/bin/pigpiod
                
                sleep 10 &
                
                /usr/bin/python /home/pi/pir.py &
                
                exit 0
                
                M 1 Reply Last reply Apr 21, 2019, 7:26 AM Reply Quote 0
                • M Offline
                  metalldetector @cruunnerr
                  last edited by Apr 21, 2019, 7:26 AM

                  @cruunnerr ok I think this is the right way and I understand it with the led pin on Pin16
                  … Just the flickering looks not good… I try a other power consumption…

                  …can I only fade the LEDs or can I make a light like a animation around my mirror?

                  Thanks for your help … And so fast.

                  This is a good forum for me…

                  Thx to all guys

                  1 Reply Last reply Reply Quote 0
                  • C Offline
                    cruunnerr
                    last edited by cruunnerr Apr 21, 2019, 10:33 AM Apr 21, 2019, 10:32 AM

                    Well, if i had to do that project gain, i would not choose the RGB-5050 stripes again…

                    I would directly get WS2812, because u just need one PWM Pin and with that you were able to do things like animations…

                    In another project (infinity table) i choosed this one and was pretty amused :)

                    https://youtu.be/IcDjzh03W-4

                    1 Reply Last reply Reply Quote 0
                    • M Offline
                      metalldetector
                      last edited by Apr 22, 2019, 6:25 AM

                      Yes. But what is the difference between WS2812, WS2812, neopixel…
                      What is the best stripe with a good price…
                      I think a meter for 60 euro is to much…

                      Greetings from Saxony, Germany

                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 2 / 4
                      • First post
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy