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 »