Skip to content
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
RJ_MakeR

RJ_Make

@RJ_Make
Hero Member
  • Getting Started
  • Controller
  • Build
  • Hardware
  • Download/API
  • Forum
  • Store
About
Posts
463
Topics
17
Shares
0
Groups
1
Followers
0
Following
0

Posts

Recent Best Controversial

  • 'MySensoring' a GE Washer
    RJ_MakeR RJ_Make

    This is another very simple "Wash Cycle Completed" sensor. It's design uses the same Optocoupler sensing design I used in the Kiddie Smoke Detector project. The only difference is that I'm using 1 AC to DC transformer, and a boost module to boost the washer speaker power to fire the Optocoupler.

    Parts:

    1. 1 Cheap AC/DC converter
    2. 1 Optocoupler
    3. 1 Step up Regulator
    4. 1 Small Proto Board.
    5. Some wire

    Highlights:
    Use the Washers .5vdc Signal Piezo to interface with the Pro-Mini. The voltage to the Piezo is to low to drive the Optocoupler so I had to use a boost module to boost the voltage to the Optocoupler. I'm not sure what the long term effect will be on washers control board Piezo drive circuit, so I will follow up if I encounter a problem.

    Again Uses the same sketch as the Kiddie Smoke Project, with the only change being to CYCLE_INTERVAL (For my dryer 3 works well)

    Sketch:

    // Based on Author: Patrick 'Anticimex' Fallberg Interrupt driven binary switch example with dual interrupts
    
    #include <MySensor.h>
    #include <SPI.h>
    
    #define SKETCH_NAME "Washer End Cycle"
    #define SKETCH_MAJOR_VER "1"
    #define SKETCH_MINOR_VER "1"
    
    #define CHILD_ID 3
    
    #define SIREN_SENSE_PIN 3   // Arduino Digital I/O pin for optocoupler for siren
    
    unsigned int SLEEP_TIME			= 32400; // Sleep time between reads (in seconds) 32400 = 9hrs?
    long CYCLE_COUNTER					= 3;  // This is the number of times we want the Audio Counter to reach before triggering a signal to controller.
    unsigned long CYCLE_INTERVAL		= 3; // How long do we want to watch once first detected (in seconds) 
    											//Adjust for your smoke detector, you want to pick up the siren signal at least 3 time to help stop false alarms. 
    unsigned long CYCLE_RATE			= 90; // How fast do we want to move checking the Pin state in the Status Check (in Millis) Adjust for your smoke detector
    											//Adjust for your smoke detector, you want to pick up the siren signal at least 3 time to help stop false alarms.
    unsigned long CYCLE_TIME_OKSTATUS	= 8; // How long do we want to watch for "all clear" once we have confirmed an Alarm (in seconds)
    unsigned long CYCLE_RATE_OKSTATUS	= 500; // How fast do we want to move checking the Pin state when checking for an OK status (in Millis)
    
    int oldValue=1;
    int value=0;
    
    
    MySensor sensor_node;
    MyMessage msg(CHILD_ID, V_TRIPPED);
    
    void setup()  
    {  
    	sensor_node.begin();
    	// Setup the Siren Pin HIGH
    	pinMode(SIREN_SENSE_PIN, INPUT_PULLUP);
    	// Send the sketch version information to the gateway and Controller
    	sensor_node.sendSketchInfo(SKETCH_NAME, SKETCH_MAJOR_VER"."SKETCH_MINOR_VER);
    	sensor_node.present(CHILD_ID, S_SMOKE); 
    	//Send the state -- Always send Alarm state on power up.
    	sensor_node.send(msg.setSensor(CHILD_ID).set("1"), true);
    	
    }
    
    // Loop will iterate on changes on the BUTTON_PINs
    void loop() 
    {
    	// Check to see if we have a alarm. I always want to check even if we are coming out of sleep for heartbeat.
    	AlarmStatus();
    	// Sleep until we get a audio power hit on the optocoupler or 9hrs
    	sensor_node.sleep(SIREN_SENSE_PIN-2,FALLING, SLEEP_TIME * 1000UL);
    	
    } 
    
    void AlarmStatus()
    {
    	
    // We will check the status now, this could be called by an interrupt or heartbeat
    int siren_audio_count	=0;
    long cycle_time			=0; 	
    unsigned long startedAt = millis();
    
    	Serial.println("Status Check");
    	//Read the Pin
    	value = digitalRead(SIREN_SENSE_PIN);
        // If Pin return a 0 (LOW), then we have a Alarm Condition
    	if (value != 1) {
    		 //We are only going to check for status for CYCLE_INTERVAL time I think this should help stabilize Siren Sensing
    		  while(millis() - startedAt < CYCLE_INTERVAL * 1000)
    		  {
    			  //We are going to check CYCLE_RATE fast
    			  if(millis() - cycle_time > CYCLE_RATE ) {
    				  // save the last time you Checked
    				  cycle_time = millis();
    				    //We will count each time SIREN_SENSE_PIN is 0 (Alarm - LOW) for the above time and at the above rate.
    					value = digitalRead(SIREN_SENSE_PIN);  
    						if (value != 1)
    						{
    							siren_audio_count++;
    							Serial.print("Audio Count: ");
    							Serial.println(siren_audio_count);
    						} 
    			  }
    		  }
    				// Eval siren audio hit count against our limit. If we are => then CYCLE_COUNTER then lets start a loop for "All Clear" reset
    				// If we continue to return an audio power hit, then we will continue to send to the controller. 
    				if (siren_audio_count>=CYCLE_COUNTER)
    				{
    					Serial.println("Alarm Detected");
    					
    					do 
    					{
    					  //update gateway with bad news.
    					  //sensor_node.send(msg.set("1"));
    					  sensor_node.send(msg.setSensor(CHILD_ID).set("1"), true);
    					  Serial.println("Alarm Detected Sent to gateway");
    					} while (IsAlarmAllClear()!=1);
    				
    				}
    	}
    	//Pin returned a 1 (High) so there is no alarm. 
    	else
    	{
    	  IsAlarmAllClear();
    	}
    }
    
    int IsAlarmAllClear()
    // We are looking for an gap in time that we no longer see an audio power hit to the optocoupler. 
    
    {
     int alarmOn				=0;
     long cycle_time			=0;
     unsigned long startedAt	= millis();
    
    	//We are only going to check for status for CYCLE_TIME_OKSTATUS time	
    	while(millis() - startedAt < CYCLE_TIME_OKSTATUS * 1000)
    	{
    		//We are going to check CYCLE_RATE_OKSTATUS fast
    		if(millis() - cycle_time > CYCLE_RATE_OKSTATUS) {
    			// save the last time you Checked
    			cycle_time = millis();
    			int value = digitalRead(SIREN_SENSE_PIN);
    			if (value != 1) //We are still in an alarm state
    			{
    				alarmOn++;
    			}
    		}
    	}
    			if (alarmOn < 1)
    			{
    				// We don't have any sign that we are still in an alarm status
    				//Send all clear msg to controller
    				//sensor_node.send(msg.set("0"));
    				sensor_node.send(msg.setSensor(CHILD_ID).set("0"), true);
    				// Used to update the node - NOT used for battery check.
    				sensor_node.sendBatteryLevel(random(1, 100) );
    				Serial.println("All Clear");
    				return 1;
    			} 
    			else
    			{
    				// We are still in an alarm status
    				//The calling function will handle sending NOT CLEAR to controller				
    				Serial.println("NOT CLEAR");
    				return 0;
    			} 	 
    

    }

    Here a some Pictures:

    20150613_091041.jpg

    20150613_091049.jpg

    20150613_091057.jpg

    20150613_091106.jpg

    2015-06-13_11-12-02.png

    My Project

  • Windows GUI/Controller for MySensors
    RJ_MakeR RJ_Make

    Will this program act like a controller (take the place of Vera?) and handle automation logic?

    Controllers myscontroller mysbootloader

  • 'MySensoring' a Kidde Smoke Detector. (Completed)
    RJ_MakeR RJ_Make

    I think it's complete.

    Hardware wise this project is VERY easy to complete. The hardest part was arranging the hardware to fit in the case. The sketch on the other hand was a pain in my butt and I'm sure it's VERY inefficient, but does seem to work without ANY false alarms.

    Thanks to @BulldogLowell for the help!

    Mod Goals:

    1. Detect when the siren is powered up and transmit that "trip" to Vera (for various processes)
    2. Use interrupt to start Arduino with a 9 hour "heart beat".
    3. Utilize the detectors battery power.

    Because this detector has on-board battery level checks and warnings, I don't have to mess around with building a battery circuit.

    BOM:

    1. Pro Mini
    2. I'm using Optocoupler for the speaker power isolation (you could probably just sense the 3.3v speaker voltage directly).
    3. Kidde Detector Used (any can be used providing you have the space inside)

    Here is the sketch:

    	// Based on Author: Patrick 'Anticimex' Fallberg Interrupt driven binary switch example with dual interrupts
    
    	#include <MySensor.h>
    	#include <SPI.h>
    
    	#define SKETCH_NAME "Smoke Alarm Sensor"
    	#define SKETCH_MAJOR_VER "1"
    	#define SKETCH_MINOR_VER "0"
    
    	#define CHILD_ID 3
    
    	#define SIREN_SENSE_PIN 3   // Arduino Digital I/O pin for optocoupler for siren
    
    	unsigned int SLEEP_TIME			= 32400; // Sleep time between reads (in seconds) 32400 = 9hrs?
    	long CYCLE_COUNTER					= 3;  // This is the number of times we want the Audio Counter to reach before triggering a signal to controller.
    	unsigned long CYCLE_INTERVAL		= 9; // How long do we want to watch once first detected (in seconds) 
    												//Adjust for your smoke detector, you want to pick up the siren signal at least 3 time to help stop false alarms. 
    	unsigned long CYCLE_RATE			= 90; // How fast do we want to move checking the Pin state in the Status Check (in Millis) Adjust for your smoke detector
    												//Adjust for your smoke detector, you want to pick up the siren signal at least 3 time to help stop false alarms.
    	unsigned long CYCLE_TIME_OKSTATUS	= 8; // How long do we want to watch for "all clear" once we have confirmed an Alarm (in seconds)
    	unsigned long CYCLE_RATE_OKSTATUS	= 500; // How fast do we want to move checking the Pin state when checking for an OK status (in Millis)
    
    	int oldValue=1;
    	int value=0;
    
    
    	MySensor sensor_node;
    	MyMessage msg(CHILD_ID, V_TRIPPED);
    
    	void setup()  
    	{  
    		sensor_node.begin();
    		// Setup the Siren Pin HIGH
    		pinMode(SIREN_SENSE_PIN, INPUT_PULLUP);
    		// Send the sketch version information to the gateway and Controller
    		sensor_node.sendSketchInfo(SKETCH_NAME, SKETCH_MAJOR_VER"."SKETCH_MINOR_VER);
    		sensor_node.present(CHILD_ID, S_SMOKE); 
    	}
    
    	// Loop will iterate on changes on the BUTTON_PINs
    	void loop() 
    	{
    		// Check to see if we have a alarm. I always want to check even if we are coming out of sleep for heartbeat.
    		AlarmStatus();
    		// Sleep until we get a audio power hit on the optocoupler or 9hrs
    		sensor_node.sleep(SIREN_SENSE_PIN-2,FALLING, SLEEP_TIME * 1000UL);
    	} 
    
    	void AlarmStatus()
    	{
    	
    	// We will check the status now, this could be called by an interrupt or heartbeat
    	int siren_audio_count	=0;
    	long cycle_time			=0; 	
    	unsigned long startedAt = millis();
    
    		Serial.println("Status Check");
    		//Read the Pin
    		value = digitalRead(SIREN_SENSE_PIN);
    		// If Pin return a 0 (LOW), then we have a Alarm Condition
    		if (value != 1) {
    			 //We are only going to check for status for CYCLE_INTERVAL time I think this should help stabilize Siren Sensing
    			  while(millis() - startedAt < CYCLE_INTERVAL * 1000)
    			  {
    				  //We are going to check CYCLE_RATE fast
    				  if(millis() - cycle_time > CYCLE_RATE ) {
    					  // save the last time you Checked
    					  cycle_time = millis();
    						//We will count each time SIREN_SENSE_PIN is 0 (Alarm - LOW) for the above time and at the above rate.
    						value = digitalRead(SIREN_SENSE_PIN);  
    							if (value != 1)
    							{
    								siren_audio_count++;
    								Serial.print("Audio Count: ");
    								Serial.println(siren_audio_count);
    							} 
    				  }
    			  }
    					// Eval siren audio hit count against our limit. If we are => then CYCLE_COUNTER then lets start a loop for "All Clear" reset
    					// If we continue to return an audio power hit, then we will continue to send to the controller. 
    					if (siren_audio_count>=CYCLE_COUNTER)
    					{
    						Serial.println("Alarm Detected");
    					
    						do 
    						{
    						  //update gateway with bad news.
    						  sensor_node.send(msg.set("1"));
    						  Serial.println("Alarm Detected Sent to gateway");
    						} while (IsAlarmAllClear()!=1);
    				
    					}
    		}
    		//Pin returned a 1 (High) so there is no alarm. 
    		else
    		{
    		  IsAlarmAllClear();
    		}
    	}
    
    	int IsAlarmAllClear()
    	// We are looking for an gap in time that we no longer see an audio power hit to the optocoupler. 
    
    	{
    	 int alarmOn				=0;
    	 long cycle_time			=0;
    	 unsigned long startedAt	= millis();
    
    		//We are only going to check for status for CYCLE_TIME_OKSTATUS time	
    		while(millis() - startedAt < CYCLE_TIME_OKSTATUS * 1000)
    		{
    			//We are going to check CYCLE_RATE_OKSTATUS fast
    			if(millis() - cycle_time > CYCLE_RATE_OKSTATUS) {
    				// save the last time you Checked
    				cycle_time = millis();
    				int value = digitalRead(SIREN_SENSE_PIN);
    				if (value != 1) //We are still in an alarm state
    				{
    					alarmOn++;
    				}
    			}
    		}
    				if (alarmOn < 1)
    				{
    					// We don't have any sign that we are still in an alarm status
    					//Send all clear msg to controller
    					sensor_node.send(msg.set("0"));
    					Serial.println("All Clear");
    					return 1;
    				} 
    				else
    				{
    					// We are still in an alarm status
    					//The calling function will handle sending NOT CLEAR to controller				
    					Serial.println("NOT CLEAR");
    					return 0;
    				} 	 
    
     }
    

    Here is the wiring:
    MySensorsKiddeSmokeDetector_bb.png

    Here are some finished hardware pics:

    20150207_104613.jpg

    20150207_104619.jpg

    20150207_104640.jpg

    20150207_104707.jpg

    20150207_183259.jpg

    My Project smoke detector

  • 'MySensoring' a FlashForge Creator Pro 3D Printer.
    RJ_MakeR RJ_Make

    Most here have seen me whine about wanting a 3D printer, well those days are gone. I got a FlashForge Creator Pro, which after making some repairs due to shipping damage, works quite well, at least with my test prints...

    That said, one very annoying issue with the printer is that the on/off switch is located in the back, which makes it a bit of a pain to get to. So I thought, I should "MySensor" this puppy.... :-)

    So before I really get into printing off really "useful stuff", I wanted to place a small HD camera inside the printer, and allow for remote and local power on/off and viewing.

    I did all this kinda fast so the workmanship isn't up to my desire level, but......

    Parts:

    1. Wire
    2. Push Button
    3. Mini Rboard and Radio
    4. HD Camera and 2.5mm Lens

    Highlights:

    1. Main power switch is still the Master On/Off. (I can leave it on now)
    2. The Printers power supply is fairly robust, so I didn't want to switch the 24vdc output to all the electronics (not too mention that leaves the PSU powered up all the time, and I didn't want that either). So I decided it would be best to switch the mains power to the PSU.
    3. I Branched off the mains with a small 120vac to 5vdc transformer to power the Mini Rboard.
    4. I mounted the camera's 12v 2a transformer inside the printers electronic compartment also. (the camera will only run if the unit is powered up)

    I mounted the camera in on the back wall ( I will probably change this as I'm not satisfied with the viewing angle) and ran the line down through the left rear wire chase. Once inside the electrical compartment, I fed the Ethernet line out the back with the extruder cables and left the power line for the camera inside the electrical compartment.

    I drilled a small hole underneath the control display in the middle, mounted the Rboard off a platform screw that was already present.

    I mounted the power transformer for the Rboard with supper sticky double sided tape and also zip tied the wiring to a post. (I really should print an encloser for it but.....)

    I also mounted the cameras power supply in the same manor.

    From there it's just a matter of breaking down the wiring to the printers PSU and switching that and power to the camera....

    The push button is connected to the A0 jumper set on the Rboard, and the only change in the standard relay with push button sketch was to change pin 3 to 14 (is the digital mapping to A0)

    Sorry about the quality of the pictures...

    20150504_134903.jpg

    20150504_134911.jpg

    20150504_134922.jpg

    20150504_165542.jpg

    Enclosures / 3D Printing

  • 'MySensoring' a GE Electric Clothes Dryer
    RJ_MakeR RJ_Make

    GE Electric Dryer M# GTX18ESSJ0WW

    This is a very simple "Dry Cycle Completed" sensor. It's designed uses the same Optocoupler sensing design I used in the Kiddie Smoke Detector project. The only difference is that I'm using 2 AC to DC transformers. One to power the the Pro Mini, and the other to sense cycle completion.

    Parts:

    1. Some wire
    2. 2 Cheap AC/DC converters
    3. 1 Optocoupler
    4. 1 Resistor 4.7K
    5. 1 Step Down Regulator (for the radio)
    6. 1 Small Proto Board.

    Highlights:

    1. Use the Dryer 120v Signal buzzer to interface with the Pro-Mini. Simply power the 2nd (sense) AC to DC transformer with the signal buzzer, and use the 5vdc output to activate the optocoupler. (I'm sure you can probably just read the raw 5vdc, but I have 60 of these opto's so I wanted to use one.. :-) )
    2. Uses the same sketch as the Kiddie Smoke Project, with the only change being to CYCLE_INTERVAL (For my dryer 3 works well)

    Sketch:

    // Based on Author: Patrick 'Anticimex' Fallberg Interrupt driven binary switch example with dual interrupts
    
    #include <MySensor.h>
    #include <SPI.h>
    
    #define SKETCH_NAME "Dryer End Cycle"
    #define SKETCH_MAJOR_VER "1"
    #define SKETCH_MINOR_VER "1"
    
    #define CHILD_ID 3
    
    #define SIREN_SENSE_PIN 3   // Arduino Digital I/O pin for optocoupler for siren
    
    unsigned int SLEEP_TIME			= 32400; // Sleep time between reads (in seconds) 32400 = 9hrs?
    long CYCLE_COUNTER					= 3;  // This is the number of times we want the Audio Counter to reach before triggering a signal to controller.
    unsigned long CYCLE_INTERVAL		= 3; // How long do we want to watch once first detected (in seconds) 
    											//Adjust for your smoke detector, you want to pick up the siren signal at least 3 time to help stop false alarms. 
    unsigned long CYCLE_RATE			= 90; // How fast do we want to move checking the Pin state in the Status Check (in Millis) Adjust for your smoke detector
    											//Adjust for your smoke detector, you want to pick up the siren signal at least 3 time to help stop false alarms.
    unsigned long CYCLE_TIME_OKSTATUS	= 8; // How long do we want to watch for "all clear" once we have confirmed an Alarm (in seconds)
    unsigned long CYCLE_RATE_OKSTATUS	= 500; // How fast do we want to move checking the Pin state when checking for an OK status (in Millis)
    
    int oldValue=1;
    int value=0;
    
    
    MySensor sensor_node;
    MyMessage msg(CHILD_ID, V_TRIPPED);
    
    void setup()  
    {  
    	sensor_node.begin();
    	// Setup the Siren Pin HIGH
    	pinMode(SIREN_SENSE_PIN, INPUT_PULLUP);
    	// Send the sketch version information to the gateway and Controller
    	sensor_node.sendSketchInfo(SKETCH_NAME, SKETCH_MAJOR_VER"."SKETCH_MINOR_VER);
    	sensor_node.present(CHILD_ID, S_SMOKE); 
    	//Send the state -- Always send Alarm state on power up.
    	sensor_node.send(msg.setSensor(CHILD_ID).set("1"), true);
    	
    }
    
    // Loop will iterate on changes on the BUTTON_PINs
    void loop() 
    {
    	// Check to see if we have a alarm. I always want to check even if we are coming out of sleep for heartbeat.
    	AlarmStatus();
    	// Sleep until we get a audio power hit on the optocoupler or 9hrs
    	sensor_node.sleep(SIREN_SENSE_PIN-2,FALLING, SLEEP_TIME * 1000UL);
    	
    } 
    
    void AlarmStatus()
    {
    	
    // We will check the status now, this could be called by an interrupt or heartbeat
    int siren_audio_count	=0;
    long cycle_time			=0; 	
    unsigned long startedAt = millis();
    
    	Serial.println("Status Check");
    	//Read the Pin
    	value = digitalRead(SIREN_SENSE_PIN);
        // If Pin return a 0 (LOW), then we have a Alarm Condition
    	if (value != 1) {
    		 //We are only going to check for status for CYCLE_INTERVAL time I think this should help stabilize Siren Sensing
    		  while(millis() - startedAt < CYCLE_INTERVAL * 1000)
    		  {
    			  //We are going to check CYCLE_RATE fast
    			  if(millis() - cycle_time > CYCLE_RATE ) {
    				  // save the last time you Checked
    				  cycle_time = millis();
    				    //We will count each time SIREN_SENSE_PIN is 0 (Alarm - LOW) for the above time and at the above rate.
    					value = digitalRead(SIREN_SENSE_PIN);  
    						if (value != 1)
    						{
    							siren_audio_count++;
    							Serial.print("Audio Count: ");
    							Serial.println(siren_audio_count);
    						} 
    			  }
    		  }
    				// Eval siren audio hit count against our limit. If we are => then CYCLE_COUNTER then lets start a loop for "All Clear" reset
    				// If we continue to return an audio power hit, then we will continue to send to the controller. 
    				if (siren_audio_count>=CYCLE_COUNTER)
    				{
    					Serial.println("Alarm Detected");
    					
    					do 
    					{
    					  //update gateway with bad news.
    					  //sensor_node.send(msg.set("1"));
    					  sensor_node.send(msg.setSensor(CHILD_ID).set("1"), true);
    					  Serial.println("Alarm Detected Sent to gateway");
    					} while (IsAlarmAllClear()!=1);
    				
    				}
    	}
    	//Pin returned a 1 (High) so there is no alarm. 
    	else
    	{
    	  IsAlarmAllClear();
    	}
    }
    
    int IsAlarmAllClear()
    // We are looking for an gap in time that we no longer see an audio power hit to the optocoupler. 
    
    {
     int alarmOn				=0;
     long cycle_time			=0;
     unsigned long startedAt	= millis();
    
    	//We are only going to check for status for CYCLE_TIME_OKSTATUS time	
    	while(millis() - startedAt < CYCLE_TIME_OKSTATUS * 1000)
    	{
    		//We are going to check CYCLE_RATE_OKSTATUS fast
    		if(millis() - cycle_time > CYCLE_RATE_OKSTATUS) {
    			// save the last time you Checked
    			cycle_time = millis();
    			int value = digitalRead(SIREN_SENSE_PIN);
    			if (value != 1) //We are still in an alarm state
    			{
    				alarmOn++;
    			}
    		}
    	}
    			if (alarmOn < 1)
    			{
    				// We don't have any sign that we are still in an alarm status
    				//Send all clear msg to controller
    				//sensor_node.send(msg.set("0"));
    				sensor_node.send(msg.setSensor(CHILD_ID).set("0"), true);
    				// Used to update the node - NOT used for battery check.
    				sensor_node.sendBatteryLevel(random(1, 100) );
    				Serial.println("All Clear");
    				return 1;
    			} 
    			else
    			{
    				// We are still in an alarm status
    				//The calling function will handle sending NOT CLEAR to controller				
    				Serial.println("NOT CLEAR");
    				return 0;
    			} 	 
    

    }

    Here are a few, pretty bad pictures:

    20150613_090149.jpg

    20150613_090245.jpg

    20150613_090424.jpg

    20150613_090429.jpg

    20150613_090436.jpg

    20150613_090418.jpg

    2015-06-13_11-12-02.png

    My Project

  • Reflow Oven
    RJ_MakeR RJ_Make

    Ok;.... so I received my oven kit from Peter Monday, and built it up yesterday.. I still have to work out the coding for the auto door opening and 2nd lower thermocouple (I think that one will be much later), but here is the hardware setup..

    There were only 2 items on this build that were somewhat difficult.. The most difficult by leaps and bounds is installing the gold reflective tape. It's was a nightmare, and if I every build a 2nd one I will completely dismantle the toaster and apply the tape with the elements and element guards out of the way next time... The 2nd item was the ControLeo's mounting box, I think reversing the mounting (mount board to front panel) of the PCB would make it much easier. I do however understand that having custom enclosures would probably add too much to the cost..

    I wind up over building everything, so some of the stuff I did is probably not necessary... For instance, I forgot to get some pictures, but I insulated the entire outer jacket with this stuff.. It added expense, but wow, the differences in temps from where that stuff is, and where it's not is amazing..

    Ok.... enough of that.. On to the pictures...

    BOM: (Much of this stuff you probably have laying around)

    1. ControLeo2 Oven Kit Or ControLeo2 Plain.
    2. This Oven
    3. Jacket Insulation
    4. Control Wall Insulation
    5. 12vdc 1.5a power supply.
    6. Music Wire
    7. Servo (Door Opener Rod)
    8. Stainless Steel 300x3mm Round Rod (D00r Opener Rod)
    9. 3mm collar (Door Opener Rod)
    10. Perforated Aluminum Sheet
    11. 12vdc 60mm Cooling Fan
    12. DC-DC Converter (set at 5vdc)
    13. 2a SSR (For Cooling Fan)
    14. High Temp Wire12-10 Gauge
    15. High Temp Loom
    16. Heat Shrink
    17. Thermocouple Breakout Board (for 2nd lower thermocouple)
    18. Lower Thermocouple
    19. 2 Sided Foam Tape

    Removed oven jacket and feet and swap the upper and lower elements. (Take your time, the elements and spot welds are very fragile) While the jacket is off, I Insulated it. (Optional)

    20141114_171647.jpg

    20141114_171700.jpg

    Removed all unnecessary wiring (I choose to keep the thermostat and switches in the circuit for some over temp protection)

    Drilled a 3mm hole in front and rear of oven for door opener.
    20141121_165356.jpg

    Built mount and install the door servo.
    20141121_173127.jpg

    Installed Insulation on component wall. I was able to get this in there pretty tight, so I only had to use two rivets at the very top (not seen in this pic)
    20141215_163939.jpg

    Fitted the aluminum that comes in ControLeo's 2 oven kit to "hang" off the top of the cavity seam. I also installed the SSR's, DC to DC converter. I Also cut out and installed power supply and cooling fan (air entering control space)
    20141216_104609.jpg

    Very Important!

    20141216_101715.jpg

    I drilled 5 more holes. (3) 3/8" (two for ControLeo2 Case and one underneath oven rear wall spacer) and the other 2 were for the sensors, upper and lower rear of oven cavity.

    Fished all wire through lower grommet and loom. (it was VERY tight, but it all fit)

    Here is a picture with everything installed. (The bracket is mounted underneath the oven cavity seem (in the pic it looks like it's on top, but it's not))
    20141216_135105.jpg

    20141216_135129.jpg

    The ControLeo2 all wired up with 2nd thermocouple breakout board and servo connection. (2 sided foam tape worked well for mounting the breakout board onto the ControLeo2 board.

    20141216_154632.jpg

    Installed interior Gold tape and Insulation. (Man this was the hardest part of this entire build..... )

    20141216_164158.jpg

    20141216_164206.jpg

    20141217_150727.jpg

    20141217_150742.jpg

    And the completed oven....

    20141217_150654.jpg

    20141217_150616.jpg

    20141217_150600.jpg

    20141216_194420.jpg

    20141216_194335.jpg

    20141216_194340.jpg

    I'm sure I missed something but I hope you found this interesting...

    Until next time......

    Updated: Forgot to show the use of the left-over high temp. connection covers on elements behind SSR bracket.

    Hardware

  • Donations (Lets help keep the lights on)
    RJ_MakeR RJ_Make

    In another thread I asked about financially supporting the efforts for the board_development_site that Hek is working on, and it made me think why have I not done so for the MySensors project. I started looking around and what do I find, a Donation Link on the main page..

    Not sure if others have noticed (I'm mainly in the forums) this but I thought I would bring it to everyone attention. :-)

    2014-12-18_18-00-52.png

    If we forget about all the hard work that goes into maintaining the site (which we should never ever do), the actual costs of just keeping the lights on has to be a fair chunk of money every day, month and year.

    **So if you are like me and have benefited from this site why not make a small donation to help keep the lights on. I guarantee it will make you feel good :-) **

    General Discussion donations mysensors.org h help pay the bi

  • Refrigeration Datta Logger (A Non MySensors Project)
    RJ_MakeR RJ_Make

    So I've been wanting to build a Refrigeration Temp / Current logger for some time now, and I finally got around to it (spured by a post on another board). So while this is not a MySensors project, I thought it may help those who are thinking about doing something similar.

    Just about all the information to build a temp / current logger is out there on the Internets so there's nothing terribly innovative about it.

    Features:

    • Logs the following to an Adafruit SD Card Shield
      3 DHT's (Temperature and Humidity)
      1 Equipment Current
      2 Light levels
    • Uses a settings.ini file to choose logging options.
    • Uses a fairly robust error function.
    • 6.5 Second log rate (this is the fastest due to the DHT's)
    • Can log data indefinitely (Limited only by the size SD Card).
    • Core design can be used on both 125vac and 220vac equipment. (Internal Power Supply Allows for this)

    BOM:

    Core Items:

    1. UNO R3 ATmega328P
    2. Adafruit Assembled Data Logging shield for Arduino
    3. DHT22 AM2302 Digital Temperature and Humidity Sensor Module
    4. Non-invasive AC Sensor Split Core Current Transformer SCT-013-000 0-100A
    5. 1/4W Metal Film Resistors Assorted kit 75 Values
    6. Kit 10value 100pcs 4X7mm Electrolytic Capacitor Assortment
    7. 10PCS Double Side Prototype PCB Tinned Universal Breadboard
    8. 20pcs, PushButton SPST Momentary Normal OFF N/O Push Switch Red Cap Push to Make
    9. 20PCS Photo Light Sensitive Resistor Photoresistor Optoresistor 5mm GL5539
    10. Some type of case. I used a old Grasslin DTMV40-M Multi Voltage Defrost Timer case since we use them at work, but you can use any appropriately sized case.
    11. Plastic Project Box Electronic Junction Case
    12. Extension Cord
    13. Romex Connectors
    14. CONTROL WIRE 26AWG. 4 CONDUCTORS. This is VERY important and I wound up going through several different wire types and sizes. You must not use anything larger then 26AWG, and It must be stranded. 26AWG stranded telephone cable should work very well, because it's somewhat flat and will help when passing it through the refrigerator door seals.
    15. If not building your own.This Power Supply @ 9v should work

    Optionals:
    3) 10pcs PCB Panel Mount 4 Pins 3.5mm Female Socket Stereo Headphone Jack
    3) 10 PCS 4-pole 3.5mm Stereo MIC Audio Male Female Plug Jack Soldering

    If you build you own power supply:

    1. 20 Pieces ELECTROLYTIC CAPACITORS 4.7uf 400v
    2. Transformer
    3. Fuse (1A)
    4. MOV (471KD05)
    5. Tvs

    BUILDING IT UP:

    Contributing Web Sites

    https://learn.adafruit.com/adafruit-data-logger-shield

    http://www.homautomation.org/2013/09/17/current-monitoring-with-non-invasive-sensor-and-arduino/

    You can build it up on a bread board if you like, but I'm just going to start off with my actual build.

    Here's my breadboard mess.

    20141019_153251_Android.jpg

    PSU:

    I choose to build my own power supply, but you can simply use a 'wall wart'

    Here is the base PSU, without the caps, MOV and Tvs (I forgot to take pics of the final)

    Base PSU.jpg

    Distribution Board:

    The distribution board handles the current sensing, LED and Power circuits.

    20141024_190038_Android.jpg

    20141024_190100_Android.jpg

    Here is the diagram for the Current Sensing circuit section:

    CT Diagram.jpg

    Here is a diagram for the LED's circuit section:

    LED Diagram.png

    Sensor Connect Board:

    This is an option section, (You can hard wire the sensors but you will need to create a connection break of some type so you can pass the wire through the refrigerator door gasket)

    Here is a picture of the board.

    20141023_183338_Android.jpg

    Assembly:

    Case with PSU Install

    20141023_183329_Android.jpg

    Case with Sensor Connect Board Installed

    20141023_185442_Android.jpg

    First attempt with drilling the holes.

    20141023_185517_Android.jpg

    Second attempt, unfortunately after the board was glued in place. But with a conical grinder and a Dremel it worked perfectly

    20141102_205009.jpg

    Case with Distribution Board

    20141024_191009_Android.jpg

    Case with Arduino and Logging Shield Installed

    20141024_193107_Android.jpg

    20141024_193208_Android.jpg

    Case with CT, ON/OFF switch, Start Switch and LED's

    20141102_204943.jpg

    20141102_204951.jpg

    Sensors:

    20141030_180246.jpg

    20141102_204858.jpg

    Testing:

    20141102_211537.jpg

    20141102_211523.jpg

    20141102_211516.jpg

    Case with some outfitted with some 'Bling'

    20141108_115231.jpg

    20141108_115146.jpg

    Hopefully I didn't miss anything...

    Next Up.... High Temp (Oven) logger..... Well maybe next up, maybe not... ;-)

    My Project datalogger temperature current humidity sd card

  • MySensors Sensebender Micro 3DP Case
    RJ_MakeR RJ_Make

    It's by far complete, but here is the first revision. There are few design errors, but the overall main case works.

    Sorry about the terrible pictures..

    20150621_103315.jpg

    20150621_103328.jpg

    20150621_103337.jpg

    20150621_103401.jpg

    20150621_103423.jpg

    20150621_103441.jpg

    20150621_103456.jpg

    Enclosures / 3D Printing

  • 'MySensoring' an HVAC Fresh Air Intake System.
    RJ_MakeR RJ_Make

    Here is another completed project using MySensors. My current HVAC system is controlled by a Honeywell YTHX9421R5085WW/U Prestige IAQ control system which works great and has a boat load of options, but has one problem for me. The web access system does not allow control of the fresh air system remotely. It can only be control by the thermostat directly. So I decided that with MySensors I should be able to change that.

    With this "mod" I'm able to remotely:

    1. Activate the fresh air intake system (open a motorized damper, turn on the fresh air blower and the HVAC blower)
    2. Detect when the thermostat is sending a fresh air signal. (This allows me to turn on exhaust blowers on the upper floor)
    3. Lock out the thermostat from turning on the fresh air system. (used when humidity is too high)
    4. Physically active the fresh air system.
    5. Monitor the fresh air intake air temp (mixed air temp)

    The project is very similar to my EH40 project, with a few exceptions.

    1. Utilized the HVAC's 27vac to power the project.
    2. Used mb6s surface mount rectifiers. (had them laying around)
    3. Used a Optocoupler. (I had a lot of fun messing around with that)(Used it for the detection circuit)
    4. Used a DC to DC converter to lower the 27vdc down to 5vdc

    Here are some pictures of the work..

    Thermostat fresh air signal detection board:
    20141130_133841.jpg

    20141130_133908.jpg

    Case with relays and slot cut out:
    20141130_134014.jpg

    Others:

    20141204_175407.jpg

    20141204_175421.jpg

    20141204_175439.jpg

    20141204_175454.jpg

    20141204_184052.jpg

    20141204_184118.jpg

    20141204_184146.jpg

    20141204_184153.jpg

    20141204_184229.jpg

    20141207_202319.jpg

    20141207_202422.jpg

    20141207_202459.jpg

    20141207_202526.jpg

    Well until next time... ;-)

    My Project controlling hva thermostat optocoupler dc to dc conver honeywell iaq

  • MySensors Sensebender Micro 3DP Case
    RJ_MakeR RJ_Make

    V2. Case is smaller, and lighter (much thinner walls) and includes mounting tabs (instead of the rear mounting holes). I also added some side ventilation holes.

    20150709_192244.jpg

    20150709_192302.jpg

    Enclosures / 3D Printing

  • Reflow Oven
    RJ_MakeR RJ_Make

    With all these SMT boards being offered, I decided to build a Reflow Oven, and in my research I ran across the ControLeo on Ebay, Contacted the designer and discovered that he has a ControLeo2 coming out on Kicker-starter..

    Check It out..

    photo-main.jpg

    Hardware

  • 'MySensoring' an Intermatic EH40 (Project Completed!)
    RJ_MakeR RJ_Make

    Project Complete! My EH40 has now been 'MySensored'

    This was a fun project, and I learned quite a bit during the process and I was able to accomplish all my goals.

    Goal Recap

    1. Remotely lockout the EH40's schedule.
    2. Remotely Activate the EH40 Relay.
    3. Locally override_to_On, Both Vera and the EH40 schedule (Button)
    4. Remotely acquire water heater's tank temperature.

    Final Components Used:

    1. Arduino mini 5V
    2. Dual Relay 5V
    3. Couple of pcb's
    4. Screw Connectors
    5. Push Button
    6. Temperature Sensor
    7. Radio
      8.) Step Down Module
    8. Fused Rocker Switch
    9. Transformer I wound up going with one of these over the Ebay China option. Just felt more comfortable with this.
    10. Project Box

    Misa: Resisters, 47uF cap for the radio, wires and lots of solder and hot glue.

    **Final EH40 Wire Configuration **

    20140906_144322_Android.jpg

    1. Red - 1.5vdc directly from EH40 Batt.
    2. Black (Yellow) GND
    3. Blue (Blue) Input
    4. Yellow (Blue) Output

    Transformer Assm: Board

    20140905_182226_Android.jpg

    The output seem stable enough (using a volt meter) I didn't use any post filtering.
    All connection under pcb is covered in a thick layer of hot glue to help prevent any shorts.

    EH40 Connection Board

    20140904_201220_Android.jpg

    20140904_201211_Android.jpg

    Main Control Board

    I forgot to get pictures of the top, but here is the messy bottom..

    20140906_161935_Android.jpg

    EH40 Connection Board Mounted In Box

    20140905_182341_Android.jpg

    Using a Dremel; cut a slot out, then hot gluing to bottom of box.

    Dual Relay Mounted

    20140905_183803_Android.jpg

    20140906_072851_Android.jpg

    It was a perfect fit.

    Push Button and LED (Wired Relay Contacts)

    20140906_125308_Android.jpg

    Top relay is #1 (Lockout); 2nd is #2 (Override)

    1)Relay #1 -- Blue Wire -- Output to NC
    2)Relay #1 -- Yellow Wire -- input to COM

    3)Relay #1 -- Blue Wire -- Output NC JUMPED to COM of Relay #2

    4)Relay #2 -- 2 Red Wires (One from EH40 and the other for battery monitoring on Main Control Board) -- Output to NO
    5)Relay #2 -- COM JUMPED to Relay #1 NC

    Fused Power Switch and Socket

    20140906_172832_Android.jpg

    500ma Fuse with all exposed connection covered in hot glue.

    Transformer; Relay; EH40 Connection and Main Board

    20140906_161901_Android.jpg

    20140906_181917_Android.jpg

    I tried to keep the High Voltage section isolated from any of the low voltage section as best as possible.

    Completed Project Connected to EH40

    20140907_172541_Android.jpg

    EH40 Connection

    20140907_172530_Android.jpg

    115vac Connection

    20140907_171919_Android.jpg

    EH40 Has Control and running it's schedule

    20140907_172450_Android.jpg

    Vera (Remote) has EH40 Schedule Locked Out (Water Heater Off)

    20140907_172510_Android.jpg

    Vera (Remote) has EH40 Schedule Locked Out but Override button is active (Water Heater On)

    My Project water heater co intermatic eh40

  • MySensors Sensebender Micro 3DP Case
    RJ_MakeR RJ_Make

    Added a Motion Sensor Top

    20150711_081014.jpg
    20150711_081047.jpg
    20150711_081030.jpg
    20150711_081211.jpg

    Enclosures / 3D Printing

  • A kickstarter project maybe helpfull to make nodes...
    RJ_MakeR RJ_Make

    I don't know, 25 bucks for just the board seems a bit much to me..

    Hardware

  • [contest] Yet another servo blind control project
    RJ_MakeR RJ_Make

    @slarti LOVE IT!! Very nice job!

    My Project servo venetian blinds

  • Australia might criminalise teaching of encryption
    RJ_MakeR RJ_Make

    Australia is a trial stomping ground for stuff like this, The results (determined by the Aussie's tolerance for such things) seem to find it's way to other parts of the world...

    General Discussion

  • Minimal design thoughts
    RJ_MakeR RJ_Make

    @tbowmo said:

    I am almost ready for a second prototype spin of the PCB, but before doing that I could use some input from the community,

    If this board was going into "mass production", is there any features that I should consider adding? Any missing parts? Anything that you think that I have forgotten?

    The schematics for revision 2 is a couple of posts back in the thread.

    I have considered adding a ATSHA204 for future security purposes, but can't seem to find a suitable spot for it (maybe I'm just too tired to see things clearly at the moment :)).

    I would work on trying to get the ATSHA204 included, even if it means the dims get a little larger. The one thing that I really don't like about MySensors is the lack of any wireless security.. Would love to see this implemented.

    Hardware

  • 'MySensoring' a Kidde Smoke Detector. (Completed)
    RJ_MakeR RJ_Make

    @DrJeff Sorry about the delay.. Looks like you figured it out... :-)

    You really don't need to build anymore if you are using those detectors through out the house (and they are setup interlocked), as once one goes off, they all go off and will signal to your controller that there is trouble.

    My Project smoke detector

  • Get a MySensors T-Shirt!
    RJ_MakeR RJ_Make

    Got Mine...

    20150119_204835.jpg

    Announcements cool t-shirt
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular