Dreamforce 2014 Workshop Exercise - RFID Case Generator

Dependencies:   BufferedSerial C12832 EndpointMain-rfid EthernetInterface Logger StatusReporter-df2014 mbed-rtos mbed

Fork of df-2014-workshop-rfid-case-generator-k64f by Doug Anson

Overview

This code demonstrates how to use the mbed platform with a ID-12LA RFID reader and a Freescale K64F to get data into the SalesForce cloud.
This project was generated as a workshop for DreamForce 2014..

Details

The 2014 DreamForce workshop centers around an example scenario where you, as a street light technician, will "check in" to a given street light to service it. The street lights in this example are intelligent - they are connected, have knowledge about who/what they are, and in this example, contain an RFID sensor to allow technicians to "check in" during a service event.

The purpose of the workshop exercise is to provide exposure to new developers that the mbed IDE and development environment/ecosystem is very simple and easy to setup and use. Additionally, the workshop highlights that mbed devices can directly interact with SalesForce. The slides for the workshop can be found here.

For more information about the mbed SalesForce Interface API and its use, please see: http://developer.mbed.org/teams/MBED_DEMOS/code/SalesforceInterface/

Pretty Pictures

For the workshop the mbed team designed breakout boards to connect the ID12LA to the Freescale K64F for ease of use. Pictures of the boards can be found below. If you are interested in the breakout board you can order one from the OSHPark project page or use the eagle or gerber files as you see fit.

The ID-12LA sockets onto the RFID Brekout Board which then is put onto the Freescale K64F.

/media/uploads/mbedAustin/rfidboard_-8-.small.jpg

/media/uploads/mbedAustin/rfidboard_-9-.small.jpg

Revision:
48:0ff25290cce3
Parent:
46:68fc0a636266
Child:
50:6e6b8351ee60
--- a/Definitions.h	Wed Sep 24 04:21:22 2014 +0000
+++ b/Definitions.h	Wed Sep 24 18:53:33 2014 +0000
@@ -21,16 +21,27 @@
  
  // ----------------- WORKSHOP TUNABLES -----------------  
  
- // Tunables for RFID tags
- #define FIRST_WIDGET_RFID         9909120
- #define FIRST_WIDGET_NAME         "Tech 49"
- #define FIRST_WIDGET_DESCRIPTION  "Investigating Issue"
- #define SECOND_WIDGET_RFID        9909121
- #define SECOND_WIDGET_NAME        "Tech 49"
- #define SECOND_WIDGET_DESCRIPTION "Issue Resolved"
- #define THIRD_WIDGET_RFID         9909122
- #define THIRD_WIDGET_NAME         "Tech 49"
- #define THIRD_WIDGET_DESCRIPTION  "Issue Escalation"
+ // 3 Reports for RFID-tag based support/repair conditions
+ #define FIRST_REPORT_RFID         9909120
+ #define FIRST_REPORT_NAME         "Tech 49"
+ #define FIRST_REPORT_DESCRIPTION  "Light Out"
+ #define FIRST_REPORT_CONDITION    "Investigating Issue"
+ #define FIRST_REPORT_LATITUDE     "37.404120"
+ #define FIRST_REPORT_LONGITUDE    "-121.973195"
+ 
+ #define SECOND_REPORT_RFID        7567145
+ #define SECOND_REPORT_NAME        "Tech 49"
+ #define SECOND_REPORT_DESCRIPTION "Light Out"
+ #define SECOND_REPORT_CONDITION   "Resolved - lightbulb burned out"
+ #define SECOND_REPORT_LATITUDE    "37.404120"
+ #define SECOND_REPORT_LONGITUDE   "-121.973195"
+ 
+ #define THIRD_REPORT_RFID         9909122
+ #define THIRD_REPORT_NAME         "Tech 49"
+ #define THIRD_REPORT_DESCRIPTION  "Light Out"
+ #define THIRD_REPORT_CONDITION    "Unresolved - escalate"
+ #define THIRD_REPORT_LATITUDE     "37.404120"
+ #define THIRD_REPORT_LONGITUDE    "-121.973195"
  
  // ----------------- WORKSHOP TUNABLES ----------------- 
  
@@ -47,7 +58,7 @@
  #define ID12_ENABLE               true    // true - enable, false - disable
  
  // maximum memory buffer chunk (including HTTPS requests)
- #define MAX_BUFFER_LENGTH         256
+ #define MAX_BUFFER_LENGTH         512
    
  // What platform we are compiling on
  #define _NXP_PLATFORM             false
@@ -65,31 +76,33 @@
  // Blink Time
  #define BLINK_TIME                250
  
- // Tunables for WidgetDB
+ // Tunables for ReportDB
  #define DB_MAX_NAME_LENGTH        64
  #define DB_MAX_DESCRIPTION_LENGTH 128
- #define DB_MAX_NUM_WIDGETS        3
+ #define DB_MAX_CONDITION_LENGTH   128
+ #define DB_MAX_LATLONG_LENGTH     32
+ #define DB_MAX_NUM_REPORTS        3
  
- // convenience definitions for WidgetDB... 2 RFIDs/station  
- #define FIRST_WIDGET              0
- #define SECOND_WIDGET             1
- #define THIRD_WIDGET              2
+ // convenience definitions for ReportDB... 3 RFID tags/station  
+ #define FIRST_REPORT              0
+ #define SECOND_REPORT             1
+ #define THIRD_REPORT              2
  
  // PINS for RFID Reader
  #if _NXP_PLATFORM
     #define RFID_TX_PIN            p13
     #define RFID_RX_PIN            p14
+    #define TEMP_PIN               p15
  #endif
  #if _UBLOX_PLATFORM
-    #define RFID_TX_PIN            P4_28
-    #define RFID_RX_PIN            P4_29
+    #define RFID_TX_PIN            D1
+    #define RFID_RX_PIN            D0
+    #define TEMP_PIN               A3
  #endif
  #if _K64F_PLATFORM
     #define RFID_TX_PIN            D1
     #define RFID_RX_PIN            D0
+    #define TEMP_PIN               A3
  #endif
  
- // KEIL: our MAC address (debugging)
- //#define MAC_ADDRESS                   0xa0,0x12,0xAB,0xE3,0x4F,0x56
-
  #endif // _DEFINITIONS_H_
\ No newline at end of file