Example program to create IoT devices for a local network, which connect to a local server.

Dependencies:   WebSocketClient WiflyInterface mbed messages

This code is used in the second part of my Internet of Things (IoT) blog post available here. The code is fairly simple, but its real value is in its reliability. I have worked hard to try to make the wireless connection as reliable, and as fast, as possible. There are a few lines of code that must be modified before it will work correctly, and those are described in the following Wiki pages.

It is designed to work with a Python WebSocket Server running on a PC, the source code of which is available here.

Once operating with the server, each microcontroller, or IoT device, will broadcast a counter and its internal temperature to your WebSocket Server.

Committer:
defrost
Date:
Tue Oct 04 16:20:14 2016 +0000
Revision:
3:f20e114eb2ee
Parent:
2:7abdaa5a9209
Child:
5:0c7d131e6089
- Works well with server

Who changed what in which revision?

UserRevisionLine numberNew contents of line
defrost 1:4403f2ed1c1f 1 // *************
defrost 1:4403f2ed1c1f 2 // * globals.h *
defrost 1:4403f2ed1c1f 3 // *************
defrost 1:4403f2ed1c1f 4 //
defrost 1:4403f2ed1c1f 5 // Created: 2015/03/19
defrost 1:4403f2ed1c1f 6 // By: Damien Frost
defrost 1:4403f2ed1c1f 7 //
defrost 1:4403f2ed1c1f 8 // Description:
defrost 1:4403f2ed1c1f 9 // Provides global definitions.
defrost 1:4403f2ed1c1f 10
defrost 1:4403f2ed1c1f 11 #ifndef IQ_GLOBALS_H
defrost 1:4403f2ed1c1f 12 #define IQ_GLOBALS_H
defrost 1:4403f2ed1c1f 13
defrost 1:4403f2ed1c1f 14 #include "mbed.h"
defrost 1:4403f2ed1c1f 15 #include "WiflyInterface.h"
defrost 1:4403f2ed1c1f 16 #include "Commands.h"
defrost 1:4403f2ed1c1f 17 #include "Websocket.h"
defrost 1:4403f2ed1c1f 18
defrost 1:4403f2ed1c1f 19
defrost 1:4403f2ed1c1f 20 // Wifi Interface defines:
defrost 1:4403f2ed1c1f 21 #define TCP_SERVER_PORT 4445
defrost 1:4403f2ed1c1f 22 #define WIFIBAUDRATE 115200
defrost 1:4403f2ed1c1f 23 #define WIFINETWORK 2
defrost 1:4403f2ed1c1f 24 #define CHARMSGBUFF 1024
defrost 1:4403f2ed1c1f 25 #define TIMEOUTRECEIVEATTEMPTS 5
defrost 1:4403f2ed1c1f 26 #define WS_PORT 4444
defrost 3:f20e114eb2ee 27 #define SERVER_IP "192.168.1.99"
defrost 1:4403f2ed1c1f 28
defrost 1:4403f2ed1c1f 29 extern char* wifissid;
defrost 1:4403f2ed1c1f 30 extern char* wifipassword;
defrost 1:4403f2ed1c1f 31
defrost 1:4403f2ed1c1f 32 extern Serial pc;
defrost 1:4403f2ed1c1f 33 extern InterruptIn UIBut1;
defrost 1:4403f2ed1c1f 34 extern Timer DisplayTimer;
defrost 2:7abdaa5a9209 35 extern DigitalOut Led;
defrost 1:4403f2ed1c1f 36
defrost 1:4403f2ed1c1f 37 extern WiflyInterface eth;
defrost 1:4403f2ed1c1f 38
defrost 1:4403f2ed1c1f 39 extern int ReconnectAttempts;
defrost 1:4403f2ed1c1f 40 extern int SendCounter;
defrost 1:4403f2ed1c1f 41 extern int IoT_ID;
defrost 1:4403f2ed1c1f 42 extern float TempSensor;
defrost 1:4403f2ed1c1f 43
defrost 1:4403f2ed1c1f 44 extern Websocket ws;
defrost 1:4403f2ed1c1f 45
defrost 1:4403f2ed1c1f 46 // Functions:
defrost 1:4403f2ed1c1f 47 void SensorToPu(float gain, float offset, int sensor, float* result);
defrost 1:4403f2ed1c1f 48 void InitializeStruct(struct tf_history_t* toClear);
defrost 1:4403f2ed1c1f 49 void SetupVar(void);
defrost 1:4403f2ed1c1f 50 void SetButtonEvent(void);
defrost 1:4403f2ed1c1f 51 void rt_OneStep(void);
defrost 1:4403f2ed1c1f 52 void DisplayInputs(float CPS);
defrost 1:4403f2ed1c1f 53 void SetSCKDCParams(bool enable, float gain);
defrost 1:4403f2ed1c1f 54 int SetupNetwork(int Tries);
defrost 1:4403f2ed1c1f 55 bool ConnectToServer(int Tries);
defrost 1:4403f2ed1c1f 56 void SendNetworkData(void);
defrost 1:4403f2ed1c1f 57 void ReceiveNetworkData(unsigned int * wifi_cmd, unsigned int * var, float * value);
defrost 1:4403f2ed1c1f 58 void ModifyVariable(unsigned int wifi_var, float wifi_data);
defrost 1:4403f2ed1c1f 59
defrost 1:4403f2ed1c1f 60
defrost 1:4403f2ed1c1f 61 #endif /* IQ_GLOBALS_H */
defrost 1:4403f2ed1c1f 62