Showing posts with label example. Show all posts
Showing posts with label example. Show all posts
Sunday, August 28, 2016
Arduino Uno RFID RC522 MFRC522 library example DumpInfo
Arduino Uno RFID RC522 MFRC522 library example DumpInfo
This post show how Arduino Uno + RFID-RC522 (RFID reader) to dump info of RFID key and RFID card, using Arduino RFID Library for MFRC522.
Arduino library for MFRC522 and other RFID RC522 based modules (https://github.com/miguelbalboa/rfid) read and write different types of Radio-Frequency IDentification (RFID) cards on your Arduino using a RC522 based reader connected via the Serial Peripheral Interface (SPI) interface.
Install MFRC522 library to Arduino IDE:
You can download ZIP file from the library web page, and it to Arduino library, read the video below. After library added, it will be in the folder your_DocumentsArduinolibraries,
and fritzing parts is in your_DocumentsArduinolibraries fid-masterdocfritzing.

Connect Arduino Uno and RFID-RF522 module:

In Arduino IDE, Open Example of DumpInfo in MFRC522:
/*
* ----------------------------------------------------------------------------
* This is a MFRC522 library example; see https://github.com/miguelbalboa/rfid
* for further details and other examples.
*
* NOTE: The library file MFRC522.h has a lot of useful info. Please read it.
*
* Released into the public domain.
* ----------------------------------------------------------------------------
* Example sketch/program showing how to read data from a PICC (that is: a RFID
* Tag or Card) using a MFRC522 based RFID Reader on the Arduino SPI interface.
*
* When the Arduino and the MFRC522 module are connected (see the pin layout
* below), load this sketch into Arduino IDE then verify/compile and upload it.
* To see the output: use Tools, Serial Monitor of the IDE (hit Ctrl+Shft+M).
* When you present a PICC (that is: a RFID Tag or Card) at reading distance
* of the MFRC522 Reader/PCD, the serial output will show the ID/UID, type and
* any data blocks it can read. Note: you may see "Timeout in communication"
* messages when removing the PICC from reading distance too early.
*
* If your reader supports it, this sketch/program will read all the PICCs
* presented (that is: multiple tag reading). So if you stack two or more
* PICCs on top of each other and present them to the reader, it will first
* output all details of the first and then the next PICC. Note that this
* may take some time as all data blocks are dumped, so keep the PICCs at
* reading distance until complete.
*
* Typical pin layout used:
* -----------------------------------------------------------------------------------------
* MFRC522 Arduino Arduino Arduino Arduino Arduino
* Reader/PCD Uno Mega Nano v3 Leonardo/Micro Pro Micro
* Signal Pin Pin Pin Pin Pin Pin
* -----------------------------------------------------------------------------------------
* RST/Reset RST 9 5 D9 RESET/ICSP-5 RST
* SPI SS SDA(SS) 10 53 D10 10 10
* SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16
* SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14
* SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15
*/
#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN 9 //
#define SS_PIN 10 //
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
void setup() {
Serial.begin(9600); // Initialize serial communications with the PC
while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522
ShowReaderDetails(); // Show details of PCD - MFRC522 Card Reader details
Serial.println(F("Scan PICC to see UID, type, and data blocks..."));
}
void loop() {
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
// Dump debug info about the card; PICC_HaltA() is automatically called
mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}
void ShowReaderDetails() {
// Get the MFRC522 software version
byte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg);
Serial.print(F("MFRC522 Software Version: 0x"));
Serial.print(v, HEX);
if (v == 0x91)
Serial.print(F(" = v1.0"));
else if (v == 0x92)
Serial.print(F(" = v2.0"));
else
Serial.print(F(" (unknown)"));
Serial.println("");
// When 0x00 or 0xFF is returned, communication probably failed
if ((v == 0x00) || (v == 0xFF)) {
Serial.println(F("WARNING: Communication failure, is the MFRC522 properly connected?"));
}
}
- Similarly example run on Android: Android NFC: readBlock() for MifareClassic, to dump data in RFID tag
- Step-by-step to make MFRC522-python work on Raspberry Pi 2/raspbian Jessie, read RFID tags using RFID Reader, RFID-RC522.
- Raspberry Pi 2 + MFRC522-python - Dump RFID Tag data using mxgxw/MFRC522-python
Monday, August 22, 2016
Example of using jSSC communicate between JavaFX and Arduino Uno via USB Serial port
Example of using jSSC communicate between JavaFX and Arduino Uno via USB Serial port
Prepare a simple sketch run on Arduino Uno to send a counting number to serial port, tested on Windows 10.
BlinkUSB.ino
/*
* Send number to Serial
*/
int i = 0;
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
Serial.begin(9600);
}
// the loop function runs over and over again forever
void loop() {
Serial.print(i);
i++;
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Read last post to "Prepare jSSC - download and add library to NetBeans, and create project using jSSC library".
modify the java code, JavaFX_jssc_Uno.java
/*
* Example of using jSSC library to handle serial port
* Receive number from Arduino via USB/Serial and display on Label
*/
package javafx_jssc_uno;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import jssc.SerialPort;
import static jssc.SerialPort.MASK_RXCHAR;
import jssc.SerialPortEvent;
import jssc.SerialPortException;
import jssc.SerialPortList;
public class JavaFX_jssc_Uno extends Application {
SerialPort arduinoPort = null;
ObservableList<String> portList;
Label labelValue;
private void detectPort(){
portList = FXCollections.observableArrayList();
String[] serialPortNames = SerialPortList.getPortNames();
for(String name: serialPortNames){
System.out.println(name);
portList.add(name);
}
}
@Override
public void start(Stage primaryStage) {
labelValue = new Label();
detectPort();
final ComboBox comboBoxPorts = new ComboBox(portList);
comboBoxPorts.valueProperty()
.addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable,
String oldValue, String newValue) {
System.out.println(newValue);
disconnectArduino();
connectArduino(newValue);
}
});
VBox vBox = new VBox();
vBox.getChildren().addAll(
comboBoxPorts, labelValue);
StackPane root = new StackPane();
root.getChildren().add(vBox);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public boolean connectArduino(String port){
System.out.println("connectArduino");
boolean success = false;
SerialPort serialPort = new SerialPort(port);
try {
serialPort.openPort();
serialPort.setParams(
SerialPort.BAUDRATE_9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
serialPort.setEventsMask(MASK_RXCHAR);
serialPort.addEventListener((SerialPortEvent serialPortEvent) -> {
if(serialPortEvent.isRXCHAR()){
try {
String st = serialPort.readString(serialPortEvent
.getEventValue());
System.out.println(st);
//Update label in ui thread
Platform.runLater(() -> {
labelValue.setText(st);
});
} catch (SerialPortException ex) {
Logger.getLogger(JavaFX_jssc_Uno.class.getName())
.log(Level.SEVERE, null, ex);
}
}
});
arduinoPort = serialPort;
success = true;
} catch (SerialPortException ex) {
Logger.getLogger(JavaFX_jssc_Uno.class.getName())
.log(Level.SEVERE, null, ex);
System.out.println("SerialPortException: " + ex.toString());
}
return success;
}
public void disconnectArduino(){
System.out.println("disconnectArduino()");
if(arduinoPort != null){
try {
arduinoPort.removeEventListener();
if(arduinoPort.isOpened()){
arduinoPort.closePort();
}
} catch (SerialPortException ex) {
Logger.getLogger(JavaFX_jssc_Uno.class.getName())
.log(Level.SEVERE, null, ex);
}
}
}
@Override
public void stop() throws Exception {
disconnectArduino();
super.stop();
}
public static void main(String[] args) {
launch(args);
}
}
Next:
- JavaFX + jSSC - read byte from Arduino Uno, read from Analog Input
Wednesday, August 10, 2016
Arduino by Example
Arduino by Example

About This Book
- Explore the different sensors that can be used to improve the functionality of the Arduino projects
- Program networking modules in conjunction with Arduino to make smarter and more communicable devices
- A practical guide that shows you how to utilize Arduino to create practical, useful projects
This book is an ideal choice for hobbyists or professionals who want to create quick and easy projects with Arduino. As a prerequisite, readers must have a working Arduino system and some programming background, ideally in C/C++. Basic knowledge of Arduino is helpful but not required to follow along with this book.
What You Will Learn
- Understand and utilize the capabilities of the Arduino
- Integrate sensors to gather environmental data and display this information in meaningful ways
- Add modules such as Bluetooth and Wi-Fi that allow the Arduino to communicate and send data between devices
- Create simple servers to allow communication to occur
- Build automated projects including robots while learning complex algorithms to mimic biological locomotion
- Implement error handling to make programs easier to debug and look more professional
- Integrate powerful programming tools and software such as Python and Processing to broaden the scope of what the Arduino can achieve
- Practice and learn basic programming etiquette
Arduino an opensource physical computing platform based on a simple microcontroller board, and a development environment for writing software for the board. The opensource Arduino software (IDE) makes it easy to write code and upload it to the board. It runs on Windows, Mac OS X, and Linux. The environment is written in Java and based on Processing and other opensource software.
With the growing interest in home-made, weekend projects among students and hobbyists alike, Arduino offers an innovative and feasible platform to create projects that promote creativity and technological tinkering.
Arduino by Example is a project-oriented guide to help you fully utilize the power of one of the worlds most powerful open source platforms, Arduino. This book demonstrates three projects ranging from a home automation project involving your lighting system to a simple robotic project to a touch sensor project. You will first learn the basic concepts such as how to get started with the Arduino, and as you start building the project, you will develop the practical skills needed to successfully build Arduino powered projects that have real-life implications.
The complexity of the book slowly increases as you complete a project and move on to the next. By the end of this book, you will be able to create basic projects and utilize the elements used in the examples to construct your own devices.
Style and approach
This book follows a project-oriented approach, with multiple images and plenty of code to help you build your projects easily. The book uses a tutorial-based methodology where the concepts are first explained and then implemented to help you develop the projects.
Tuesday, August 2, 2016
Arduino Genuino 101 example to read button and turn ON OFF LED
Arduino Genuino 101 example to read button and turn ON OFF LED

Simple example of Arduino/Genuino 101, to read button (on pin 6) and control LED (on pin 7) accodingly.
Connection:

_101_button_led.ino
/*
* Arduino/Genuino 101 example
* to read button and turn ON/OFF LED accordingly
*/
int LED = 7;
int BTN = 6;
void setup() {
pinMode(LED, OUTPUT);
pinMode(BTN, INPUT_PULLUP);
//indicate program start
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
delay(200);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
}
void loop() {
digitalWrite(LED, !digitalRead(BTN));
delay(100);
}
Monday, August 1, 2016
Android BluetoothChat example link with HC 05 Bluetooth
Android BluetoothChat example link with HC 05 Bluetooth
This example show to import and modify Android BluetoothChat example, to link with low-cost Bluetooth HC-05.
reference:
- First test HC-05 Bluetooth Module
- AT Command mode of HC-05
We need a FTDI USB-to-Serial adapter to connect PC/USB and HC-05 Bluetooth, and use Arduino IDEs Serial Monitor as terminal, to talk with Android running modified BluetoothChat example.
This video show how to import BluetoothChat example in Android Studio, and edit BluetoothChatService.java to change MY_UUID_SECURE to UUID.fromString("00001101-0000-1000-8000-00805F9B34FB").
~ reference http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html, If you are connecting to a Bluetooth serial board then try using the well-known SPP UUID 00001101-0000-1000-8000-00805F9B34FB.
This video show how it run on Android device, and talk to PC running Arduino IDEs Serial Monitor, via FTDI + HC-05.
In my on-hand HC-05 sample, it set as slave role and 9600, 0, 0, PIN="1234" by default, I have not change any setting.
Cross-post with Android-er
Next:
- Android BluetoothChat connect to Arduino Uno + HC-05
Subscribe to:
Posts (Atom)