background preloader

RF24Network for Wireless Sensor Networking

RF24Network for Wireless Sensor Networking
RF24Network is a network layer for Nordic nRF24L01+ radios running on Arduino-compatible hardware. It’s goal is to have an alternative to Xbee radios for communication between Arduino units. It provides a host address space and message routing for up to 6,000 nodes. Today, I managed to get 17 nodes running on a single network. Hardware The fastest way to get RF24Network-compatible hardware is to build the Getting Started board, or the ProtoShield board as explained in other posts, attached to commercially-available Arduino. Ultimately, I wanted something smaller, cheaper and more power-efficient, so I built a Low Power Wireless Sensor Node. Simple Transmit/Receive The Hello World examples illustrate how simple it is to communicate between two nodes. There are three simple sections: Static Initialization First, the static setup to prepare the radio, and set the addresses. setup() Second, the ‘setup()’ simply prints out a quick salutation, and initializes the radio layers. Transmitter loop() Related:  home automationNRF24nRF24L01

tinyUSBboard Arduino compatible without extra programmer and/or FTDI chip (USB<->serial) needed! Plus exchangeable bootloader! New! New! New! ...Some kits are also available at ebay News! Do you have some ideas for further example firmwares - or even completed ones already? Infopage Introduction - What is tinyUSBboard? TinyUSBboard is an Arduino compatible, minimalistic and cheap AVR microprocessor board with USB interface and simple "do it yourself" capability. While normal handling with microcontrolling units (MCUs) needs additional equipment, tinyUSBboard only needs a Mac-, Windows- or Linux computer with a single free USB socket. The board (see photo and layout) in form of a regular stick (approx. 2.5cm x 8.0cm) uses an ATmega8-16PU MCU, clocked at 16MHz. Of course it is possible to use tinyUSBboard with other microcontrollers (for example ATmega328), too. Three of the MCUs pins (PIN2, PIN12 and PIN13) are actually used for the USB interface. Furthermore, there are five LEDs on the board. Firmwares

nRF24 Multi-Network – Allowing for 255 addresses As the nRF24L01 modules are so cheap I bought quite a lot of them and have been thinking about networking them together. I have the idea of using nRF24 to be able to find out which other nRF24′s are around then then eventually be able to forward traffic for one another if it can’t communicate with a nRF24 that may be too far away but that’s an idea for later on. The nRF24L01 allows for up to 6 receive addresses but I want to make this much higher so the way I decided to do this was through software and it would allow for up to 255 addresses. It would use all 32 bytes of data that we can send and its format is: From address (byte 0)To address (byte 1) – address 0 means it’s for everyoneForward address (byte 2) – 0 means it’s a normal packet, 1-255 means to forward it to the addressAcknowledgement (byte 3) – 0 means no ack is needed, 1 means ack is needed back, 2 is the ack to send back, 3 is the ack to send back when forward is completeData (byte 4 to 31) Transmitter Receiver

Woodhouse | Pat Hartl A couple of posts ago I showed off how I made the lights in my room turn on and off with a sonic screwdriver universal remote. Since then I’ve been building on the same project. So far I’ve cobbled together something that might be similar to a very early day Jarvis (Tony Stark’s personal AI assistant). EDIT: The GitHub repo should be updated now to the latest version. At the core of this, just like the sonic screwdriver lights, is a Raspberry Pi model B. This is an early version of the board. A more complete board plugged into the Raspberry Pi with a floppy drive cable. I built in the thermostat functionality because one day I woke up and my bedroom was something like 55 degrees. At this point I was pretty fed up with the normal programmable thermostats and I decided to see what would happen if I hooked up a relay to bridge the two points for me. I was pretty happy for a while until I decided to revisit the project and improve on it. The picture above is the interface I ended up with.

diyembedded.com Smartenit adds the sweetness of Linux Home Automation to Raspberry Pi making it HomAidPi à la mode HomAidPi-Press PRLog (Press Release) - Jul. 26, 2012 - San Juan Capistrano, CA Smartenit, Inc. There is nothing as tasty as homemade raspberry pie in the summer, and the ice cream on top makes it even more delicious, especially when it’s free. To enable access of the HomAidPi™ from anywhere, Smartenit provides client applications for web browsers and mobile devices. This appetizing HomAidPi offers users the ability to seamlessly monitor and control appliances using three of the most prevalent automation protocols: ZigBee, INSTEON and X10. “We are happy to satisfy the craving of home automation enthusiasts with a solid-value gateway solution. Raspberry Pi is a Trademark of the Raspberry Pi Foundation Smartenit: Monitor and Control Anything from AnywhereSmartenit, Inc. Photo:

[Arduino] DIY (stupid and cheap) Plants Irrigator | Hack | Lenotta It’s a burning summer in Florence and I needed a solution to watering my little plants I have around the house. Of course I had a look at some shops for a ready solution, but where is the joy of experimenting with an arduino? First thing to do in this case is to know what you want, and where your project could drive you. It’s nice to fly high with ideas, but to make them affordable you have to take off first. So here we are with our project/tutorial: a time programmed irrigator which will water my plants for 1 minute, once a day, on alternate days. The whole thing costs around 25$ (we’ve bought almost everything from china). - an Arduino (we used a Nano 328)- an RTC (Real Time Clock)- Water Control NC Solenoid Valve- a relay board I wanted to make arduino water my plants on alternate days, so we had to add a little function ‘dayOfYear’ which will tell us (guess what?) Maybe there was a better solution, or it was already implemented, but this way was faster for our purpose. The Sketch

Home · spirilis/msprf24 Wiki » Search Results » mesh JeeLabs In yesterday’s post I introduced a groupRelay.pde sketch, which implements a packet relay. This can be used to (approximately) double the range between sensor nodes and the central data-collecting node. I’ve got two uses for this myself: To try and get through two layers of reinforced concrete here at JeeLabs, i.e. from the garage to the living room to the office floor where my central data-collecting node is. I can get through one floor just fine (easily, even with a few extra walls), but two is giving me trouble.To have a simple way to work with multiple groups of JeeNodes around here for testing and experimentation, while still allowing me to “merge” one of the test groups with the main, eh, “production” group. Note that all traffic takes place in the same 868 MHz frequency band. To summarize from yesterday’s post, this is how the relay code works right now: This is very similar to how web requests work across the internet. But that’s not the only way to do things. Not so fast.

The WorkerB! I have received 5 test PCBs today of the unnamed ‘ATMega32u4+nRF24L01′ board project that I described earlier, I decided to call it a ‘Worker Bee’ or WorkerB! as its task will be to collect and transmit data. The final PCB layout slightly differs from what I last published, I did some more reshuffling, added a RESET button, a solder jumper to allow battery level measurement via Analog 0: There is an option to power the thing from a single AAA battery via the optional LTC3525 boost regulator, the battery is placed on the back via two battery holders. Some pictures: I have also designed a RFM12b breakout that can be used instead a nRF24L01: Indoor plant ideas to give your home a green makeover! - Scale Inch One of the prime features to add a refreshing feel to the space is to welcome home indoor plants that instantaneously change the ambiance and add a potency to make your home look absolutely perfect. The greenery re-energizes the home interior and gives a hygiene and healthier environment. Having plants inside your home not just adds creative look but also adds tranquil effect to the space which in turn brings home charm that intensifies absolutely flawless home interiors. Interior Designers in Bangalore | Scale Inch Revamp your kitchen with natural decors The cooking area can be integrated with decors like flower pots, a garden can be created below the windows having to possess an outright kitchen with fresh and natural décor that gets home an elegant effect. Fill the corners of your home with plants Place the plants in the corner of each room or hang the planters in the available space. Deck up your hall with planters The entrance of your house must be welcoming and pleasant.

RF24Network: Network Layer for RF24 Radios This class implements an OSI Network Layer using nRF24L01(+) radios driven by the RF24 library. Purpose/Goal Create an alternative to ZigBee radios for Arduino communication. Xbees are excellent little radios, backed up by a mature and robust standard protocol stack. They are also expensive. For many Arduino uses, they seem like overkill. Please see the Comparison to ZigBee page for a comparison against the ZigBee protocols Features The layer provides: Host Addressing. The layer does not (yet) provide: Fragmentation/reassembly. How to learn more Topology for Mesh Networks using nRF24L01(+) This network layer takes advantage of the fundamental capability of the nRF24L01(+) radio to listen actively to up to 6 other radios at once. Octal Addressing Each node must be assigned an 15-bit address by the administrator. Node 00 is the base node. How routing is handled When sending a message using RF24Network::write(), you fill in the header with the logical node address. Starting up a node Directionality

arduino - Firmata over nRF24 - Robotics Stack Exchange I'm having some technical problems... I'm trying to use Firmata for arduino but over nrf24, not over Serial interface. I have tested nRF24 communication and it's fine. I have also tested Firmata over Serial and it works. Base device is simple "serial relay". Node device is a bit complex. Read override id handeled in loop method in this way: while(Firmata.available()) Firmata.processInput(); // Handle network data and send it to Firmata process method while(network.available()) { RF24NetworkHeader header; uint8_t data; network.read(header, &data, sizeof(uint8_t)); Serial.print(data, DEC); Serial.print(" "); Firmata.processInputOverride(data); BlinkOnBoard(50); } currentMillis = millis(); Firmata processInputOverrride is little changed method of processInput where processInput reads data directly from FirmataSerial, and in this method we pass data down to method from network. Write method is overloaded in a different way. There is no response.

» Relaying RF12 packets JeeLabs Since the RF12 driver does not implement a full OSI network “stack”, there are no such things as routers and mesh networks in Jee-land. This means you’re basically limited to the range of a single 868/915 MHz point-to-point packet connection. There are a number of ways to increase the range. One is to use a directional antenna (I’ve never tried this, but it has been mentioned on the discussion forum). Another option is to lower the transmission baud rate inside the radio and the bandwidth settings, so that the power is “beamed” into a narrower frequency range. Both of these are based on RF properties. A third option if you can’t get from here to there in one go is to take multiple “hops”. I’m more interested in much simpler approaches, which can easily be implemented in a little 8-bit ATmega with limited code storage. Here’s what happens when you install such a relay: That only covers packets going one way. Here’s a groupRelay.pde sketch, which implements this:

NRF24L01 real life range test | Charles-Henri Hallard Today I was working on a project using NRF24L01 chipset and I decided to verify the test range of this small device that you can buy as a breakboard on ebay. I bought a pair some time ago and bought recently another for my new projects. The modules are different but have the same pinout so it is easy to change them for testing. Both modules are new version, NRF24L01+ and not the old version NRF24L01. The new version is capable of doing 250KBPS low speed and the old not. The newest is the black on the left of the picture, seems better quality and a little shorter. nrf24L01-black nrf24L01-green Of course I used the same module on both Arduino. // Max power setPALevel( RF24_PA_MAX ) ; // Min speed (for better range I presume) setDataRate( RF24_250KBPS ) ; // 8 bits CRC setCRCLength( RF24_CRC_8 ) ; // Disable dynamic payloads write_register(DYNPD,0); // increase the delay between retries & # of retries setRetries(15,15); Then, I went outside in a clean area. nrf24L01-PA-LNA nrf24L01-Antenna

Related: