Showing posts with label RaspberryPI. Show all posts
Showing posts with label RaspberryPI. Show all posts

Friday, April 14, 2017

Part 2 - Raspberry Pi + Domoticz AC Dimmer


     ---------------------------------------------------------------------------------------------------------------------------

                       Special April Sale Discounts!!


Special Spring Sale discounts for all the products available on Tindie Store:
https://www.tindie.com/stores/nEXT_EVO1/

Including the popular MPDMv4 Universal AC Mains Dimmer and the MPRSx8 Home Automation Board!

Spread the word and use Coupon code: NDSCVO10

Thank you all for your support!

 ---------------------------------------------------------------------------------------------------------------------------


Part 2 of the tutorial: Raspberry Pi + Domoticz + MPDM v4 AC dimmer board.


Part 2 topic: Domoticz setup & final testing :





What we will need:

- MPDMv4 Universal AC Dimmer - available also on Tindie Store !
- Raspberry PI 2 Board

- PIGPIO library for Raspberry PI  - take a look at Part 1 how to install and test
- Domoticz
   Latest available, on a Raspberry PI 2 Board install :  
     sudo curl -L install.domoticz.com | bash



Software 

Domoticz LUA script for RPi Dimmer:

commandArray = {}
DomDevice = 'RPi_Dimmer';
if devicechanged[DomDevice] then
   if(devicechanged[DomDevice]=='Off') then
     print ("OFF dimm = "..uservariables['dimm']);
     CalcValue = 860*1000;
   else if(devicechanged[DomDevice]=='On') then
        DomValue = uservariables['dimm'];
        print ("ON dimm = "..uservariables['dimm']);
        CalcValue = DomValue;
      else
         print("Other");
         DomValue = otherdevices_svalues[DomDevice];
         CalcValue = (900-(DomValue*9))*1000;
         commandArray['Variable:dimm'] = tostring(CalcValue);
--         commandArray['Variable:dimm'] = CalcValue;
         print ("dimm Level = "..uservariables['dimm']);
   end
   end
   runcommand = "pigs hp 18 400 " ..tonumber(CalcValue);
   print("PWM calculated value= "..CalcValue);
   print("Run command: " ..runcommand);
   os.execute(runcommand);
end
return commandArray

 Save it as "script_device_RPi_Dimmer.lua" in the "domoticz/scripts/lua" folder !









--------------------------------------------------- DISCLAIMER --------------------------------------------------
WARNING!! You will play with LIVE MAINS!! Deadly zone!! 
      If you don't have any experience and are not qualified for working with MAINS power I will not encourage you to play arround!. The author take no responsibility for any injury or death resulting, directly or indirectly, from your inability to appreciate the hazards of household mains voltages.
   The circuit diagrams are as accurately as possible, but are offered with no guarantees whatsoever. 
    There is no guarantee that this design meets any Rules which may be in force in your country so please check before your local rules/regulations.
----------------------------------------------------------------------------------------------------------------------------
 
                                                             Creative Commons License

All materials and boards released under ESP8266-Projects.com are licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.   





Wednesday, April 5, 2017

Raspberry Pi + Domoticz AC Dimmer - Part 1


     ---------------------------------------------------------------------------------------------------------------------------

                       Special April Sale Discounts!!


Special Spring Sale discounts for all the products available on Tindie Store:
https://www.tindie.com/stores/nEXT_EVO1/

Including the popular MPDMv4 Universal AC Mains Dimmer and the MPRSx8 Home Automation Board!

Spread the word and use Coupon code: NDSCVO10

Thank you all for your support!

 ---------------------------------------------------------------------------------------------------------------------------



New Tutorial related with direct connection setup between Raspberry Pi board and MPDM v4 AC dimmer board.

Part 1: General view, wiring and hardware setup :



What we will need:

- MPDMv4 Universal AC Dimmer - available also on Tindie Store !
- Raspberry PI 2 Board
- Domoticz
   Latest available, on a Raspberry PI 2 Board install :  
     sudo curl -L install.domoticz.com | bash


 

Software 

1. PIGPIO library for Raspberry PI install script:
rm pigpio.zip
sudo rm -rf PIGPIO
wget abyz.co.uk/rpi/pigpio/pigpio.zip
unzip pigpio.zip
cd PIGPIO
make -j4
sudo make install
save it in the choosen directory for your PIGPIO library as "install.sh" and run also command:
chmod 775 install.sh

2. Testing script:
#!/usr/bin/env python

#*** MPDMv4 Universal AC Dimmer PWM Example  ****************
#*                                                          *
#* This demo is using RPi2 GPIO18 (header pin 12)!!         *
#*                                                          *
#* Wiring table:                                            *
#* MPDMv4      Raspberry PI 2                               *
#*   VCNT  ->  GPIO18      - header pin 12                  *
#*    GND  ->  GND         - header pin 6                   *
#*    VCC  ->  VCC (+3,3V) - header pin 1                   *
#*                                                          *
#* tech@esp8266-projects.com                                *
#*                                                          *
#************************************************************
 
import pigpio

GPIO=18

pi = pigpio.pi()

if pi.connected:
   print("Connected to pigpio daemon !\n")

dm = 0
while dm < 860:
    dm = input("Enter Dimmer Value: ")
    dm = int(dm)
    pi.hardware_PWM(GPIO, 5000, dm*1000) # 5000Hz dm*1000% dutycycle

print("\nOut of range. Exiting...")
pi.hardware_PWM(GPIO, 5000, 860000) # 5000Hz 95% dutycycle
pi.stop()


save it as "test.py" in the PIGPIO folder generated after the full install is done.


Next time: Domoticz setup & configuration and Dimmer testing.



--------------------------------------------------- DISCLAIMER --------------------------------------------------
WARNING!! You will play with LIVE MAINS!! Deadly zone!! 
      If you don't have any experience and are not qualified for working with MAINS power I will not encourage you to play arround!. The author take no responsibility for any injury or death resulting, directly or indirectly, from your inability to appreciate the hazards of household mains voltages.
   The circuit diagrams are as accurately as possible, but are offered with no guarantees whatsoever. 
    There is no guarantee that this design meets any Rules which may be in force in your country so please check before your local rules/regulations.
----------------------------------------------------------------------------------------------------------------------------
 
                                                             Creative Commons License

All materials and boards released under ESP8266-Projects.com are licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.   




Saturday, November 5, 2016

WIFI Dev Board for Home Automation - Part 2



This is Part 2 of the Wifi Dev Board for Home Automation series. For general presentation and hardware description please take a look also at Part 1 of the series


MPRSx8 Board is available also on Tindie store: https://www.tindie.com/stores/nEXT_EVO1/







What we will need:



Software implementation:

As this time we will talk about the Software side we will design a very simple driver for our board that will include also a interactive Web command interface for the MPRSx8 Home Automation Dev Board Relays.

To keep things simple, we will just add in our Web Interface 8 ON/OFF Buttons and one general OFF one, from where we can turn ON/OFF all the Relays switches. 


1. Main Program
cls                       ' clear interface
let address = 56  'PCF8574 I2C Address

i2c.setup(4,5)      'choose your I2C bus pins

i2c.begin(address)
ss = 0 xor 255      'XOR - Bit masking for the desired I/O pins
i2c.write(ss)
i2c.end()
button "x1", [5]    ' Button for Relay 1
button "x2", [6]
button "x3", [7]
button "x4", [8]
button "x5", [1]
button "x6", [2]
button "x7", [3]
button "x8", [4]    ' Button for Relay 8
button "OFF", [9] ' General OFF for all the Relays
wait


2. General OFF for all the Relays subroutine
[9]
i2c.begin(address)
ss = 0 xor 255 'XOR - Bit masking for the desired I/O pins
i2c.write(ss)
i2c.end()
wait


3. Subroutines for each Button
[1]
i2c.begin(address)
ss = ss xor 1   'XOR - Bit masking for the desired I/O pins
i2c.write(ss)
i2c.end()
wait

[2]
i2c.begin(address)
ss = ss xor 2
i2c.write(ss)
i2c.end()
wait

[3]
i2c.begin(address)
ss = ss xor 4
i2c.write(ss)
i2c.end()
wait

[4]
i2c.begin(address)
ss = ss xor 8
i2c.write(ss)
i2c.end()
wait

[5]
i2c.begin(address)
ss = ss xor 16
i2c.write(ss)
i2c.end()
wait

[6]
i2c.begin(address)
ss = ss xor 32
i2c.write(ss)
i2c.end()
wait

[7]
i2c.begin(address)
ss = ss xor 64
i2c.write(ss)
i2c.end()
wait

[8]
i2c.begin(address)
ss = ss xor 128
i2c.write(ss)
i2c.end()
wait


In the Web editor interface Save your program as "test_MPRSx8_1.bas" and Run it.



If all OK the result should look as below:




If you want your program to start automatically at reboot/power ON then just Save it as "default.bas" and also from Settings Tab enable the "Run default.bas at startup".



Be aware that at start-up/reboot, it is a delay before your program will start automatically.