Tuesday, July 22, 2014

RFID tag reader with ARM microcontroller

   Good afternoon makers, and welcome back to Embedded-Clovis blog. Today I will show you one of the first steps in the make of my Chip Tag for every running club (click here) project: the RFID tag reader. It is a part of a Hackaday prize project I am in, so I think it is important to share it with you.
   RFID stands for Radio-Frequency identification and is a technology that reads/writes tag's (cards, keychains, tokens) contactless (by air); it may or may not feature a power supply in the target device, and when it doesn't have a power supply the energy for the target comes from the air as well (from the host device).
   I bought the module RFID-RC522 breakout board from a random seller on eBay, that features a MFRC522 RFID chip from NXP working on 13.56MHz; I also bought some programmable RFID cards/keychains for testing: the MIFARE 1K . I haven't tested recording data on it but this is surely the next step in my journey (since I will need that on my "Chip tag for runner's" project. 
   The schematic of my project can be seen below, featuring a Freescale FRDM-K64F development board, a RFID-RC522 module and an USB cable connected to my PC. Every time a card is ready (in a 2-3 centimeters range) its data is sent to a serial console on PC: I am using the Arduino IDE console on this project. 

click in the image to Enlarge

The wiring is done as follow: 

MFRC522 SPI_MOSI => PTD2 port of my board
MFRC522 SPI_MISO => PTD3 port of my board
MFRC522 SPI_SCK => PTD1 port of my board
MFRC522 SPI_CS => PTE25 port of my board
MFRC522 MF_RESET => PTD0 port of my board
MFRC522 3.3V => 3.3V of my board
MFRC522 GND => GND of my board

   There is a test code on GitHub here,  for reading tags and sending its information to the serial console of a PC. It is important to mention here that most of the code was taken from libraries and examples created by other users on the mBed platform (please refer to the GitHub link above for credit information).
   This was only the first step on the development of my summer project (Chip tag for running clubs), but I am sure it will help people get started with RFID technology. Having any question or concern, please contact me via Twitter: @ClovisDuino  or e-mail: clovisduino AT gmail .com . See you guys next time; have fun hacking and making!. 

Friday, July 4, 2014

Weather datalogger with ARM cortex-M4 - part1

   So, after blinking LED's and reading buttons I want to go further and deeper inside my ARM Cortex-M4 board: I am developing a data-logger for Temperature, Humidity and light level; It will store its data inside a micro-SD card, available on-board the FRDM-K64F I have.
   The sensors I have in my hands right now are the linear LM35 temperature sensor, the DHT11 digital temperature/humidity sensor and a LDR(light dependent resistor) for visible light level measurement. In the picture below you can see the setup of my experiment; it is  possible to see the big light-blue component (DHT11) aside with LM35 (the TO-92 case) and my Freescale development board with a microSD card connected to it. The LDR is missing in the picture, but is present in the actual prototype.


   Besides the sensors and microSD my board also features a Timekeeping chip, a Maxim DS1302 in a breakout board with a battery mounted on it; That chip makes my data-logging look more "professional" by keeping track of the time of every reading (or event). My code can be download from here and the schematic diagram is seeing below. 

Schematics- click the image to enlarge

   One reading is made every 10 seconds and the data is stored in the microSD card. I have tested the setup for several days, for as long as 21 hours every time. Turns out the system is very reliable: it can be seen below in the temperature plot that both sensors feature a similar behavior, validating the reading of both (analog for the LM35 and digital-serial for the DHT11).






Click in the images to enlarge

   I selected that specific period of time (5AM- 5PM) because it is the most interesting in terms of temperature and light level; There are some considerations to be done in here:

1) The temperature and the light level increase when 5PM gets closer, and that is because my room is facing northwest, so it starts getting a huge amount of sunlight around that time.
2) My light sensor (LDR) is not calibrated and I also don't know its characteristics, so I simply put a series resistor (1Kohm) with it; As a post processing I scale it to fit into a 0-5 arbitrary scale. Around 7:30PM (not on the pictures above) it reaches almost 4.5 with direct sunlight over it.
3) Some noise is expected to appear in the pictures above (as is possible to observe), as the system takes one measurement every 10 seconds. These pictures feature around 12 hours of data!.

   That was the part 1 of a series of improvements I am planning to make on that project; My next step will be using the network hardware available on-board (Ethernet) to send all that data in real-time for a web page I will create. Another piece of future work will also be powering the module with a solar panel (which I have bought already). And finally adding a rain sensor to it, so I can have a complete meteorological station in my house!. All of that was powered by this amazing Freescale development board (FRDM-K64F). 

Thank you guys and see you soon,

Thursday, July 3, 2014

A cheap Chip Tag for every Running club

Hello folks, 

   Today's post is about my entry to the Hackaday Prize, a competition that will take its winner to space :) . The objective of the competition is to make (and show the world how you did) projects that are in some way "connected": any kind of communication is valid. There is already a plenty of projects being showed there, and I think mine is a bit special: it is related to something that I love doing and will help me doing it better.
   I am talking about road Running; I have been running for three years now and I always feel frustrated when there is no chip-timing in the small races I participate, or even in trail or stairs races. Of course everyone can have a GPS-enable Cellphone or wrist-watch, but the first ones are not always comfortable to carry and the last one in not cheap enough for everyone to have it.
   So I came up with a hack solution (link here) that may revolutionize small running communities and clubs: An Arduino-sized device that reads RFID tags and communicates to any Android cellphone via Bluetooth. So every runner will only carry a small key-chain sized RFID tag and all the processing is done into the reader, that will finally send runner's time and name to an App to be developed on Android.


   The actual schematic for the project is seen above; I haven't started putting the hardware together yet because the parts are still being shipped to me, but have started the programming, that will probably be done into a Freescale FRDM-K64F board (features an ARM Cortex-M4 inside). 
   More details to come as I advance into the project. Get updated on my Google Plus: +Clovis Fritzen and my Twitter: @ClovisDuino. See you guys later,