From 8f8aaa46606e80e1103cef1999364ccfd09e0a53 Mon Sep 17 00:00:00 2001 From: James Devine Date: Wed, 17 Jan 2018 19:23:10 +0100 Subject: [PATCH] --- ParticleElectronRFIDReadandPublish.ino | 92 ++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 ParticleElectronRFIDReadandPublish.ino diff --git a/ParticleElectronRFIDReadandPublish.ino b/ParticleElectronRFIDReadandPublish.ino new file mode 100644 index 0000000..c41fe4b --- /dev/null +++ b/ParticleElectronRFIDReadandPublish.ino @@ -0,0 +1,92 @@ +/***************************************************************************** +* ParticleSoftSerial library (PSS_SimpleTest.ino) +* Copyright (c) 2016 Free Software Foundation. All right reserved. +* Written by Andreas Rothenw�nder (aka ScruffR) +* +* This sample shows sends data from Serial1 to ParticleSoftSerial(D2/D3) +* +* Prerequisites: +* import SparkIntervalTimer library (by Paul Kourany) +* wire Serial1 TX to D2 +* Serial1 RX to D3 (for sending ParticleSoftSerial to Serial1) +* +* Due to relatively low interrupt priorities used, baudrates greater 31250 +* may be prone to data corruption, depending on over all system load. +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License as published by the Free Software Foundation; either +* version 2.1 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public +* License along with this library; if not, write to the Free Software +* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*****************************************************************************/ +#include +#include "Particle.h" + + +#define RECEIVER SoftSer +#define PROTOCOL SERIAL_8N1 + +const uint32_t baud = 9600; + +//#if (SYSTEM_VERSION >= 0x00060000) +// SerialLogHandler logHandler; +//#endif + +#define PSS_RX D3 // RX must be interrupt enabled (on Photon/Electron D0/A5 are not) +#define PSS_TX C5 //this pin isn't something we use, I couldn't find a null pin +ParticleSoftSerial SoftSer(PSS_RX, PSS_TX); +char CARDcurrent[4]; + +void setup() +{ + Serial.begin(); + Serial.printlnf("ready for data"); + RECEIVER.begin(baud, PROTOCOL); // but SoftSerial can ;-) +} + +void loop() +{ + +int counter = 0; +unsigned long cardread = 0; +String cardpublish; + +while (RECEIVER.available()) + { + for (int cardident = 0; cardident < 5; cardident++) { + counter = (RECEIVER.read()); + if (cardident > 0) Serial.print(int(counter), HEX); + CARDcurrent[cardident-1] = counter; + Serial.print(" "); + } + Serial.println(""); + cardread=int(CARDcurrent[0]); + cardread=cardread << 8; + cardread=cardread+ int(CARDcurrent[1]); + cardread=cardread << 8; + cardread=cardread+ int(CARDcurrent[2]); + cardread=cardread << 8; + cardread=cardread+ int(CARDcurrent[3]); + Serial.println(cardread, HEX); + bool success; + success = Particle.publish("RFIDident", String(cardread, HEX), 0, PUBLIC); + if (!success) { + Serial.println("failedtopublish"); // get here if event publish did not work + } + + } + RECEIVER.flush(); + + if (Particle.connected()) { + Serial.println("Connected!"); + } + delay(1000); +}