Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MFRC522 MQTT_NTP NTPClient WIZnetInterface mbed-src
Fork of RFID_copy by
Revision 1:f7f81ab19c7e, committed 2018-07-17
- Comitter:
- HarshaDRAGNEEL
- Date:
- Tue Jul 17 06:16:01 2018 +0000
- Parent:
- 0:1fdb07d055b9
- Commit message:
- Added NTP protocol to send data to MQTT
Changed in this revision
--- a/MQTT.lib Thu Jun 07 04:14:28 2018 +0000 +++ b/MQTT.lib Tue Jul 17 06:16:01 2018 +0000 @@ -1,1 +1,1 @@ -https://developer.mbed.org/users/jamesabruce/code/MQTT/#d3feba7f242a +https://os.mbed.com/users/HarshaDRAGNEEL/code/MQTT_NTP/#004593b2ab67
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/NTPClient.lib Tue Jul 17 06:16:01 2018 +0000 @@ -0,0 +1,1 @@ +https://developer.mbed.org/teams/WIZnet/code/NTPClient/#36be990f21be
--- a/WIZnetInterface.lib Thu Jun 07 04:14:28 2018 +0000 +++ b/WIZnetInterface.lib Tue Jul 17 06:16:01 2018 +0000 @@ -1,1 +1,1 @@ -http://developer.mbed.org/teams/WIZnet/code/WIZnetInterface/#bda61525ac71 +http://developer.mbed.org/teams/WIZnet/code/WIZnetInterface/#c91884bd2713
--- a/main.cpp Thu Jun 07 04:14:28 2018 +0000
+++ b/main.cpp Tue Jul 17 06:16:01 2018 +0000
@@ -1,20 +1,7 @@
-//Test of cheap 13.56 Mhz RFID-RC522 module from eBay
-//This code is based on Martin Olejar's MFRC522 library. Minimal changes
-//Adapted for Nucleo STM32 F401RE. Should work on other Nucleos too
-
-//Connect as follows:
-//RFID pins -> Nucleo header CN5 (Arduino-compatible header)
-//----------------------------------------
-//RFID IRQ=pin5 -> Not used. Leave open
-//RFID MISO=pin4 -> Nucleo SPI_MISO=PA_6=D12
-//RFID MOSI=pin3 -> Nucleo SPI_MOSI=PA_7=D11
-//RFID SCK=pin2 -> Nucleo SPI_SCK =PA_5=D13
-//RFID SDA=pin1 -> Nucleo SPI_CS =PB_6=D10
-//RFID RST=pin7 -> Nucleo =PA_9=D8
-//3.3V and Gnd to the respective pins
+
#include "mbed.h"
-#include "MFRC522.h"
+#include "NTPClient.h"
#include "SPI.h"
#include "MQTTEthernet.h"
#include "MQTTClient.h"
@@ -23,28 +10,24 @@
// Nucleo Pin for MFRC522 reset (pick another D pin if you need D8)
//#define MF_RESET D8
-
-#define SPI_MOSI D11
-#define SPI_MISO D12
-#define SPI_SCK D13
-#define SPI_CS D10
-#define MF_RESET D9
-DigitalOut l1(D4);
-DigitalOut l2(D5);
-DigitalOut LedGreen(LED1);
+EthernetInterface eth;
+NTPClient ntpClient;
+
//Serial connection to PC for output
-//Serial pc(USBTX, USBRX);
-
-MFRC522 RfChip (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET);
+Serial pc(USBTX, USBRX);
+ Serial a(D1,D0);
+char c[100]="";
int main(void) {
//pc.printf("starting...\n");
+ int cnt = 0;
Serial pc(USBTX, USBRX);
- pc.baud(115200);
+ Serial a(D1,D0);
+ // pc.baud(115200);
printf("Wait a second...\r\n");
- char* topic = "openhab/parents/command";
+ char* topic = "Vending machine";
MQTTEthernet ipstack = MQTTEthernet();
MQTT::Client<MQTTEthernet, Countdown> client = MQTT::Client<MQTTEthernet, Countdown>(ipstack);
@@ -52,9 +35,10 @@
char* hostname = "172.16.73.4";
int port = 1883;
- int rc = ipstack.connect(hostname, port);
+
+ int rc = ipstack.connect(hostname, port);
if (rc != 0)
- printf("rc from TCP connect is %d\n", rc);
+ printf("rc from TCP connect is %d\n", rc);
printf("Topic: %s\r\n",topic);
@@ -64,75 +48,72 @@
if ((rc = client.connect(data)) == 0)
printf("rc from MQTT connect is %d\n", rc);
-
+
+ // if ((rc = client.subscribe(topic, MQTT::QOS1, messageArrived)) != 0)
+// printf("rc from MQTT subscribe is %d\n", rc);
+//
//Init. RC522 Chip
- RfChip.PCD_Init();
+
while (true) {
- //LedGreen = 1;
- pc.printf("enterd loop...\n");
- // Look for new cards
- if ( ! RfChip.PICC_IsNewCardPresent())
- {
- wait_ms(500);
- continue;
- }
-
- // Select one of the cards
- if ( ! RfChip.PICC_ReadCardSerial())
+ if (a.readable())
{
- wait_ms(500);
- continue;
- }
-
- //LedGreen = 0;
- char data[20]="";
- char data1[20]="";
+
+ int i;
+ c[i]=0;
+ for(i=0;i<=15;i++){
+ char c1 =a.getc();
+ c[i] = c1;
+ }
+ pc.printf("The value returned is %s ",c);
+
+ char domainName[3][80] = {"kr.pool.ntp.org", "time.bora.net", "time.nuri.net"};//SET TO DOMAIN NAME OF SERVER GETTING TIME FROM
+ char buffer[80]; //BUFFER TO HOLD FORMATTED TIME DATA
+ time_t sysTime;
+ pc.printf("Server IP Address is %s\r\n", eth.getIPAddress());
- // Print Card UID
- pc.printf("Card UID: ");
- printf("Size of UID: %d \n",RfChip.uid.size);
- for (uint8_t i = 0; i < RfChip.uid.size; i++)
- {
- char temp[5];
- pc.printf(" %X02", RfChip.uid.uidByte[i]);
- sprintf(temp,"%X02", RfChip.uid.uidByte[i]);
- strcat(data,temp);
- }
+ pc.printf("Getting time information by using NTP...\r\n");
- /*
- pc.printf("\n\r");
- printf("%s\n\r",data);
- */
-
- // Print Card type
- uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak);
- pc.printf(" \nPICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType));
- wait_ms(1000);
-
- if(strcmp(data,"5C02820285024502")==0)
- {
- strcat(data1,"fruits");
- }
- if(strcmp(data,"B3026802A002202")==0)
+ cnt = 0;
+ while(1)
{
- strcat(data1,"vegatables");
+ if(ntpClient.setTime(domainName[cnt],123,0x00005000) != NTP_OK)
+ {
+ pc.printf("Cannot get time information by NTP\r\n");
+ cnt++;
+ }
+ else
+ break;
+
+ if(cnt > 3)
+ {
+ pc.printf("All NTP servers are not resposed!!\r\n");
+ return 1;
+ }
}
- if(strcmp(data,"F2029C02AC021F02")==0)
- {
- strcat(data1,"milk");
+
+ printf("Completed Get and Set Time\r\n\r\n");
+ eth.disconnect();
- MQTT::Message message;
+ sysTime = time(NULL)+(3600*5.30); //TIME with offset for eastern time Indian
+ //FORMAT TIME FOR DISPLAY AND STORE FORMATTED RESULT IN BUFFER
+ strftime(buffer,80,"%Y/%m/%d %p %I:%M:%S \r\n",localtime(&sysTime));
+ pc.printf("Date and Time\r\n%s\r\n", buffer);
+
+
+ MQTT::Message message;
char buf[100];
- sprintf(buf, "%s", data1);
- message.qos = MQTT::QOS0;
- message.retained = false;
- message.dup = false;
- message.payload = (void*)data1;
- message.payloadlen = strlen(data1);
- rc = client.publish("grocery", message);
- client.yield(60000);
- memset(data1, '\0',sizeof(data1));
- }
+ sprintf(buf, "%s %s",c,buffer);
+ message.qos = MQTT::QOS0;
+ message.retained = false;
+ message.dup = false;
+
+ message.payload = (void*)buf;
+ message.payloadlen = strlen(buf);
+
+ rc = client.publish("RFID", message);
+ pc.printf("Rc result: %c \n ",rc);
+ client.yield(60);
+ }
}
}
\ No newline at end of file
--- a/mbed-src.lib Thu Jun 07 04:14:28 2018 +0000 +++ b/mbed-src.lib Tue Jul 17 06:16:01 2018 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed-src/#2d5fc5624619 +http://mbed.org/users/mbed_official/code/mbed-src/#a11c0372f0ba
