Monday Dec 01, 2014

Cyber Monday - IoT deal - SparkFun MiP Robotic Platform w/Free Shipping

SparkFun is having a special IoT deal: Free Shipping on the MiP Robotic Platform $99.95 (while supplies last!)

This robot comes with documentation and apps are available to control it with an iOS and Android smartphone. But, with a bit of tweaking, I'm guessing you could also get it to work with a Raspberry Pi and a Java app... Just sayin'...

See:

SparkFun MiP Robot

Here's a quote:

 Description: The MiP Robotic Platform 
 is the first self-balancing robot 
 that you get to control and play 
 games with. The MiP can drive, dance, 
 plays games, battle with other MiPs...
Great as an IoT stocking stuffer!

Monday Sep 22, 2014

Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 4)

Now that we know that we'll be using a Parallax USB RFID Reader as an IoT sensor for our Jini Auto-Discovery, we can do a quick refresher of how Jini Auto-Discovery works.

In the diagram to the right we see that, multiple IoT devices on the right side connect the Jini network (such as via Wi-Fi, Bluetooth, or in this case USB), where a Java VM is listening. Once that IoT device shows up on the Jini network, it will need a Jini proxy running in a Jini client application to "proxy" the IoT device as a Jini "service provider" (in other words, an IoT sensor, actuator, or device will perform an action for a Jini client, such as take a measurement/reading, move a servo motor, etc.) via a Jini "proxy". This is how an IoT network of devices becomes more automated and easier to integrate, with everything talking the Java programming language to each other using Java objects.

And, this gives us the key to how the RFID reader will be auto-discovered by our Jini network, so that we just plug it in, and it works (with any other IoT app, network or device)!

So, Jini technology allows for disparate IoT devices and networks (such as a Fitbit wearable, Apple HealthKit heart monitor, Google Nest thermostat, WeMo light switch, or any other IoT device) interact with each other, with apps, and with the cloud.

Next, we'll take a closer look at the how the Jini Look-Up Service running on the Java VM is the integral part of this picture...

Full series of steps:
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 1)
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 2)
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 3)
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 4)
<<< Previous  | Next >>>

Thursday Sep 04, 2014

Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 3)

For the Discovery part of the Jini Auto-Discovery of an IoT sensor, we'll need the specification of the device we are trying to on-board. In this case, we are integrating the Parallax USB RFID Reader using the Jini technology techniques for device discovery.

After a quick Web search, we see there is information about how to manually connect the Parallax USB RFID Reader at Stephen James Mason's blog post:

See:
https://stephenjam.es/wp/raspberry-pi-rfid-reader-with-java-and-pi4j-part-1/

That gives us the key to integrating that specific sensor into a Jini network that we are creating. Just take the part that is manually being done (in the blog post) and write a Jini discovery adapter to watch for it when that particular Parallax USB RFID Reader gets connected to the Raspberry Pi.

...
int result = serial.open( "/dev/ttyUSB0", 2400 );
...
In the RFID reader manual, the key 
transmitted is described as a sequence 
of bytes, such as “ 0x0A, 0×30, 0×46, 
0×30, 0×31, 0×38, 0×34, 0×46, 0×30, 
0×37, 0×41, 0x0D”, where 0x0a is the 
start byte, and 0x0d is the stop byte, 
leaving the remaining 10 bytes as the 
tag’s unique key. 
So, the sequence (above string of bytes from the USB device) is what we use to "discover" that specifically the Parallax USB RFID Reader was just connected to the USB port of the Raspberry Pi. At that point of discovery, we "Look-Up" the correct Jini proxy to use to communicate with that RFID Reader from inside a Java application (using the manufacturer's RFID Reader manual as our guidance).

Next, we'll take a closer look at the Jini code that is used to "discover" that RFID reader sequence of bytes (or its "fingerprint") so that the Jini auto-discovery phase happens each time a new connection is made, instead of doing that "manually" like it is described in Stephen James Mason's blog post. Automatically done is the way to go, and it's the Jini way!

Full series of steps:
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 1)
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 2)
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 3)
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 4)
<<< Previous  | Next >>>

Tuesday Sep 02, 2014

Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 2)

To start us off auto-discovering IoT sensors and devices for quick on-boarding, we'll first take a look at the basics of Jini technology.

There are two main concepts:

 Discovery: boot-strap sensor/device
 Look-Up: directory of services
For the purposes of IoT easy on-boarding, both concepts are important. We want the sensor or device to boot-strap itself (with proper authentication and authorization) onto the IoT network. Then, we want the sensor or device to look-up the proper Jini proxy to use for communication.

Those are the basic steps behind Jini and will be what makes on-boarding to an IoT network so easy. In the next post, we'll drill down to how to make your IoT sensor or device do each step. Exciting... :-)

Full series of steps:
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 1)
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 2)
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 3)
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 4)
<<< Previous  | Next >>>

Thursday Aug 28, 2014

Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 1)

If you ever wanted an easy-peazy way to have your Raspberry Pi auto-discover your IoT sensors and devices, but you haven't been using Jini IoT Edition concepts with Java SE Embedded, then you're doing it wrong.

I'll take you through the straight-forward steps to on-board your IoT sensors and devices quickly using Java SE Embedded technology and the concepts from the Jini IoT Edition.

Parts List:

 1 Raspberry Pi Model B $35
 1 Parallax RFID Card Reader Serial $39
Grab those parts and come back here for the next part in this series... Jini, IoT, Java SE Embedded, Raspberry Pi. It'll be fun!

Full series of steps:
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 1)
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 2)
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 3)
Easy IoT Sensor On-Boarding Using Jini Auto-Discovery and Java SE Embedded (Part 4)
<<< Previous  | Next >>>

Tuesday Aug 26, 2014

How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 9)

This is the final part of "How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Technology". You've followed along and now have your Raspberry Pi connected to your home thermostat to control your heating, cooling, and fan controls of your furnace and A/C. You also ran through a Java diagnostic app that cycled through the heating, cooling, and fan relays to make sure you are able to turn on and off the controls programmatically. Very nice.

Now, it's up to you to create your user interface and control software. Remember to utilize the Web since you are connected via Wi-Fi to your home wireless network. Just make sure to use the proper HTTPS connection to any server and check for proper authorization for every connection. Using certificate based authentication is best, but that's a topic that's outside the scope of this series.

For the UI, just make sure Jetty is installed on your RPi. Jetty is a Java SE Embedded based Web server to run your UI on your local LCD touchscreen.

   sudo apt-get install jetty
   (cd /usr/share/jetty; sudo java -jar start.jar)

Now, when you boot up your Raspberry Pi, just configure your boot-up to bring up the Midori Web browser on the Ada Fruit TFT LCD screen pointing to your local Jetty Web server and your UI page to your software.

See: http://www.ediy.com.my/index.php/blog/item/102-raspberry-pi-running-midori-browser-without-a-desktop

That should get you started on your way to building your own home thermostat control based on Java SE Embedded technology. Not too shabby!

Good luck on finishing out your project! Hope this was useful in getting you on your way to creating your own Nest startup.

Full series of steps:
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 1)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 2)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 3)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 4)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 5)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 6)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 7)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 8)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 9)
<<< Previous  | Next >>>

Monday Aug 25, 2014

Geertjan describes Raspberry Pi, Java SE Embedded & NetBeans Remote Platform

I was having an offline discussion with Geertjan about using NetBeans remote platform development with Java SE 8 Embedded on the Raspberry Pi. Soon as I mentioned how you do that with just a few straight-forward steps using sudo apt-get install oracle-java8-jdk, he's got it in a Web article.

That's fast!

See:

Geertjan describes RPi & Java

Here's a quote:

 Once you have set up a Raspberry Pi, 
 the next step is to install "JDK 8 
 for Arm" on it. Here is how, on the 
 command line of the Raspberry Pi:

  sudo apt-get update
  sudo apt-get upgrade
  sudo apt-get install oracle-java8-jdk

 Once you have done that, you need: 
 Putty, WinSCP, SSH, and other command 
 line tools, right? Wrong.
Nice! Geertjan is right. All you need is to install oracle-java8-jdk on your RPi and have the NetBeans IDE running over the network on a host system, and you're cookin'!

Thursday Aug 21, 2014

Java 8 for Tablets, Pis, and Legos at Silicon Valley JUG - 8/20/2014

A bunch of people attended the Silicon Valley Java Users Group meeting last night and saw Stephen Chin talk about "Java 8 for Tablets, Pis, and Legos". I was there and thought Stephen's presentation and demos were very cool as always.

Here are some photos (mostly taken by Arun) from last night.

See:

Photos from SV JUG 8/20/2014

The most interesting combination of the topics from last night (to me at least) is to combine Lambdas from Java SE Embedded 8 with running on an embedded device like the Raspberry Pi, or even better on an i.MX6 target device with a quad-core processor. Lambdas and Embedded, now that's a cool combo...

Tuesday Aug 19, 2014

Java SE Embedded-Enabled Raspberry Pi Ice Bucket Challenge

Help fight ALS at: http://www.alsa.org/fight-als/

See:

Java SE Embedded-Enabled Raspberry Pi Ice Bucket Challenge

My Java SE Enabled Raspberry Pi accepts the nomination for the ALS Ice Bucket Challenge and I hereby nominate the Nest thermostat, the Fitbit fitness tracker, and Apple TV.

Take the Ice Bucket Challenge. Help find the cure for ALS: http://www.alsa.org/fight-als/ice-bucket-challenge.html

Friday Aug 15, 2014

Why are embedded device apps still written in C/C++? Why not Java programming language?

At the recent Black Hat 2014 conference in Sin City, the Black Hatters were focusing on Embedded Devices and IoT. You know? Make your networked-toaster burn your bread 10,000 miles away, over the Web for grins and giggles.

Well, apparently the Black Hatters say it can be done pretty easily these days, which is scary.

See:

Securing Embedded Devices & IoT

Here's a quote:

 All these devices are still written 
 in C and C++.

 The challenges associated with 
 developing securely in these languages 
 have been fought for nearly two decades.
 "You often hear people say, 'Well, why 
 don't we just get rid of the C and C++ 
 language if it's so problematic. Why 
 don't we just write everything in C# or 
 Java, or something that is a little 
 safer to develop in?'," DeMott says. 
Gah! Why are all these IoT devices still using C/C++? Of course they should be using Java SE Embedded technology! It's a natural fit to use for better security on embedded devices. Or, I guess, developers really don't mind if their networked-toasters do char their breakfast. If it can be burned, it will be... That's what I say. Unless they use Java. :-)

Wednesday Aug 13, 2014

Paul Krill states: "Oracle is strengthening Java" technology

The editor-at-large at InfoWorld, Paul Krill, says that "Oracle is strengthening Java" in his recent opinion piece, and gives his reasons why. Well, that's good to know, since a strong Java makes for a set of happy Java developers, especially Java SE Embedded developers, who need plenty of strength in a smaller package.

See:

Paul Krill: Oracle strengthening Java

Here's a quote:

 Oracle followed up Java SE 7 with 
 Java SE 8, with capabilities for 
 functional programming offered via 
 Project Lambda. In fact, some have 
 even feared Oracle was moving Java 
 too far with Lambda expressions.

 Up next for the standard edition of
 Java is version 9, which is expected 
 in 2016 and is slated to provide 
 modularity capabilities deferred 
 from Java SE 8. 

That's right. Cool new Java features just keep chugging along into all these new versions (Java SE 7, 8, and coming next 9). That goes for Java SE Embedded also, which is fully compliant with Java SE 7, 8, and eventually 9 with all its modular goodness. So, make sure to ask that Google when they'll have all these great features in Android. ;-) Inquiring minds want to know...

Wednesday Aug 06, 2014

AMD and Oracle collaborating on OpenJDK for ARMv8 64-bit servers

Here's an article on Project Sumatra, the AMD/Oracle collaboration to put Java SE Embedded technology onto their new ARM 64-bit motherboard (which can also accept x86 chips).

See:

AMD and Oracle Collaborate on ARM 64-bit

Here's a quote:

 The board ships with software including 
 the LAMP stack—Red Hat Fedora Linux, 
 Apache web server, MySQL database and 
 PHP tools. The board also supports Java 
 7 and 8, which don’t yet have native 
 support for parallel acceleration across 
 CPUs and graphics processors. The 
 acceleration can be added to Java 
 virtual machines only through extra 
 layers of code. AMD and Oracle are 
 collaborating on an OpenJDK project 
 called Project Sumatra, which will bring 
 native CPU-GPU parallel execution to ARM 
 servers with Java 9, which is due next 
 year.
If you're into Big Iron servers running Java SE Embedded software (best type of combo for power savings and embedded programming), then you'll want Java SE Embedded ARMv8 64-bit support which is on its way. Just get ready, since racks and racks of these ARM 64-bit servers running embedded Java apps will be the next phase of data center processing...

Tuesday Aug 05, 2014

Silicon Valley JUG Wed 8/20/2014 Java SE Embedded 8 on Lego, Raspberry Pi, & Tablets

For those in the Silicon Valley area who like Raspberry Pi, Lego Mindstorms and Java SE Embedded, Stephen Chin (Oracle Java Ambassador) will be giving a presentation about Java SE Embedded 8 for tablets, RPi, & Lego Mindstorms on Wed. 8/20/2014 @ 6pm-9pm, Pacific Time at Google, Building CL2, Crane Beach Conference Room:

Sign up here:

Silicon Valley JUG Wed 8/20/2014

Java 8 for Tablets, RPis, and Legos
    Wednesday, August 20, 2014
    6:00 PM to 9:00 PM
    Crane Beach room, Google Bldg CL2
    1200 Crittenden Lane, 
    Mountain View, CA

    6:00 - 7:00 Networking & light 
                dinner - Thanks Google 
    7:00 - 7:15 Announcements
    7:15 - 8:45 Steve Chin will talk 
                about Java 8 Lambdas 
                and Devices
    8:45 - 9:00 Q&A
Good topic, good food, so-so venue... 2 out of 3 ain't bad. What else can you ask for? ;-)

Monday Aug 04, 2014

James Gosling's slate.com article about using Java SE Embedded 7 on ARM

Here's a cool Slate Magazine article I saw Yael W. like on Facebook about how James Gosling uses Java SE Embedded 7 on ARM for his wave riding Liquid Robotics robots.

See:

James Gosling's slate.com Article

James Gosling
August 2 at 10:10am

Java sailing in the arctic!! These are some of 
our new bots whose control system is running on 
top of the embedded ARM JVM (we're still on JDK 
7). We've got two other groups of them in the 
arctic this summer, including three very close 
to the north magnetic pole - had to write some 
very special navigation code. Crazy stuff

Now, that is cool stuff and an awesome use of the Java SE Embedded technology. Internet of Wave Riding Things (IoWRT).

Friday Aug 01, 2014

New Raspberry Pi Model B+ Runs Java SE Embedded Apps Just Like Model B

What's the difference between the new Raspberry Pi Model B+ and the old Model B? Well, it's more than just the plus sign (+) in the name. There are more USB ports, better sound, and lots and lots more GPIO Pins.

Now that's what I'm talking about! I like having more GPIO pins when connecting my Java SE Embedded apps to all types of tasty devices like sensors and actuators!

See Raspberry Pi video blogger, Carrie Anne Philbin's run-down of the list of new features of the new RPi Model B+ on YouTube:

Geek Gurl Reviews RPi Model B+

And to add to the Geek Gurl's video (above), you should know that of course, all your old Java SE apps will run on the new RPi Model B+ without any problem, because... duh... "Write Once, Run Anywhere" Ya know? Java? Hello? Good stuff!

Just remember to update your version of the Java SE Embedded platform to the latest release on your Raspbian operating system:

sudo apt-get install oracle-java8-jdk

That's it! You will now have the most recent Java SE Embedded platform, the most awesome embedded platform for your Raspberry Pi Model B, B+, and any other letter and arithmetic symbol you can think of. Port your Model B Java apps to the Model B+ by just copying over the JAR files. What's easier than that? :-)

About

Hinkmond Wong's blog on making the Internet of Things (IoT) smarter with Java Technologies

Search

Archives
« August 2015
SunMonTueWedThuFriSat
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
     
Today