What’s on the CD-ROM?
Included on the accompanying CD-ROM:
• A directory containing all of the example programs in the book organized by chapter.
• A full searchable eBook version of the text in Adobe pdf format.
• Appendix A, providing information on TINI components and pinout
• Appendix B, a listing of ByteUtils.java, which is used in a number of the example programs.
• Appendix C, a compilation of simple input/output circuits that can be easily connected to various types of I/O for sensing or controlling external devices.
Each example from the book is in a separate folder that is named according to the program name and the corresponding listing number from each chapter, so the proper listing ought to be very easy to find.
To compile these listings using the supplied makefile (for linux) or build.bat (for Windows) you will need to set your environment variable as instructed in Chapter 3 of the book. Specifically, TINI_HOME must be set to point to the TINI API installation directory and OW_HOME must be set to point to the 1-wire API installation directory.
The build.bat and Makefiles included with the compile instructions for each listing assume that you are using API 1.02d or e.
On Windows/DOS, if you get an “Out of environment space” error, then you will need to increase the default environment space available for MS-DOS programs. To do this, add this line to your config.sys and then reboot your system:
SHELL=C:\COMMAND.COM C:\ /E:2048 /P
See http://support.microsoft.com/default.aspx?scid=kb;EN-US;q230205 for more information.
This is how we are setting the CLASSPATH for Windows (95/98/2000/NT/XP):
This is how we are setting the CLASSPATH for Linux:
export TINI_HOME OW_HOME CLASSPATH
Why should you read this ?
The target audience of this book is anyone interested in merging practical electronic devices with the Internet: students, teachers, home automation enthusiasts, hobbyists, and small businesses. Computer programmers looking for a gentle introduction to the world of hardware will benefit, as will hardware designers looking to expand their skills into the realm of JAVA programming. College engineering and computer science departments will find in this book a wealth of possibilities for lab projects that expose students to cutting-edge technology with minimal expense. Why should you read this book? The best reason of all: fun. This book will provide anyone interested in tinkering with hardware on the net hours of fun. Another reason: the future. Even if you’re not interested in making hardware, this book will give you a practical glimpse into what the real future and potential of the Internet is. The first Internet wave connected people via computer, popularizing things such as email, search engines, and online shopping. The next wave is going to be Internet appliances: electronic devices connected to the Internet. Ever wondered how those “live internet cams” work? They’re probably the most recognizable example of hardware connected to the web. In the past they were tremendously expensive and tended to be supported by engineering departments as an experimental thing. The future is going to see a tremendous expansion of low-cost, practical devices, con- nected to the Internet for home use. A good example might be a future VCR. Have you ever found yourself at work, wishing you had set the VCR to program your favorite show? A VCR that was an Internet appliance would give you the capability of programming your VCR from a web page, wherever you may be. Another good example of an Internet appliance might be a piece of hardware that allows you to control your thermostat, your lights,
and your water heater from a web site. Cheap Internet appliance technology will make controlling devices in your home from a web page commonplace. Will every- thing in your house be “on the web” in the future? Probably not. But the growing number of people with Internet on their desk and the proliferation of cell phones and PDAs that can interact with web pages represents a growing market. That market is raising the attention of countless companies both large and small, looking to make products to put into every home. This book will examine commercial technology, discussing in great detail an inexpensive web-enabled microcontroller that can be used to connect a variety of devices to the web.
Why should you read this book? So when the next big Internet wave happens, you’ll be in front of it! (And, there is that fun thing, too.)
What this post will do for you
This book is a complete introduction to Internet-enabled devices. We provide all of the information you need to inexpensively build your own web-enabled hardware. Specifically, we’ll show you:
1. The basic terms and concepts required to understand the technology of web- enabled devices. This includes detailed sections on networking and Java programming.
2. A quick overview of commercially available, web-enabled, microcontrollers, comparing their price and availability.
3. A step-by-step examination of TINI1, the Tiny InterNet Interface, a commer-cially available hardware/software package designed for use as a web interface to hardware. We’ll examine the hardware, software, and available enhancements in detail.
How this post is laid out
The information in this book is divided into 14 chapters.
Chapters 1 through 4 provide basic technical definitions with respect to networking and Internet clients and servers. We’re going to go into some detail on Java, the modern object-oriented, internet-ready, programming language rapidly becoming the language of choice for network applications. We’re not going to teach you Java, but we are going to cover some of the key features of the language that are very relevant to our topic, and are frequently not taught in the average Java course.
Chapters 5 through 8 discuss, in great detail, the hardware and software behind TINI, Dallas Semiconductor’s commercially available, web-enabled microcontroller. This will include a high-level discussion of how the system works and an explanation of how to obtain and set up the hardware and software on your own Windows or Linux PC. Following that, we’ll present an indepth discussion of the TINI hardware.
We’re going to explain what it is and how it works.
Then, in a similar fashion, we’re going to take apart the TINI software. Finally, with detailed technical discussions of the TINI hardware and software as background, we’ll present detailed sections on how to upgrade the TINI hardware.
Chapters 9 through 12 consist of detailed technical discussions of the various I/O busses provided by TINI.
These include 1-Wire, CAN, I2C, and standard serial and parallel ports.
Every topic is profusely illustrated, and filled with examples. Chapter 13 discusses how to connect TINI to a network, including how to attach a modem to TINI.
This allows you to dial-in to TINI and have it act as a PPP server, or dial-out to an Internet service provider (ISP) allowing PPP clients to run on TINI. Finally, Chapter 14 provides a summary.
How to get the most out of this post
Our book is not a novel, requiring cover-to-cover reading; rather, it’s a combination technology intro, how-to guide, and reference manual. What one needs to read, and how to get the most out of that reading, depends on who you are and what your goals are.
1. For those who are simply curious about how web-enabled devices might be implemented, chapters 1, 2, 4, and 5 should be read. They will give the necessary background and technical depth. Chapters 10, 11, and 12 can be skimmed to provide additional information on the breadth of devices that can be connected to a web-enabled device.
2. For those who are unfamiliar with microcontrollers but plan on implementing a web-enabled device of some sort, chapters 1 through 7 should be read. There’s enough information there to get you up and running. The remaining chapters can be skimmed to provide technical ideas, and serve as an excellent reference.
3. For those who are familiar with TINI, chapters 6 through 13 are an excellent reference.
What you should already know
While you don’t have to be an engineer or computer scientist to have a lot of fun with this book, there are a few prerequisites. First, we assume that you understand basic electronics such as how to read circuit diagrams and how to use a soldering iron to build simple electronic circuits. Lastly, but most importantly, we assume basic knowledge of the Java programming language. We’re going to provide detailed explanations of how to get and install the Java language for your Windows or Linux computer, as well as how to obtain the appropriate technology-specific software and class libraries. We do this to provide a solid foundation on which to build our later examples. We’re going to explain in detail the Java examples we provide. But our book isn’t going to teach you Java. If you’re unfamiliar with Java, you may want to consider the following references.
1. Java 2 Platform, Standard Edition, v 1.3 API Specification. http://java.sun.com/j2se/1.3/docs/api/index.html
2. Campione, Mary and Walrath, Kathy. The Java Tutorial Second Edition: Object-Oriented Programming for the Internet, http://web2.java.sun.com/docs/books/tutorial/. Addison-Wesley, 1998.
3. Flanagan, David. Java in a Nutshell: A Desktop Quick Reference, O’Reilly & Associates, 1999.
4. Flanagan, David. Java Examples in a Nutshell, O’Reilly & Associates, 1999.
5. Wu, C. Thomas. An Introduction to Object Oriented Programming with Java, McGraw Hill College Div, 1998.
We hope you enjoy.