MAXREFDES143#: DeepCover Embedded Security in IoT Authenticated Sensing & Notification
Dependencies: MaximInterface mbed
The MAXREFDES143# is an Internet of Things (IoT) embedded security reference design, built to protect an industrial sensing node by means of authentication and notification to a web server. The hardware includes a peripheral module representing a protected sensor node monitoring operating temperature and remaining life of a filter (simulated through ambient light sensing) and an mbed shield representing a controller node responsible for monitoring one or more sensor nodes. The design is hierarchical with each controller node communicating data from connected sensor nodes to a web server that maintains a centralized log and dispatches notifications as necessary. The mbed shield contains a Wi-Fi module, a DS2465 coprocessor with 1-Wire® master function, an LCD, LEDs, and pushbuttons. The protected sensor node contains a DS28E15 authenticator, a DS7505 temperature sensor, and a MAX44009 light sensor. The mbed shield communicates to a web server by the onboard Wi-Fi module and to the protected sensor node with I2C and 1-Wire. The MAXREFDES143# is equipped with a standard shield connector for immediate testing using an mbed board such as the MAX32600MBED#. The simplicity of this design enables rapid integration into any star-topology IoT network requiring the heightened security with low overhead provided by the SHA-256 symmetric-key algorithm.
More information about the MAXREFDES143# is available on the Maxim Integrated website.
Revision 30:0784010d6975, committed 2017-01-26
- Comitter:
- IanBenzMaxim
- Date:
- Thu Jan 26 18:00:02 2017 -0600
- Parent:
- 29:590a7561318b
- Child:
- 31:7b10bcb3e0fc
- Commit message:
- Removed unused functionality from ESP8266.
Changed in this revision
--- a/ESP8266.cpp Thu Jan 26 16:55:23 2017 -0600
+++ b/ESP8266.cpp Thu Jan 26 18:00:02 2017 -0600
@@ -36,8 +36,6 @@
#include "Timer.h"
#include "wait_api.h"
-ESP8266* ESP8266::defaultInstance = NULL;
-
static inline void disableRecvData()
{
__disable_irq();
@@ -48,17 +46,6 @@
__enable_irq();
}
-void ESP8266::setDefaultInstance(ESP8266 * const instance)
-{
- if (instance != NULL)
- defaultInstance = instance;
-}
-
-ESP8266** ESP8266::getDefaultInstance()
-{
- return &defaultInstance;
-}
-
ESP8266::ESP8266(const PinName tx, const PinName rx, const PinName rst, const PinName CH_PD, const int baud, mbed::Serial * debugMsgIntf)
: AT_intf(tx, rx), resetPin(rst), powerDownPin(CH_PD), debugMsg(debugMsgIntf), parseRecvReset(false)
{
@@ -70,15 +57,6 @@
resetPin = 1;
// Power down device at startup due to high current demand
setPowered(false);
-
- if (defaultInstance == NULL)
- defaultInstance = this;
-}
-
-ESP8266::~ESP8266()
-{
- if (defaultInstance == this)
- defaultInstance = NULL;
}
void ESP8266::reset()
--- a/ESP8266.hpp Thu Jan 26 16:55:23 2017 -0600
+++ b/ESP8266.hpp Thu Jan 26 18:00:02 2017 -0600
@@ -108,12 +108,6 @@
std::ostringstream cmdStream;
};
- /// @{
- /// Default instance support for use with mbed Sockets.
- static void setDefaultInstance(ESP8266 * const instance);
- static ESP8266** getDefaultInstance();
- /// @}
-
/// @param tx Transmit pin from mbed to ESP8266.
/// @param rx Receive pin from ESP8266 to mbed.
/// @param rst Reset pin on ESP8266.
@@ -121,7 +115,6 @@
/// @param baud Baud rate that the ESP8266 is using.
/// @param debugMsgIntf Optional serial interface for debugging messages.
ESP8266(const PinName tx, const PinName rx, const PinName rst, const PinName CH_PD, const int baud, mbed::Serial * debugMsgIntf = NULL);
- ~ESP8266();
/// Reset the ESP8266 via the hardware reset pin.
void reset();
@@ -184,9 +177,7 @@
/// Clear all received data from the buffer.
void clearRecvData();
-private:
- static ESP8266 * defaultInstance; ///< Default instance support for use with mbed Sockets.
-
+private:
mbed::Serial AT_intf;
mbed::DigitalOut resetPin;
mutable mbed::DigitalOut powerDownPin; ///< @note Mark as mutable for use in powered().
--- a/SensorNode.cpp Thu Jan 26 16:55:23 2017 -0600
+++ b/SensorNode.cpp Thu Jan 26 18:00:02 2017 -0600
@@ -62,7 +62,7 @@
}
SensorNode::SensorNode(mbed::I2C & i2c, uint8_t ds7505_i2c_addr, uint8_t max44009_i2c_addr, DS2465 & ds2465)
- : m_initialLux(1),ds2465(ds2465), selector(ds2465), ds28e15(selector), ds7505(i2c, ds7505_i2c_addr), max44009(i2c, max44009_i2c_addr)
+ : m_initialLux(1), ds2465(ds2465), selector(ds2465), ds28e15(selector), ds7505(i2c, ds7505_i2c_addr), max44009(i2c, max44009_i2c_addr)
{
if (!rngInitialized)
{
--- a/WebServerInterface.cpp Thu Jan 26 16:55:23 2017 -0600 +++ b/WebServerInterface.cpp Thu Jan 26 18:00:02 2017 -0600 @@ -42,8 +42,8 @@ using OneWire::ISha256MacCoproc; -const char WebServerInterface::wifiSsid[] = "TWS iPhone"; -const char WebServerInterface::wifiPassword[] = "maxim1234"; +const char WebServerInterface::wifiSsid[] = "WifiSsid"; +const char WebServerInterface::wifiPassword[] = "WifiPassword"; const char WebServerInterface::serverAddress[] = "www.mxim-security.us"; const unsigned int WebServerInterface::serverPort = 80; const char WebServerInterface::serverPostPath[] = "/post.php";
MAXREFDES143#: DeepCover Embedded Security in IoT Authenticated Sensing & Notification