Internet of Things (IoT) [26] is a new networking paradigm for cyber-physical
systems that allow physical objects to collect and exchange data. In the IoT, physical
objects and cyber-agents can be sensed and controlled remotely across existing
network infrastructure, which enables the integration between the physical world
and computer-based systems and therefore extends the Internet into the real world.
IoT can find numerous applications in smart housing, environmental monitoring,
medical and health care systems, agriculture, transportation, etc. Because of its
significant application potential, IoT has attracted a lot of attention from both
academic research and industrial development.
Fun. We (your authors) wanted a word to describe our ultimate goal for this book, as well as a word
we hope you (our reader) will use to describe it, and that’s the one we chose. There are others goals,
of course, but in the end, when you’ve finished the book, we’re hoping you’ll have enjoyed the
activities described in these pages.
Many books use the Introduction to explain exactly what the book is about, what the reader will
learn, what the reader needs (a skill or maybe an item or piece of software), and what the reader
will be left with when that last page is completed. And this Introduction will do those things, but …
hopefully it’ll make you excited to get started.
MIT App Inventor is an innovative beginner’s introduction to programming and app
creation that transforms the complex language of text-based coding into visual, drag-and-
drop building blocks. The simple graphical interface grants even an inexperienced novice
the ability to create a basic, fully functional app within an hour or less.
Have you ever looked at some gadget and wondered
how it really worked? Maybe it was a remote control
boat, the system that controls an elevator, a vending
machine, or an electronic toy? Or have you wanted
to create your own robot or electronic signals for a model railroad, or per-
haps you’d like to capture and analyze weather data over time? Where and
how do you start?
There’s a story (it’s either an old vaudeville joke
or a Zen koan) in which a fisherman asks a fish,
“What’s the water like down there?” and the
fish replies “What is water?” If the story is just
a joke, the point is to make us laugh; but if it’s
a koan, the point is that the most obvious and
ubiquitous parts of our immediate environ-
ment are, paradoxically, often the easiest to
overlook.
I can remember buying my first electronic calculator. I was teaching a graduate level statistics course and I
had to have a calculator with a square root function. Back in the late 1960s, that was a pretty high-end
requirement for a calculator. I managed to purchase one at the “educational discount price” of $149.95!
Now, I look down at my desk at an ATmega2560 that is half the size for less than a quarter of the cost and
think of all the possibilities built into that piece of hardware. I am amazed by what has happened to
everything from toasters to car engines. Who-da-thunk-it 40 years ago?
In the early days, embedded systems were built primarily by engineers in a
pretty exclusive club. Embedded devices and software tools were expensive,
and building a functional prototype required significant software engineering
and electrical engineering experience.
An Arduino core for the ATmega328, ATmega168, ATmega88, ATmega48 and ATmega8, all running a [custom version of Optiboot for increased functionality](#write-to-own-flash). This core requires at least Arduino IDE v1.6.2, where v1.8.5+ is recommended. <br/>
**This core gives you two extra IO pins if you're using the internal oscillator!** PB6 and PB7 is mapped to [Arduino pin 20 and 21](#pinout).<br/>
If you're into "generic" AVR programming, I'm happy to tell you that all relevant keywords are being highlighted by the IDE through a separate keywords file. Make sure to test the [example files](https://github.com/MCUdude/MiniCore/tree/master/avr/libraries/AVR_examples/examples) (File > Examples > AVR C code examples). Try writing a register name, <i>DDRB</i> for instance, and see for yourself!