How the platform works:

The mcThings platform includes 2 main components: mcModules and mcGateways. A powered and connected mcGateway creates the mcAir network (up to 200m range under optimal conditions) and bridges the information between the mcModules (within range) to and from the Internet. Using the IDE (mcStudio) and mcScript (ultra-low power programming language - a subset of VB.NET) allows you to wirelessly connect, debug and program modules with your customized scripts.

Note: You also require an mcDongle to complete firmware updates on the modules/devices and gateways! We recommend looking at the mcModule120 Dev kit which includes everything you need to get going!


Using the Reed switch

Using the mcModule enclosure, you can easily install the module to a door/window/etc and place the magnet clip so that it lines up with the module when the object is closed. You can also use your own magnets! We recommend a strong magnet like neodymium. If you are building a customized enclosure or have a unique object that you want to use the reed switch with, this is a good option.

                                     mcModule enclosure w/ magnet clip

                                               mcMod120 in enclosure

Android using MQTT - Video and Code

We're going to push the information to an MQTT client app on an Android phone to see the status in real-time!

We also sent temperature info to the app at the same time

Check out the below video and code for putting this together as you'll need to setup your gateway and your MQTT broker properly to push information to your phone:

Code:

Class ProductionRoom/YOURPROJECTNAMEHERE    
 Shared Event ReedSwitchChanged()
   Dim payload As ListOfByte = New ListOfByte 
   Dim payString As String = ""
   If ReedSwitch = True Then 
    LedRed = True  
    payString = "Open"  
   Else        
    LedRed = False  
    payString = "Closed"    
   End If      
   payload.Add(payString) 
   Lplan.Publish("mcThings/ProductionRoomDoor/YOURTOPICNAMEHERE", payload) 
   Thread.Sleep(10000) 
   Thread.ClearHardwareEvent()  
   Dim uptime As Integer = Device.Uptime() 
 End Event   
 Shared Event CheckVoltage() RaiseEvent Every 2 Days  
     Dim BattVolt As Short = Device.BatteryVoltage  
    If BattVolt < 2200 Then  
     Lplan.IFTTT("YOURIFTTTMAKERKEYTHERE", "YOUREVENTNAMEHERE") 
    Else                   
    End If
             
 End Event
End Class

 We also included a bit of programming to check the battery voltage every 2 days and send a message to the maker channel on IFTTT if below 2.2 volts (above is measured in millivolts).

IFTTT - Code

Below is code to setup a message to be sent to IFTTT if the door is opened and closed. Again we added a battery voltage check. Using IFTTT allows you to send the information to a ton of different services! We usually use notifications via the IFTTT Android app but you could receive an email, log the information into a spreadsheet, etc!

Class IFTTTAndroidDoor   
   Shared Event ReedSwitchChanged() 
       If ReedSwitch = True Then  
           LedRed = True   
           'Enter your maker channel event name such as 'doorOpen' 
           Lplan.IFTTT("YOURIFTTTMAKERKEYHERE", "doorOpen")   
       Else         
           LedRed = False   
           'Optional to add the below closed function as well 
           Lplan.IFTTT("YOURIFTTTMAKERKEYHERE", "doorClosed")  
       End If       
       Thread.Sleep(10000)  
       Thread.ClearHardwareEvent()   
       Dim uptime As Integer = Device.Uptime()  
   End Event   
         'check the battery voltage every 2 days 
   Shared Event CheckVoltage() RaiseEvent Every 2 Days   
       Dim BattVolt As Short = Device.BatteryVoltage   
       If BattVolt < 2200 Then   
           Lplan.IFTTT("YOURIFTTTKETHERE", "ProductionRoomBattery/YOURTOPICHERE")  
       Else                    
       End If 
   End...
Read more »