100% found this document useful (1 vote)
12 views

Instant ebooks textbook Beginning Sensor Networks with XBee, Raspberry Pi, and Arduino: Sensing the World with Python and MicroPython 2nd Edition Charles Bell download all chapters

World

Uploaded by

giosialezel
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
12 views

Instant ebooks textbook Beginning Sensor Networks with XBee, Raspberry Pi, and Arduino: Sensing the World with Python and MicroPython 2nd Edition Charles Bell download all chapters

World

Uploaded by

giosialezel
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

Experience Seamless Full Ebook Downloads for Every Genre at textbookfull.

com

Beginning Sensor Networks with XBee, Raspberry Pi,


and Arduino: Sensing the World with Python and
MicroPython 2nd Edition Charles Bell

https://textbookfull.com/product/beginning-sensor-networks-
with-xbee-raspberry-pi-and-arduino-sensing-the-world-with-
python-and-micropython-2nd-edition-charles-bell/

OR CLICK BUTTON

DOWNLOAD NOW

Explore and download more ebook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Beginning Robotics with Raspberry Pi and Arduino: Using


Python and OpenCV 2nd Edition Jeff Cicolani

https://textbookfull.com/product/beginning-robotics-with-raspberry-pi-
and-arduino-using-python-and-opencv-2nd-edition-jeff-cicolani/

textboxfull.com

Beginning Robotics with Raspberry Pi and Arduino: Using


Python and OpenCV 2nd Edition Jeff Cicolani

https://textbookfull.com/product/beginning-robotics-with-raspberry-pi-
and-arduino-using-python-and-opencv-2nd-edition-jeff-cicolani-2/

textboxfull.com

Beginning Robotics with Raspberry Pi and Arduino: Using


Python and OpenCV Jeff Cicolani

https://textbookfull.com/product/beginning-robotics-with-raspberry-pi-
and-arduino-using-python-and-opencv-jeff-cicolani/

textboxfull.com

Biota Grow 2C gather 2C cook Loucas

https://textbookfull.com/product/biota-grow-2c-gather-2c-cook-loucas/

textboxfull.com
Raspberry Pi Home Automation with Arduino 2nd Edition
Andrew K. Dennis

https://textbookfull.com/product/raspberry-pi-home-automation-with-
arduino-2nd-edition-andrew-k-dennis/

textboxfull.com

Hacking Electronics: Learning Electronics with Arduino and


Raspberry Pi, 2nd Edition Simon Monk

https://textbookfull.com/product/hacking-electronics-learning-
electronics-with-arduino-and-raspberry-pi-2nd-edition-simon-monk/

textboxfull.com

Get started with MicroPython on Raspberry Pi Pico 1st


Edition Gareth Halfacree

https://textbookfull.com/product/get-started-with-micropython-on-
raspberry-pi-pico-1st-edition-gareth-halfacree/

textboxfull.com

Action movement light and sound with Arduino and Raspberry


Pi First Edition Monk

https://textbookfull.com/product/action-movement-light-and-sound-with-
arduino-and-raspberry-pi-first-edition-monk/

textboxfull.com

Internet Of things With Raspberry Pi And Arduino First


Edition. Edition Rajesh Singh

https://textbookfull.com/product/internet-of-things-with-raspberry-pi-
and-arduino-first-edition-edition-rajesh-singh/

textboxfull.com
TECHNOLOGY IN AC TION™

Beginning Sensor
Networks with
XBee, Raspberry Pi,
and Arduino
Sensing the World with Python
and MicroPython

Second Edition

Charles Bell
Beginning Sensor
Networks with XBee,
Raspberry Pi, and
Arduino
Sensing the World with Python
and MicroPython
Second Edition

Charles Bell
Beginning Sensor Networks with XBee, Raspberry Pi, and Arduino:
Sensing the World with Python and MicroPython

Charles Bell
Warsaw, VA, USA

ISBN-13 (pbk): 978-1-4842-5795-1 ISBN-13 (electronic): 978-1-4842-5796-8


https://doi.org/10.1007/978-1-4842-5796-8

Copyright © 2020 by Charles Bell


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole
or part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical
way, and transmission or information storage and retrieval, electronic adaptation,
computer software, or by similar or dissimilar methodology now known or hereafter
developed.
Trademarked names, logos, and images may appear in this book. Rather than use a
trademark symbol with every occurrence of a trademarked name, logo, or image we use the
names, logos, and images only in an editorial fashion and to the benefit of the trademark
owner, with no intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms,
even if they are not identified as such, is not to be taken as an expression of opinion as to
whether or not they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the
date of publication, neither the authors nor the editors nor the publisher can accept any
legal responsibility for any errors or omissions that may be made. The publisher makes no
warranty, express or implied, with respect to the material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Natalie Pao
Development Editor: James Markham
Coordinating Editor: Jessica Vakili
Distributed to the book trade worldwide by Springer Science+Business Media New York,
233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201)
348-4505, e-mail [email protected], or visit www.springeronline.com. Apress
Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business
Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail [email protected], or visit http://www.
apress.com/rights-permissions.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook
versions and licenses are also available for most titles. For more information, reference our
Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is
available to readers on GitHub via the book’s product page, located at www.apress.com/
978-1-4842-5795-1. For more detailed information, please visit http://www.apress.com/
source-code.
Printed on acid-free paper
I dedicate this book to the countless healthcare
professionals, first responders, and many unsung heroes of
this difficult time we face in the world during the COVID-19
crisis. It is my hope this book and others like it help the
millions of people pass the time during the crisis learning
more about science and technology.
Table of Contents
About the Author��������������������������������������������������������������������������������xv

About the Technical Reviewer����������������������������������������������������������xvii


Acknowledgments�����������������������������������������������������������������������������xix
Introduction���������������������������������������������������������������������������������������xxi

Chapter 1: Introduction to Sensor Networks����������������������������������������1


Anatomy of a Sensor Network������������������������������������������������������������������������������2
Examples of Sensor Networks�������������������������������������������������������������������������3
The Topology of a Sensor Network����������������������������������������������������������������12
Communication Media����������������������������������������������������������������������������������������14
Wired Networks���������������������������������������������������������������������������������������������14
Wireless Networks�����������������������������������������������������������������������������������������15
Hybrid Networks��������������������������������������������������������������������������������������������15
Types of Sensor Nodes����������������������������������������������������������������������������������������16
Basic Sensor Nodes���������������������������������������������������������������������������������������16
Data Nodes����������������������������������������������������������������������������������������������������16
Aggregator Nodes������������������������������������������������������������������������������������������17
Sensors���������������������������������������������������������������������������������������������������������������18
How Sensors Measure�����������������������������������������������������������������������������������20
Storing Sensor Data��������������������������������������������������������������������������������������26
Examples of Sensors�������������������������������������������������������������������������������������27
Summary������������������������������������������������������������������������������������������������������������34

v
Table of Contents

Chapter 2: Tiny Talking Modules: An Introduction to


XBee Wireless Modules����������������������������������������������������������������������35
What Is an XBee?������������������������������������������������������������������������������������������������36
XBee Primer��������������������������������������������������������������������������������������������������������37
Choosing XBee Modules��������������������������������������������������������������������������������38
Interacting with an XBee-ZB Module�������������������������������������������������������������42
Pin Layout������������������������������������������������������������������������������������������������������46
Configuring Modules�������������������������������������������������������������������������������������48
Introducing MicroPython�������������������������������������������������������������������������������������67
An XBee Wireless Chat Room������������������������������������������������������������������������������72
Loading the Firmware for the Modules���������������������������������������������������������72
Capturing Serial Numbers�����������������������������������������������������������������������������77
Configuring the Coordinator��������������������������������������������������������������������������79
Configuring the Router����������������������������������������������������������������������������������80
Let the Chat Begin�����������������������������������������������������������������������������������������80
For More Fun�������������������������������������������������������������������������������������������������82
Building an XBee-ZB Mesh Network�������������������������������������������������������������������84
Loading the Firmware for the Modules���������������������������������������������������������85
Configuring the XBee Modules����������������������������������������������������������������������85
Forming Test Messages���������������������������������������������������������������������������������86
Testing the Network��������������������������������������������������������������������������������������90
For More Fun�������������������������������������������������������������������������������������������������95
Component Shopping List�����������������������������������������������������������������������������������95
Troubleshooting Tips and Common Issues����������������������������������������������������������97
Things to Check���������������������������������������������������������������������������������������������98
Common Issues���������������������������������������������������������������������������������������������99
Summary����������������������������������������������������������������������������������������������������������101

vi
Table of Contents

Chapter 3: Programming in MicroPython�����������������������������������������103


MicroPython Features and Limitations�������������������������������������������������������������105
MicroPython Features���������������������������������������������������������������������������������105
MicroPython Limitations������������������������������������������������������������������������������106
Basic Concepts�������������������������������������������������������������������������������������������������107
Code Blocks�������������������������������������������������������������������������������������������������108
Comments���������������������������������������������������������������������������������������������������110
Arithmetic����������������������������������������������������������������������������������������������������111
Output to Screen������������������������������������������������������������������������������������������112
Variables and Data Types����������������������������������������������������������������������������������114
Variables������������������������������������������������������������������������������������������������������114
Types�����������������������������������������������������������������������������������������������������������116
Basic Data Structures���������������������������������������������������������������������������������������118
Lists�������������������������������������������������������������������������������������������������������������118
Tuples����������������������������������������������������������������������������������������������������������120
Dictionaries�������������������������������������������������������������������������������������������������121
Flow Control Statements�����������������������������������������������������������������������������������123
Conditional Statements�������������������������������������������������������������������������������123
Loops�����������������������������������������������������������������������������������������������������������125
Modularization: Modules, Functions, and Classes��������������������������������������������127
Including Modules���������������������������������������������������������������������������������������127
Functions�����������������������������������������������������������������������������������������������������128
Classes and Objects������������������������������������������������������������������������������������130
Object-Oriented Programming (OOP) Terminology��������������������������������������134
Summary����������������������������������������������������������������������������������������������������������141

vii
Table of Contents

Chapter 4: XBee-Based Sensor Nodes����������������������������������������������143


How to Host Sensors with XBee������������������������������������������������������������������������144
Building an XBee Environment Sensor��������������������������������������������������������������145
Hardware Setup�������������������������������������������������������������������������������������������146
XBee Hardware Option��������������������������������������������������������������������������������150
MicroPython Option�������������������������������������������������������������������������������������155
Example: Using XBee Modules to Gather Data��������������������������������������������������166
Hardware Setup�������������������������������������������������������������������������������������������168
Configuring the XBee Sensor Node�������������������������������������������������������������171
Programming the Sensor Node�������������������������������������������������������������������172
Testing the XBee Sensor Node��������������������������������������������������������������������186
Component Shopping List���������������������������������������������������������������������������������188
Summary����������������������������������������������������������������������������������������������������������191

Chapter 5: Raspberry Pi–Based Sensor Nodes���������������������������������193


What Is a Raspberry Pi?������������������������������������������������������������������������������������194
Noble Origins�����������������������������������������������������������������������������������������������196
Models���������������������������������������������������������������������������������������������������������198
A Tour of the Board��������������������������������������������������������������������������������������200
Required Accessories����������������������������������������������������������������������������������202
Recommended Accessories������������������������������������������������������������������������203
Raspberry Pi Tutorial�����������������������������������������������������������������������������������������207
Getting Started��������������������������������������������������������������������������������������������207
Installing a Boot Image��������������������������������������������������������������������������������208
Booting Up���������������������������������������������������������������������������������������������������213
GPIO Pin Mapping����������������������������������������������������������������������������������������217
Required Software���������������������������������������������������������������������������������������221
Project: Hardware “Hello, World!”����������������������������������������������������������������223

viii
Table of Contents

Hosting Sensors with Raspberry Pi�������������������������������������������������������������������230


Project: Building a Raspberry Temperature Sensor Node���������������������������������232
Hardware Setup�������������������������������������������������������������������������������������������232
Testing the Hardware����������������������������������������������������������������������������������234
Software Setup��������������������������������������������������������������������������������������������236
Testing the Sensor���������������������������������������������������������������������������������������242
For More Fun�����������������������������������������������������������������������������������������������243
Project: Building a Raspberry Barometric Pressure Sensor Node��������������������243
Hardware Setup�������������������������������������������������������������������������������������������245
Testing the Hardware����������������������������������������������������������������������������������245
Software Setup��������������������������������������������������������������������������������������������246
Testing the Sensor���������������������������������������������������������������������������������������251
For More Fun�����������������������������������������������������������������������������������������������251
Project: Creating a Raspberry Pi Data Collector for XBee Sensor Nodes����������252
XBee Sensor Node���������������������������������������������������������������������������������������252
Hardware�����������������������������������������������������������������������������������������������������254
Software������������������������������������������������������������������������������������������������������256
Testing the Final Project������������������������������������������������������������������������������264
For More Fun�����������������������������������������������������������������������������������������������265
Component Shopping List���������������������������������������������������������������������������������266
Summary����������������������������������������������������������������������������������������������������������268

Chapter 6: Arduino-Based Sensor Nodes�����������������������������������������269


What Is an Arduino?������������������������������������������������������������������������������������������269
Arduino Models��������������������������������������������������������������������������������������������271
Arduino Clones��������������������������������������������������������������������������������������������279
So, Which Do I Buy?�������������������������������������������������������������������������������������286
Where to Buy�����������������������������������������������������������������������������������������������287

ix
Table of Contents

Arduino Tutorial�������������������������������������������������������������������������������������������������288
Learning Resources�������������������������������������������������������������������������������������289
The Arduino IDE�������������������������������������������������������������������������������������������290
Project: Hardware “Hello, World!”����������������������������������������������������������������294
Hosting Sensors with Arduino���������������������������������������������������������������������������300
Project: Building an Arduino Temperature Sensor���������������������������������������������302
Hardware Setup�������������������������������������������������������������������������������������������302
Software Setup��������������������������������������������������������������������������������������������304
Writing the Sketch���������������������������������������������������������������������������������������306
Test Execution���������������������������������������������������������������������������������������������310
Project: Using an Arduino As a Data Collector for XBee Sensor Nodes�������������312
XBee Sensor Node���������������������������������������������������������������������������������������312
Coordinator Node�����������������������������������������������������������������������������������������313
Arduino with XBee Shield����������������������������������������������������������������������������314
Testing the Final Project������������������������������������������������������������������������������326
For More Fun�����������������������������������������������������������������������������������������������328
Component Shopping List���������������������������������������������������������������������������������328
Summary����������������������������������������������������������������������������������������������������������331

Chapter 7: Methods for Storing Sensor Data������������������������������������333


Storage Methods�����������������������������������������������������������������������������������������������334
Local Storage Options for the Arduino��������������������������������������������������������������336
Nonvolatile Memory������������������������������������������������������������������������������������336
SD Card��������������������������������������������������������������������������������������������������������337
Project: Saving Data in Nonvolatile Memory�����������������������������������������������338
Project: Writing Data to an SD Card�������������������������������������������������������������356

x
Table of Contents

Local Storage Options for the Raspberry Pi������������������������������������������������������372


Project: Writing Data to Files�����������������������������������������������������������������������373
Remote Storage Options�����������������������������������������������������������������������������������375
Storing Data in the Cloud�����������������������������������������������������������������������������377
Project: Writing Data to ThingSpeak with an Arduino����������������������������������386
Project: Writing Data to ThingSpeak with a Raspberry Pi����������������������������398
Storing Sensor Data in a Database��������������������������������������������������������������409
Component Shopping List���������������������������������������������������������������������������������409
Summary����������������������������������������������������������������������������������������������������������412

Chapter 8: Turning Your Raspberry Pi into a Database Server���������413


What Is MySQL?������������������������������������������������������������������������������������������������414
Getting Started with MySQL������������������������������������������������������������������������������420
What’s a Relational Database Management System?���������������������������������420
How and Where MySQL Stores Data������������������������������������������������������������422
The MySQL Configuration File���������������������������������������������������������������������428
How to Start, Stop, and Restart MySQL�������������������������������������������������������429
Creating Users and Granting Access�����������������������������������������������������������430
Building a Raspberry Pi MySQL Server�������������������������������������������������������������432
Partitioning and Formatting the Drive���������������������������������������������������������433
Setting Up Automatic Drive Mounting���������������������������������������������������������437
Project: Installing MySQL Server on a Raspberry Pi������������������������������������441
Advanced Project: Using MySQL Replication to Back Up
Your Sensor Data�����������������������������������������������������������������������������������������462
Component Shopping List���������������������������������������������������������������������������������472
Summary����������������������������������������������������������������������������������������������������������472

xi
Table of Contents

Chapter 9: MySQL and Arduino: United at Last!�������������������������������475


Introducing Connector/Arduino�������������������������������������������������������������������������476
Hardware Requirements������������������������������������������������������������������������������477
What About Memory?����������������������������������������������������������������������������������480
Installing MySQL Connector/Arduino�����������������������������������������������������������481
Limitations���������������������������������������������������������������������������������������������������482
Building Connector/Arduino-Enabled Sketches������������������������������������������������485
Database Setup�������������������������������������������������������������������������������������������485
Setting Up the Arduino���������������������������������������������������������������������������������488
Starting a New Sketch���������������������������������������������������������������������������������489
Testing the Sketch���������������������������������������������������������������������������������������496
What About the Ethernet Shield 2?��������������������������������������������������������������501
What About the WiFi Shield?�����������������������������������������������������������������������502
What About the WiFi 101 Shield?����������������������������������������������������������������503
Troubleshooting Connector/Arduino������������������������������������������������������������������504
MySQL Server Configuration�����������������������������������������������������������������������506
MySQL User Account Problems�������������������������������������������������������������������508
Networking Configuration����������������������������������������������������������������������������511
Connector Installation����������������������������������������������������������������������������������513
Others����������������������������������������������������������������������������������������������������������514
None of These Solved My Problem—What Next?���������������������������������������515
A Tour of the MySQL Connector/ Arduino Code�������������������������������������������������516
Library Files�������������������������������������������������������������������������������������������������516
Field Structure���������������������������������������������������������������������������������������������517
Public Methods��������������������������������������������������������������������������������������������518
Example Uses����������������������������������������������������������������������������������������������522

xii
Table of Contents

Project: Building a MySQL Arduino Client����������������������������������������������������������527


Hardware Setup�������������������������������������������������������������������������������������������527
Software Setup��������������������������������������������������������������������������������������������529
Setting Up the Sensor Database������������������������������������������������������������������531
Writing the Code������������������������������������������������������������������������������������������531
Test Execution���������������������������������������������������������������������������������������������538
For More Fun�����������������������������������������������������������������������������������������������540
Project Example: Inserting Data from Variables������������������������������������������������541
Project Example: How to Perform SELECT Queries�������������������������������������������544
Displaying a Result Set in the Serial Monitor����������������������������������������������545
Writing Your Own Display Method���������������������������������������������������������������546
Example: Getting a Lookup Value from the Database����������������������������������551
Component Shopping List���������������������������������������������������������������������������������554
Summary����������������������������������������������������������������������������������������������������������555

Chapter 10: Building Your Network: Arduino Wireless


Aggregator + Wireless Sensor Node + Raspberry Pi Server������������557
Data-Aggregate Nodes��������������������������������������������������������������������������������������558
Local-Storage Data Aggregator�������������������������������������������������������������������560
Project: Data-Aggregate Node with Local Storage��������������������������������������561
Remote-Storage Data Aggregator���������������������������������������������������������������594
Project: Arduino Data-Aggregate Node with Database Storage������������������595
Project: Raspberry Pi Data-Aggregate Node with Database Storage����������617
Component Shopping List���������������������������������������������������������������������������������635
Summary����������������������������������������������������������������������������������������������������������638

xiii
Table of Contents

Chapter 11: Putting It All Together���������������������������������������������������639


Sensor Networks Best Practices�����������������������������������������������������������������������639
Considerations for Data-Aggregate Nodes��������������������������������������������������639
Considerations for Sensor Network Databases�������������������������������������������645
Other Considerations�����������������������������������������������������������������������������������653
Choosing Sensor Nodes������������������������������������������������������������������������������������659
Wired or Wireless?���������������������������������������������������������������������������������������660
Arduino or Raspberry Pi?�����������������������������������������������������������������������������661
Alternative Hosts�����������������������������������������������������������������������������������������666
Project: Home Temperature-Monitoring Network���������������������������������������������673
Planning Considerations������������������������������������������������������������������������������674
Planning the Nodes�������������������������������������������������������������������������������������675
Cost Considerations�������������������������������������������������������������������������������������676
What About Implementation?����������������������������������������������������������������������679
Conclusion���������������������������������������������������������������������������������������������������679
For More Fun�����������������������������������������������������������������������������������������������680
Optional Component Shopping List�������������������������������������������������������������������680
Summary����������������������������������������������������������������������������������������������������������681

Appendix�������������������������������������������������������������������������������������������683
Consolidated Shopping Lists�����������������������������������������������������������������������������683
Alternative Connection Systems�����������������������������������������������������������������������691
Grove�����������������������������������������������������������������������������������������������������������������691
Qwiic�����������������������������������������������������������������������������������������������������������������695
STEMMA QT������������������������������������������������������������������������������������������������������700
Summary����������������������������������������������������������������������������������������������������������701

Index�������������������������������������������������������������������������������������������������703

xiv
About the Author
Charles Bell conducts research in emerging
technologies. He is a principal software
developer of the Oracle MySQL Development
team. He lives in a small town in rural Virginia
with his loving wife. He received his Doctor
of Philosophy in Engineering from Virginia
Commonwealth University in 2005.
Dr. Bell is an expert in the database field
and has extensive knowledge and experience in
software development and systems engineering.
His research interests include microcontrollers, three-dimensional printing,
database systems, software engineering, and sensor networks. He spends his
limited free time as a practicing maker focusing on microcontroller projects
and refinement of three-dimensional printers.

xv
About the Technical Reviewer
Sai Yamanoor is an embedded systems engineer working for an industrial
gases company in Buffalo, NY. His interests, deeply rooted in DIY and
open source hardware, include developing gadgets that aid behavior
modification. He has published two books with his brother, and in his
spare time, he likes to contribute to build things that improve quality of
life. You can find his project portfolio at http://saiyamanoor.com.

xvii
Acknowledgments
I would like to thank all of the many talented and energetic professionals
at Apress. I appreciate the understanding and patience of my managing
editor, Natalie Pao; coordinating editor, Jessica Vakili; and development
editor, James Markham. Each was instrumental in the success of this
project. I appreciate their encouragement and guidance as well as patience
in dealing with my many questions. I would also like to thank the small
army of publishing professionals at Apress for making me look so good in
print. Thank you all very much!
I’d like to especially thank the technical reviewer, Sai Yamanoor, for
his patience, insight, and impressive attention to detail. Most importantly,
I want to thank my wife, Annette, for her unending patience and
understanding during the many hours I spent hunched over my laptop or
conducting science experiments on the dining table.

xix
Introduction
The world of microcontrollers and increasingly capable and popular small
computing platforms is enabling many more people to learn, experience,
and complete projects that would previously have required dedicated (and
expensive) hardware. Rather than purchase a commercial or made-for-­
consumers kit, enterprising developers can now build their own solutions
to meet their needs. Sensor networks are just one example of how these
small, powerful, and inexpensive components have made it possible for
anyone with a moderate skill set to build their own sensor network.
This book presents a beginner’s guide to sensor networks. I cover topics
including what types of sensors exist, how they communicate their values
(observations or events), how they can be used in Arduino and Raspberry Pi
projects, and how to build your own home temperature sensor network.
I also include an introduction to the MySQL database server and how
you can connect to, store, and retrieve data. Why, I even show you how to
do it directly from an Arduino!
Better still, this edition has been updated to include updated tools
and software, project examples, as well as the latest use and programming
of the XBee 3 modules. Yes, we’re writing code to control them in
MicroPython. There’s an entire chapter dedicated to MicroPython as well
as extended coverage of the XBee platform.

Who This Book Is For


I have written this book with a wide variety of readers in mind. It is
intended for anyone who wants to get started building their own sensor
networks or those who want to learn how to use components, devices, and
sensors with an Arduino or Raspberry Pi.

xxi
Introduction

Whether you have already been working with sensor networks, or


maybe have taken an introductory electronics course, or even have read a
good Apress book on the Arduino or Raspberry Pi, you will get a lot out of
this book. Best of all, if you ever wanted to know how to combine sensors,
Arduinos, XBee, MySQL, and Raspberry Pi to form a cohesive solution, this
book is just what you need!
Most importantly, I wrote this book to meet my own needs. Although
there are some excellent books on Arduino, Raspberry Pi, sensors, and
MySQL, I could not find a single reference that showed how to put all of
these together. The second edition kicks it up yet another notch with more
coverage of these topics with the latest versions of the tools and libraries
available.

About the Projects


There are 11 chapters, 9 of which include projects that demonstrate and
teach key concepts of building sensor networks. Depending on your skill
level with the chapter topic, you may find some of the projects easier to
complete than others. It is my hope that you find the projects challenging
and enlightening (but, more importantly, informative) so that you can
complete your own sensor network projects.
In this section, I present some guidance on how best to succeed and
get the most out of the projects.

Strategies
I have tried to construct the projects so that the majority of readers can
accomplish them with little difficulty. If you encounter topics that you are
very familiar with, I recommend working through the projects anyway
instead of simply reading or skipping through the instructions. This is
because some of the later projects build on the earlier projects.

xxii
Introduction

On the other hand, if you encounter topics that you are unfamiliar
with, I recommend reading through the chapter or section completely at
least once before attempting the project. Take some time to fully absorb
the material, and pay particular attention to the numerous links, tips, and
cautionary portions. Some of those are pure gold for beginners.
Perhaps the most significant advice I can offer when approaching the
projects is to attempt them one at a time. By completing the projects one
at a time, you gain knowledge that you can build on for future projects.
It also helps you establish a pace to work through the book. Although
some accomplished readers can probably complete all the projects in a
weekend, I recommend working through the book at a pace best suited for
your availability (and enjoyment).
With some exceptions, the earlier chapters are independent and can be
tackled in any order. This is especially true for the Raspberry Pi (Chapter 5)
and Arduino (Chapter 6) chapters. Regardless, it is a good idea to read the
book and work on the projects in order.

Tips for Buying Hardware


The hardware list for this book contains a number of common components
such as temperature sensors, breadboards, jumper wires, and resistors.
Most of these items can be found in electronics stores that stock supplies
for electronics enthusiasts. The list also includes a number of specialized
components such as XBee modules, XBee adapters, XBee shields, Arduino
boards, and Raspberry Pi boards.
Each chapter has a list of the components used at the end of the
chapter. In some cases, you reuse the hardware from previous chapters. I
include a separate list for these items. I have placed the component lists
at the end of each chapter to encourage you to read the chapter before
attempting the projects.

xxiii
Introduction

The lists include the name of each component and at least one link
to an online vendor that stocks the component. In addition, I include the
quantity needed for the chapter and an estimated cost. If you add up all
the components needed and sum the estimated cost, the total may be a
significant investment for some readers.
The following sections are for anyone looking to save a little on the cost
of completing the projects in this book or wanting to build up their own
inventory of sensor network hardware on a budget.

Buy Only What You Need When You Need It


One way to mitigate a significant initial investment in hardware is to pace
your buying. If you follow previous advice and work on one project at a time,
you can purchase only the hardware needed for that project. This will allow
you to spread the cost over however long you plan to work through the book.
However, if you are buying your hardware from an online retailer,
you may want to balance ordering the hardware for one project at a time
against the potentially higher total shipping cost for multiple orders.
As mentioned, the more common electronics like LEDs, breadboards,
and so on can be found in traditional brick-and-mortar stores, but the cost
may be a little higher. Once again, the cost of shipping to your location may
dictate whether it would be cheaper to buy the higher-priced items from a
local electronics shop vs. an online retailer.

Online Auctions
One possible way to save money is to buy your components at a discount
on online auction sites. In many cases, the components are the very same
ones listed. In other cases, the components may be from vendors that
specialize in making less expensive alternatives. I have had a lot of success
in buying quality hardware from online auction sites (namely, eBay).

xxiv
Introduction

If you are not in a hurry and have time to wait for auctions to close
and the subsequent shipping times, you can sometimes find major
components like Arduinos, shields, power supplies, and the like at a
reduced price by bidding for them. For example, open source hardware
manufacturers sometimes offer their products via auctions or at special
pricing for quantities. I have found a number of Arduino clones and
shields at nearly half the cost of the same boards found on other sites or in
electronics stores.

Hey, Buddy, Can You Spare an Arduino?


Another possible way to save some money on the hardware is to
borrow it from your friends! If you have friends who are electronics,
Arduino, or Raspberry Pi enthusiasts, chances are they have many of
the components you need. Just be sure you return the components in
working order!1

A NOTE ABOUT NEWER ARDUINO BOARDS

The projects in this book are designed for a current, readily available
version of the Arduino as well as the most recently retired boards. The
projects can be completed with the Uno or Mega 2560 boards without
modification. Although you can use the Leonardo (see specific notes in the
chapters about the differences), you should consider the newer boards
carefully before buying.

1
 nd replace the components you implode, explode, or otherwise turn into silicon
A
slag. Hey, it happens.

xxv
Introduction

D
 ownloading the Code
The code for the examples shown in this book is available on the Apress
website, www.apress.com. A link can be found on the book’s information
page under the Source Code/Downloads tab. This tab is located
underneath the Related Titles section of the page.

R
 eporting Errata
Should you find a mistake in this book, please report it through the Errata
tab on the book’s page at www.apress.com. You will find any previously
confirmed errata in the same place.

xxvi
CHAPTER 1

Introduction
to Sensor Networks
Sensor networks are no longer expensive industrial constructs. You can
build a simple sensor network from easily procured, low-cost hardware.
All you need are some simple sensors and a microcontroller or computer
with input/output capabilities. Yes, your Arduino and Raspberry Pi are
ideal platforms for building sensor networks. If you’ve worked with either
platform and have ever wanted to monitor your garden pond, track
movement in your home or office, monitor the temperature in your house,
monitor the environment, or even build a low-cost security system, you’re
halfway there!
As inviting and easy as that sounds, don’t start warming up the
soldering iron just yet. There are a lot of things you need to know about
sensor networks. It’s not quite as simple as plugging things together and
turning them on. If you want to build a reliable and informative sensor
network, you need to know how such networks are constructed.
In addition, you may have heard of something called the Internet of
Things (IoT). This phrase refers to the use of devices that can communicate
over a network (local or Internet). IoT devices are therefore network-aware
devices that can send data to other resources, thereby virtualizing the
effects of the devices on users and their experience. Sensor networks play
a prominent role in the IoT. What you will learn in this book will provide a
firm foundation for building IoT solutions using sensor networks.

© Charles Bell 2020 1


C. Bell, Beginning Sensor Networks with XBee, Raspberry Pi, and Arduino,
https://doi.org/10.1007/978-1-4842-5796-8_1
Chapter 1 Introduction to Sensor Networks

If you want to know more about IoT in general, several books have
been written on the topic, including the following. If you’re interested in
learning more about the IoT and how sensor networks are used, check out
some of these titles:
• Building Internet of Things with the Arduino by
Charalampos Doukas (CreateSpace Independent
Publishing Platform, 2012)

• Architecting the Internet of Things by Dieter Uckelmann,


Mark Harrison, and Florian Michahelles (Springer,
2011)

• Getting Started with the Internet of Things: Connecting


Sensors and Microcontrollers to the Cloud by Cuno
Pfister (O’Reilly, 2011)

In this chapter, we will explore sensor networks through a brief


description of what they are and how they are constructed. We will also
examine the components that make up a sensor network including an
overview of sensors, the types of sensors available, and the things that they
can sense.

Anatomy of a Sensor Network


Sensor networks are everywhere. They’re normally thought of as
complicated monitoring systems for manufacturing and medical
applications. However, they aren’t always complicated, and they’re all
around you.
In this section, we will examine the building blocks of a sensor network
and how they’re connected (logically). First, let’s look at some examples of
sensor networks to visualize the components.

2
Chapter 1 Introduction to Sensor Networks

Examples of Sensor Networks


Although some of these examples may not be as familiar to you as others,
it’s a good idea as you read through these examples to try and imagine the
components of the application. Visualize the sensors themselves—where
they’re placed and what data they may be reading and sending to another
part of the network for processing and recording.

A
 utomotive
Almost every modern automobile has a network of sophisticated sensors
that monitor the performance of the engine and its subsystems. Some
cars have additional sensors for monitoring external air temperature, tire
pressure, and even proximity to objects and other vehicles. Newer vehicles
have a host of safety mechanisms including lane departure, obstacle
avoidance, auto braking, and more.1
If you take a late-model car in for service and get a chance to look in
the garage area, you may notice several machines that resemble computer
terminals, tablet computers, or in some cases an iPad. These systems
are diagnostic machines designed to connect to your car and read all the
data the sensors and computer have stored. Some manufacturers use the
industry standard interface called onboard diagnostics (OBD).2 There are
several versions of this interface and its protocols; most dealerships have
equipment that supports all the latest protocols.

1
I nterestingly, I have heard a few motorists who despise some of these features
because their driving habits place the vehicle more to one side of the road
or another, which triggers the lane departure warning. Similarly, those that
habitually cross the center line when driving on curving roads tend to turn off
the departure warning. Clearly one of these is an understandable annoyance,
whereas the other is exactly why the feature is needed.
2
http://en.wikipedia.org/wiki/On-board_diagnostics

3
Chapter 1 Introduction to Sensor Networks

However, some manufacturers use their own proprietary diagnostic


systems, but many use the same connector as OBD-II. You may want to
ask about this before purchasing a vehicle. If your new vehicle requires
proprietary electronic tools for maintenance, you may be required to take
it to a qualified mechanic or another dealer to get it serviced. For those
that live in rural areas, finding a dealership or even a trained mechanic
to work on your car may require some travel and therefore advanced
planning.
For example, Porsche uses what it calls Porsche Integrated Workshop
Information System (PIWIS). While PIWIS uses the same connector as
OBD-II, Porsche implemented a proprietary system to read and alter
the data. Only those mechanics who are trained (and who purchase) the
proprietary tools can service the vehicle.
Interestingly, while manufacturers that use proprietary diagnostic
systems require you to service your car at an authorized dealer, some
enterprising technologists have created compatible systems. In the case of
Porsche, Durametric (www.durametric.com/default.aspx) manufactures
a host of products that enable basic maintenance features like fault and
servicereminder reset and even advanced troubleshooting features
for many Porsche models. Figure 1-1 shows one of the screens of the
Durametric software reading the sensor data from a Porsche Cayman.

4
Chapter 1 Introduction to Sensor Networks

Figure 1-1. Porsche diagnostic data from Durametric

Notice the level of detail displayed. The image shows three metrics in
the trace, but if you look at the top of the screen, you will see many more
metrics that can be monitored. The data shown in the graph was gathered
in real time and displayed using the sophisticated sensor networks Porsche
employs.
The use of sensors in automobiles has begun to spill over into related
machinery such as motorcycles, boats, and even the venerable farm
tractor. Many modern farm machines such as combines have sophisticated
sensors that enable amazing capabilities such as auto header height, auto
pilot, and more.
For example, modern combines can be purchased with a suite of GPS-­
based tools that permit the operator to plot the boundaries of the harvest
field and calculate the best paths for minimal time and maximum harvest.
In the case where the harvest field is very large, the operator can practically

5
Chapter 1 Introduction to Sensor Networks

take a nap while the combine does the work.3 This is a far cry from older
combines that required manual adjustment of the header.

E nvironment
The environment is on many peoples’ minds, and many scientists are
actively monitoring it. Motives for monitoring the environment range
from checking a specific area or room for gases and tracking the area’s
temperature and humidity to monitoring and reporting anomalies
for sensitive equipment, such as running chemical analyses for clean
rooms. Examples of environment sensor networks include those used
to monitor air pollution, detect and track forest fires, detect landslides,
provide earthquake early warnings, and provide industrial and structural
monitoring.
Sensor networks are ideal for all forms of environmental monitoring.
Due to the sensors’ small size, low energy requirements, and low cost, they
can be easily installed at specific locations or on specific machines for
precise reporting. For example, a clean-room environment often requires
very precise temperature and humidity control as well as extremely
low levels of contaminants (loose particles floating in the air). Sensors
can be used to measure these observations at key locations (windows,
doors, air vents, and so on); the data is sent to a computer that records
it and generates threshold alerts. Most sophisticated clean rooms tie the
filtration, heat, and cooling systems into the same computer system (using
their own sensors) to control the environment based on the data collected
from the sensor network.

3
I t may be hard to imagine a 46,000-pound plus machine that resembles a
medieval torture device or a serial killer’s weapon being driven by a computer,
but it’s true. Some of the most expensive combines have more sophisticated
technology than your favorite sports sedan including air conditioning, cruise
control, and fully adjustable seats.

6
Another Random Scribd Document
with Unrelated Content
szeretettel tudakozódott hát napi munkája előtt: – Hogy vagy, kis
galambom? – de ezen kivül hagyta őt valóságos vadgalambnak.
Többször pedig a nagytiszteletü asszony már nem lephette meg,
mert az ő egyszerü, türő, szerető lelkét egészen odaadta kicsi kis
leányának, kinek bölcsője az ő koporsójának örök mozdulatlansága
mellett kezdett ringani. A professzor urat a dolgok e szomorú
változása mélyen megillette. Ebédjénél és vacsorájánál hosszu időn
keresztül némán ült és el-elmerengett Seneca vigasztaló igéin. –
Boldog ő, ki mindazokat már ismeri! – mondogatá magában a római
bölcscsel néma elmélkedései végén és a gyászfátyolt, melyet Örzse
asszony varrott kalapjára, évek során át ottfeledte.
A család e szerint tulajdonképen csak három tagból állott: a
professzorból, Mátyásból és Mariból. Negyediknek szokta számítani
magát Örzse asszony, ki úgy tudott a bibliához, akár csak egy pap,
és nagy tudományán kivül álmokat is látott, mint Jákob Hárán városa
alatt. Ide tartoztak még némileg azok a tanuló ifjak, kiket szülőik a
messzehirü paedagogus keze alá adtak szállásra, hogy faragjon
belőlük embereket. Ezek palotája a mályvarózsákkal körülültetett
kerti ház volt, honnan az urfiak nappal rendesen a kapun, éjjelenkint
pedig a kerítésen keresztül távoztak.
II. FEJEZET.
A bimbó fakad.

A kis Mari nőtt, nőtt, mint az ilyen anyátlan árvák szoktak, kiket
mosolytalanul öltöztetnek, egész nap magukra hagynak és
parancsszóra este megimádkoztatnak. Ki ne látott volna akárhányat
közülök? Hajuk borzas, fésüt ritkán lát, ruhájuk ráncza mindig le van
szakadva, czipőjük gyakran lyukas, nagyok elől a sutba bujnak,
gyermekek közt ők a legvakmerőbbek. Épen ilyen volt Mari. Több
dolgot adott Örzse asszonynak, mint az egész ház. A prédikátori
könyvet minduntalan félre kellett tennie a pápaszemmel együtt és
kitekinteni, vajjon nem törte-e még ki nyakát a kis borzas galamb.
Hasztalan rémítgette az Elizeust csufoló betheli rossz gyermekek
szörnyü sorsával, hiába emlegette a szorgalmas Márta csábító
példáját; az akaratos, vidám, féktelen kis madár csak akkor fogadott
szót az anyókának, mikor neki tetszett. Pedig ritkán tetszett. Örzse
asszony különösen nagy megbotránykozással vette észre, hogy
Marinak sem a doktorék Terkája, sem a vörös boltos Régije nem
kellenek, hanem mindig a fiuk között szaladgál, a kiknek csontja
pedig oly gonosz, a milyen csak valaha Rubené, Simeoné és
testvéreiké lehetett. Olyan éhesek a pénzre, hogy bizonyára ők is
eladnák Józsefet. A fönnebb említett kisasszonyokat, merev szemü,
sipogó, buta bábuikkal és kotyvasztó készülékeikkel együtt, Mari
mindjárt elzavarta, ha jöttek; hanem a kiabáló, lapdázó, verekedő
férfigyerekek közt elemében volt. És rokonszenve a deákok iránt
nem maradt viszonzatlan. A kerti ház csavargó lakóinak mindig
kitüntetett kegyencze volt. Kálozdy Béla, – erejénél, eszénél és
gazdagságánál fogva a kollégium bálványa, – nem tartotta
méltóságán alulinak el-elkötekedni a kis vadgalambbal; olykor még
fogócskára is vállalkozott s ilyenkor a szerencsés vadász mindig
csókot követelt áldozatától; de Mari akkorákat sikoltott, hogy Béla
tanácsosnak tartotta elbocsátani, mielőtt Örzse asszony fölemelt
ujjával, pápaszemével és bibliájával megjelennék a konyhaajtóban.
Egy pufók theologus – valami jó módu pap fia – legszivesebben a kis
Mari orra alá fujta pipája füstjét, erősen meg levén győződve róla,
hogy már ennél nagyobb nyájasságot nem tanusíthat iránta. Hát
még a mendikás Bihari Gida, ki az urfiak ruháit szokta tisztitani és a
nagytiszteletü úr könyveit utána hordani az iskolába! Milyen kész
gyönyörüséggel tisztogatta az apró kis czipellőket s ha olykor lyukat
talált rajtok, bárminő magasra tört s bármint gyűlölte apja
mesterségét, (az öreg csizmadia volt), a hajnali szürkületben neki ült
és úgy megfoltozta, hogy jobban sem kellett. Szellős köpönyegjében
és majdnem átlátszó czérna-nadrágjában csikorgó téli délutánokon
egész büszkeséggel tolta ki Marit kis szánkáján ereszkedni a gombai
töltésre. Ez apró szivességek folytán azonban határozott
reményeket táplált. Egy téli ereszkedő után, a mint örökké vigyorgó
arczával a konyhában üldögélt és gémberedett kezeit jókedvüen
melengette, egy párbeszéd folyamán, melybe Örzse asszony
meggondolatlanul keveredett, Gida gyerek határozottan
kinyilatkoztatta, hogy szeretné tudni, miért ne vehetné ő Marit
feleségül, majd annak idején, ha pap lesz? E haszontalan beszédre
Örzse azonnal megszüntette a diskurzust és közönyösen tovább
lapozott a mécs világánál bibliájában. A mendikás pedig olyan
jóizüen vigyorgott a jó meleg szurdikban, mintha a legjobb rendben
lenne szénája.
Ilyen környezetben bocsátkozott a kis Mari mindig lejebb és
lejebb abba a völgybe, melyben a legszebb és legtitkosabb virágok
nyilnak. Ő is megkapta a magáét. Egy nevenapján – talán a
tizennegyediken – szép bokrétát adott neki Kálozdy Béla. Az
ajándékot a lányka elfeledte ugyan megköszönni, de szép piros
üvegpohárban az asztalára állította. Ettől a naptól kezdve
rendesebben öltözködött; hanem hogy veleszületett gondatlanságát
nem volt képes teljesen levetkezni, azt eléggé bizonyítja, hogy az
ajándék-bokrétából egy rózsabimbót egész addig a hajában feledett,
mignem elhervadt.
Már az új névnap közelgett, mikor egy éjszaka tűz ütött ki a
városban. A deákok régi hirü tüzoltó csapata termett legkorábban a
veszedelem szinhelyén, közte Béla. Az éj hideg volt, a rémület nagy,
az ifju vér vakmerő. A szegény lakatosmester kis porontyát kihozta a
roskadozó gerendák közül, hanem aztán forró lázat kapott rá és
másnap éjjel már félrebeszélt. Az ijedelem nagy lett a háznál. A
professzor úr bizonyos diadallal emlegette, hogy ő mindenkor
határozott ellensége volt a tüzoltó komédiázásnak, mely utóvégre is
csak a kéményseprőknek való mulatság. Ugy látszik azonban, maga
is megrémült diadalának ama bekövetkezhető teljességétől, hogy
Béla bele is haljon a tüzoltó komédiába; és nyugtalankodó arczczal
futtatott el kollegájáért, dr. Barkóért, ki a természetrajzot tanította és
orvosi mellékes működésével – hála a fiatal természet
szivósságának – a deákok között jelentékenyebb pusztítást nem
okozott. Dr. Barkó, kinek különben a legjobb torka és melle volt a
világon, a betegágy előtt sokat köhécselt, szokása szerint egész
előadást tartott és keveset mondott. Miután azonban egész
határozottsággal állította, hogy Béla nincs normális állapotban, a
nagytiszteletü úr jónak találta nehány óvatos sorral tudósítani az
aggodalmas eseményről Kálozdy Benedek urat, a beteg nagybátyját.
Harmadnapra megérkezett a levél Kálozdról, melyben Pallér István
olvashatatlan fehér tintával és érthetetlenül czikornyás mondatokban
azt jelenti, hogy Benedek úr meg van döbbenve a váratlan
balesemény fölött, de miután köszvénye miatt karszékéből mozdulni
nem tud, legjobb akarata mellett sem látogathatja meg a beteget,
kinek hogylétéről azonban gyakori tudósítást óhajt. A tudósítások
megindultak; de nem voltak igen vigasztalók. Béla láza nem
csillapult s amint éj és nap váltakoztak ágya körül, úgy álltak
közelebb ahhoz hol az élet, hol a halál. Dr. Barkó úr még mindig nem
tartotta az állapotot normálisnak, a mi abból is kitetszett, hogy
naponkint oly hosszú reczepteket irt, mint valami hősköltemény. A
szegény beteg sokat volt egyedül a kerti lak egy kis szobájában. A
pipás theologus, Mátyással meg a többi deákkal másik szobába
huzódott; a nagytiszteletü úr nem igen mozdult ki várából. Mikor
Örzsének más dolga nem volt, az csak be-benézett; de nem igen
lehetett jó mulattató, mert e fiatal, minden földi és lelki jóval
megáldott s csak egy vihartól fenyegetett életnek mindig az ó-
testamentomi Jób történetét mesélte vigasztaló példának, mely az ő
bajánál mindenesetre nagyobb volt, miután Jóbnak mezitelenül,
hamuban ülve, éles cseréppel kellett dörzsölnie sebeit.
Egy este – a kert bokrai már szövetkeztek az esti szürkülettel,
hogy jól elrejtsék a közöttük bolyongót, – félénken leskelődött Mari a
beteg szobájának ablaka alatt. Nevenapja volt. Tavaly ilyenkor tüzte
hajába a rózsabimbót. Hiába keresett nyilást. Magának csak azt
vallotta meg, hogy a szobába szeretne látni, pedig a jövendőbe
szeretett volna látni. Nem látott semmit. A homály már elfoglalta a
szobát s a mint a lemenő napnak egy pár sugara csillogott az
ablaküvegen, ez mitsem árulhatott el a belső, szomorú képből. A
leány megindult az ajtó felé, meg visszatért. Kezeivel izgatottan
gyűrte ruhája fodrát és sebes lélegzeteket szedve, pillanatokra el-
elbámult a kert alatt folyó Duna nyugodt tükrére. Egyszer-kétszer föl
és lejárt, mignem gyors elhatározással, de csöndes lépésekkel benn
termett a szobában. Az ajtónyitás zajára összerezzent és egy
perczre vissza akart térni. De már benn volt.
– Béla – suttogta az ajtóban – nem jól esnék, ha én adnám be az
orvosságot?
A beteg nem hallotta. Talán Mari maga sem; csak képzelte, hogy
mondta. A felelet csak a csend volt, a magány, az elhagyatottság.
Ezek azt mondták, hogy: jól esnék. Mari megértette és lábujjhegyen
az ágyhoz lépett. Béla ott feküdt egy új, eldöntetlen pör tárgyául a
két örök viaskodó között. Ereje megcsufolva, elméjéből játék űzve,
gazdagsága tehetetlen. Mi segít hát rajta? E sáppadt, beesett arczra
az este már oly mély árnyakat vetett, mintha az egész ifju élet az
árnyékok birodalmáé lenne. Ki tartja vissza? Keze, vékony, átlátszó,
eres keze lecsüng az ágy oldalán, mintha már készülne le, le. Ki
emeli föl? Semmi nesz nem volt a szobában a beteg hullámzó
melléből fölszakadó, hörgő lélegzésen és egy vén óra egyhangu
ketyegésén kivül. A kis Mari meg-megreszketett az ágy lábánál.
Látta, hallotta és érezte a jeleket. Soká szinte mozdulatlan, mereven
állt, arcza kipirult, szemei ragyogni kezdtek és elrévedeztek a
homályban. Nem tudta, mit tesz, csak azt érezte, hogy van oka e
kinlódásra. Kuszált tekintete végre megállapodott a beteg arczán.
Szemei elvesztették lázas világukat, nedvesedtek és két tiszta
könycseppel tették nehezebbé a mennyei mérleg jobbik serpenyőjét.
A két könycsepp meg-megakadva futotta végig fényes utját a két kis
rózsás arczon és a beteg párnáján pihent meg. Marinak nem jutott
eszébe többé körülnézni, ha nem látja-e meg valaki? A két fényes
csepp megmutatta neki az utat, melyet szivének ismeretlen vágyai
heves dobogással kerestek. Lehajlott. Megcsókolta Béla izzó
homlokát. A beteg csöndesen fölnyitotta szemeit. Párnáján lágy és
sötét fürtök omlottak szét s két kis remegő kéz kulcsolta egymásba
ujjait. Ki ez a tünemény? Bizonyára angyal, ki azért küldetett, hogy őt
a menybe vezesse. Szeretné látni arczát és lecsukta szemeit, hogy
háborítatlanul álmodhassék tovább. Mikor újra föltekintett, a fekete
fürtök és imádkozó kis kezek már nem voltak sehol. A szoba sötét
volt. A jelenés eltünt. Az ablakon repült-e ki, vagy a menyezeten
emelkedett föl? Mindegy. Csakhogy itt volt. Béla soká-soká, betegen
és lábadozva, ébren és álmában, éjjel és nappal, pihentében és
munkája közt, jó perczeiben és rossz óráiban úgy érezte, mintha az
angyal csakugyan eljött volna és itt lenne és itt maradna, hogy őt a
menyországba vezesse. Karosszékéből, mely betegágyát felváltotta
s melyen a kis kerti ablak mellett szokott üldögélni – halaványan és
gyöngén – sokszor követte merengő figyelemmel egy kis rózsaszin
szoknya tünő suhanásait.
Mari meg-megreszketett az ágy lábánál.

A mint lehetséges volt, haza vitték üdülni Kálozdra. Dr. Barkó


bevallotta, hogy nem volt gyerekség a dolog. Örzse asszony pedig
még most is a fejét rázta és azt állította, hogy a földi szemek
csalnak, mert a Jairus házánál esett csoda már régen történt.
Hosszu ideig maradt otthon. Majd egy évig. Mig oda volt, sok
megváltozott Dunaszögön. Mari, ki az utóbbi időkben egy kissé
megcsöndesedett, (úgy hogy most már határozottan Mátyás urfi
elkeseredett kifakadásai csinálták a legnagyobb lármát a háznál,
nem az ő víg nevetkérezése) egy reggel halkan, talán lábujjhegyen
és kissé remegve belépett a várlakba, a por, pókok és hideg e
titokteljes birodalmába. A nagytiszteletü úr, ki épen Faludi Nemes
urfi-jától kért bölcs tanácsokat a kerti ház jobb módu kvártélyosainak
nevelésére nézve, csak akkor vette észre, mikor a kis galamb
hátulról már befödte nyakát fehér szárnyaival, arczát pedig
elárasztotta piros szája csókjaival, melyekből nem egy jutott
szemüvegének is és kijelentette, hogy neki egy igen, de igen nagy
kérése van, olyan nagy, hogy szinte el sem meri mondani. Az pedig
baj, mert a professzor úr meg van győződve arról, hogy néma
gyereknek anyja sem érti szavát, az apja még kevésbbé. Hanem
bizony maga is látja, hogy ez a szoknyácska már viseltes; új kellene
úgy-e? Nem, nem. Egészen más! A kis Mari szégyenli magát, hogy
semmit sem tanult, semmit sem tud és azért esedezik, hogy ha
tudós atyja szereti őt, juttasson neki is valamit nagy tudománya
morzsáiból. Tanítsa valamire. Az öreg úr szinte visszahökkent e
szavakra és csak rövid vártatva tért magához. Hanem akkor egy
szokatlanul édes, szivbeli mosoly kerítette hatalmába sárgás,
derültségében örökké egyhangu arczát. Nem ment egykönnyen, a
ránczokat csak ügygyel-bajjal lehetett neki kimozdítani szokott
helyükből; de végre mégis csak kimozdultak és Gábor úr szivéből
mosolygott. Még igen keveset tette életében. Megsimogatta leánya
kipirult arczát és letette csontba foglalt pápaszemét, hogy jobban
lássa. Hosszuszáru pipáját csöndesen odatámasztotta iróasztala
lábához. A kudarcz sokszoros keserüsége, mely két fia esetén lelkét
betöltötte, s elvette kedvét tőle, hogy leányával a harmadiknak
nézzen eléje: rég megenyhült, elcsitult, elhalt és ha e perczben
megkérdezték volna: vajjon miért feledkezett meg leányáról?
bizonyára nem jutott volna eszébe Márton professzor hires
paedagogiai tétele, melylyel Mari bölcsőjét kirekesztette a várlakból.
Az elfeledett gyermek azonban fel van fedezve. Nem ő fedezte
ugyan fel, hanem maga jelentette magát, hogy szeretne az övé
lenni; de azért mégis csak az övé lesz. Megajándékoztatott egy
földdel, melyben szántóvető munkája vénségére örömöket fog
teremni. Ime, a gondviselés bármi keserü serleg fenekén rejteget
egy édes csöppet! Tanítalak leányom, tanítalak; csak ülj le ide
mellém, vagy a térdemre! A boldog öreg föltette szemüvegét; de ez
csakhamar elhomályosodott. Az első leczke másnapra maradt.
– Hogy vagy kis galambom? – Ez a reggeli beköszöntő, ezentúl
azt is jelentette: Jöhetsz, jőjj velem. Mari ment és leült a
bevehetetlen erősségnek valamelyik hatalmas bástyájára. A
mogorva szobába mintha napsugár hatolt volna be; minden
vidámabbnak tetszett. A várnak már volt várkisasszonya. A
könyvóriások eleinte ugyan elzárkóztak előle porfátylaikba; de utóbb
már szivesen látták. Egynehánynyal közülök meg éppen benső
barátságot kötött. Képes könyvek voltak és költők. Ezek közül
keveset értett ugyan, mert az ittlevők nemcsak maguk és ideáljaik,
melyekért lelkesedtek, hanem nyelvök is holtak valának. És a sirok
kulcsát csak tudós emberek birták. Az öreg Hajós Gábor tudós
ember volt s kész örömmel forgatta meg rozsdás zárában a kulcsot,
hogy a kis leány lelke elé felidézze a multakat. És a mint
tüneményes világításban elvonultak szemeik előtt az Átváltozások
tünde képei, földiek és égiek tarka serege, szerelmesek, jók és
hatalmasok végtelen sora, a csókok és varázslatok
megfoghatatlanságai; a mint elrebegte előttük a bucsuzó feleség
halhatatlan szavait halálba induló urának és a legdicsőségesebb
város lángjai felcsaptak körülöttük; a mint a szerető testvér a maga
romlásával váltotta meg embertől elátkozott bátyjának sirját; a mint a
tenger végetlen morajában a tündérek éneke és a vadak ordítása
után hallgatóztak; a mint a hű feleség szövésének éjente felbontott
szálait figyelték; a mint a habokból felbukkanó delfinekkel lesték a
lant csodahangjait; a mint az emberi májjal táplálkozó saskeselyü
hóhér-munkájától iszonyodtak; a mint otthonosak lettek az istenek
fényes gyülekezetében és a királyi palotáknak szörnyü átkoktól
viszhangos csarnokaiban; a mint elmerültek a pásztorórák idylli
képeibe Chloeval, Phillis-szel, Daphne-vel, Lidiával: világossá lett
előttük, hogy sem a költők, sem ideáljaik nem halottak. Csodálatos
tanítás volt ez, melyet minden valamire való paedagogus teljes
lelkéből lenézett volna. Az öreg örömében egyszerre elfeledkezett
minden rendszerről, Comenius bölcsességéről és Pestalozzi
tapintatáról. Csupa összevisszásság volt a mit beszélt és leánya
figyelmét, érdeklődését, óhajtását, szeszélyét kivéve, semmi sem
vezérelte. Eleinte akadozott és alig tudta, mihez fogjon. Zavartan
dörzsölgette ránczos homlokát és ritka, kusza, szürke haját. Hanem
csakhamar sok segítsége jött: Marinak merőn rászegzett két szép
szeme, nyitva-nyitva feledett ajka, a várfalakon nyugodtan dolgozó
pókok, a legfényesebb utat mutató napsugár, a kitárt ablak, a virágos
kert, a csillagos ég. A magyarázatra váró csodák minden felől
seregestől tolultak eléjök. A nap és az ég, a föld és az emberek mind
ismeretlenek voltak a gyermek előtt, ki eddig maga volt a vidámság.
Maradjon ezután is az! A jó öreg szive tele volt isteni félelemmel és
emberszeretettel. Az ő tudománya csak vigasztalt. A várterem
bizonyosan több kaczajt hallott, mint a mennyi könnyet látott.
Gondtalan, szivből jövő, élénk, csengő kaczagást, – mint mikor a
jókedv ezüst hangu poharakat koczint össze – melybe megesett,
hogy egy mélyebb, szárazabb nevető hang is belevegyült. A
vigasztalhatatlan Calipso meséjét kétszer mondatta el magának a
kis leány és kétszer kaczagta ki. Különben csöndesen ült bástyáján
és karjára nyugtatott állal figyelt atyjára. Az öreg csak beszélt-
beszélt s néha maga sem tudta miért, hogyan, csak elkezdte
simogatni a hollófekete fürtöket, két tenyere közé fogta Mari rózsás
arczát és a leczke végin meg is csókolta kis tanitványát. A vár pedig
oly vidám, boldog és dicsőséges volt, mintha valami diadalmas
hadsereg tartotta volna benne győzelmi ünnepeit.
Végre megérkezett Béla. A napját tudták jó előre és mindenki
várta a háznál. Örzse asszony ama bizonyos reggel minden
perczben az utczaajtóban volt, hogy – ha már bethaniabeli illatos
olajjal nem szolgálhat – mikor dobja a tüzhelyre a fris lángost, mely
Béla urfinak kedvencz étele. Matyi a bizonyosan telten érkező
erszényből egy kis kölcsönre számolt, a mi jelen, sorsüldözte
helyzetében bizony nagyon elkelt volna nála. Bihari Gida, ki
mendikásból már nagy deák lett és ezelőtt nehány nappal tért haza
szuplikánsi világjárásából, erőnek erejével mindjárt az első
pillanatban szemébe akarta tüntetni Bélának a nagy változást,
melyen keresztülment, s két nap, két éjjel nem vette ki szájából
immár jogos pipáját, hogy valamiképen pipa nélkül ne találtassék.
Csak Mari nem készült semmire. A mondott reggelen be is robogott
a várt kocsi, egy régi módi, rázós jármű-óriás, és Béla nem a legjobb
szinben s nem a legjobb kedvvel ugrott ki belőle. A várakozók
mindnyáját köszöntötte, kissé szórakozottan, de azért láthatólag
szivesen. A professzor úr legderekabb növendékének, ki mindig
büszkesége volt, sok örvendező szó kiséretében veregette vállát és
nem véve figyelembe a rendesen megadott feleleteket, tizszer is
megkérdezte egymásután: – Hogy vagy fiam, hát hogy vagy fiam?
Gida olyan füstfelhőket bocsátgatott körülötte, mintha csak
kéményből jöttek volna. Mátyás deák is elmondta legalább a
bevezetést, hogy ilyen sanyaru időket, mint mostanában, mióta az
eszét tudja, nem élt. A Griff tele van spillerrel. Örzse asszony már
kétszer is künn járt az udvaron, hogy a lángos már olyan piros, akár
a rózsa; hanem Béla még mindig izgatottan tekintgetett körül, mintha
keresne valakit. Hol van Mari, vagy akarja mondani: Mari
kisasszony? Ha Bihari Gedeon úr mérséklettel dohányzik és átlátszó
füstöt ereget, láthatta volna Béla, minő mély és rögtöni pirosság
borítja el durva, ragyás arczát és minő eleven fény szökik apró,
sárga szemeibe. De ő nem dohányzott mérséklettel s igy csak a
szavát lehetett hallani, (az övéhez hasonló bassus a legsürübb
füstfelhőn is képes áttörni) melylyel a sürgető kérdésre válaszolt:
– Épen most láttam a kertben a kisasszonyt. Szedi föl a virágait.
Segíteni is akartam neki, hanem elküldött.
– Mari, Mari! Ugyan merre vagy? – kiáltott a nagytiszteletü úr, de
mintha csak a pusztában kiáltott volna. Nem jött felelet. – Ejnye,
ejnye, töprenkedett az öreg úr, ma sem jött leczkére a szobámba.
Hallja Örzse…
Béla közbevágott, hogy ugyan illenék is miatta elzavarni a
dolgától; majd fölkeresi ő. És megindúlt a kert felé. Siető léptekkel,
szembetünő türelmetlenséggel haladt végig a megpirkadt levelü
egres- és ribizke-sor közt és izgalmasan, kutatva nézett körül a nagy
szederfa alatt. Az őszi reggel aranyos köde mindent eltakart előle.
Tovább sietett. Mikor végre a földre hajlott leányt megpillantotta,
egyszerre megállt s aztán csak tétova, lassu járással közeledett
feléje. Ugy látszott, mintha Mari, munkája közben nem vette volna
észre a közeledőt, mig ez, mögötte állva, meg nem szólítja:
– Mari kisasszony, jó reggelt!
A köszöntés hangja nem volt kitörő. Béla egész jöttében volt
valami szomoru, mely üdvözlése hangját is megtompította. A lányka
azonban, ennek ellenére, ijedten kapta föl fejét és tekintett hátra. De
arcza borongása egy pillanat alatt kiderült. Vannak őszszel napok,
mikor minden borus és mégis világos; nem látunk az égen felhőt, de
napot sem; a lég olykor meg-megcsillan, de a fény és árny ellentéte
nem létezik. Az érthetetlen sulyosan nehezkedik kedélyünkre, mikor
egy percz alatt kitisztul minden és tündöklő verőfény tágítja messze
látásunk határait. A percz megérkezett és Mari arcza sugárzott.
Milyen csodálatos változás rajta egyetlen egy év alatt! Nem volt
szebb, mint előbb: ugyanaz az ezüstbe csillanó sötét haj, ugyanazok
a vídám, barna szemek; csak egy kissé tökéletesebb termet, teltebb
idomok és csinosabb öltözet. És mégis, minő más e leány ma, mint
a gyermek volt akkor! Csupa báj és csáb. Ime, szemei nemcsak
beszélni tudnak, hanem titkolózni is. Ajka már nemcsak kaczagni
tud, hanem mosolyogni is. Szép homlokán a gondtalanság játszi
tündére helyett az ártatlanság fátyolos szelleme lakik.
– Jó reggelt, jó reggelt, Béla – mondá. De régen is hallottam ezt
öntől.
– Pedig minden reggel elmondtam.
Csak ekkor fogtak kezet. Egyik sem mélyedt bele a másik
tekintetébe. A lányka szemei ágról bokorra, madárra siklottak,
kémleni, vajjon részt vesznek-e mindezek örömében? Béla nem
tudta leküzdeni zavarát. Hanem kezeik egymásban maradtak.
Egyszer csak megszólalt Mari meglepett, szinte ijedős hangon. Ez a
hang meggondolásunkat mindig meg szokta előzni.
– Minő gyűrüt hozott hazulról?
Nem lehetett titkolni. Mintha valamennyi sugár oda gyült volna
csillogtatni a kis aranykarikát. A megtámadott nem felelt rögtön s
később is csak akadozva:
– Anyám gyűrüje volt. Bencze bátyámtól kaptam. – És sötét,
olajszin arczát szégyenletes láng borította el. Hazudott.
– Ejnye, Kálozdy úr, de megköszöntem volna egy kis jó kálozdi
szüz dohányt, ha megemlékezett volna rólam! – Okosabban nem
tudta magát Bihari Gedeon észrevétetni a két elmélyedt
szerelmessel. A bassushangnak ilyenkor jó hatása szokott lenni a
merengők magukhoztérítésében.
Nehány percz mulva Mari kezeit megint virágai foglalták el s Gida
minden erejéből igyekezett kicsiny, vágyott kezére járni. Béla egy
fűzfavesszőt suhogtatva, a kertből kifelé indult.
Aznap délben az a csoda történt, hogy Mari senkit sem
nevettetett meg. Szokatlanul szórakozott volt s csak akkor látszott
egy kissé összeszedni magát, mikor a zsörtölődő öreg urat kellett
csillapítani, ki épen nem találta rendén valónak, hogy az ő kis
beczéje, Mátyás, sohasem tudja éjtszaka kialudni magát, hanem
mindig az ebédidőt használja éjtszakának. Talán itthon sem volt az
éjjel? Dehogy nem, dehogy nem; ugyan hol lett volna?! Mari méla
hangulata hamar véget ért. Az igaz, hogy az a nyugodt derültség,
melylyel oktató atyja szavaira figyelt, nem igen tért meg többé hozzá;
hanem kedve ellen azért nem lehetett senkinek semmi kifogása.
Nyugtalanabb volt valamivel az egykorinál, de ép olyan vig. Mint a
fecske, mely káprázatosan sebes suhanással, vigan füttyögve
kering. Arcza gyakran élénkebben ki volt hevülve s tán csak ez hozta
tévedésbe azokat, kik valami árnyat akartak látni rajta. Igaz, a
bástyafokról nem szegezte többé oly élénk figyelemmel szemeit
atyjára s olykor arczát kezeibe hajtva és rejtve hallgatott, néha még
akkor is, mikor már rég nem volt mit hallania. A nagytiszteletü úr
csak paedagogus volt és nem lélekbuvár; nem csoda, ha a csekély
változást nem vette észre leányán boldogságában, melylyel valaha
alig sejtett mértékben volt tele. Rideg magányában társra talált.
Korábban nem érezte ugyan hiányát; de a nem-tudónak csak vágya
nincs, szerencséje lehet. Várta-e a remete egyedüliségében az
angyalt? Csak megjelent előtte és betöltötte lelkét imádattal mind
halálig.
A szegény öreg csak véletlenül jutott el a tűzhely mellé, melynél
a boldog emberek melegszenek. A sziv igaz osztályáról nem igen
volt fogalma. Feleségének megpróbált eleinte mesélgetni; de a jó
asszony csakhamar elálmosodott rajta, vagy minduntalan kifutkosott
a konyhába. Fiai megszöktek keze alól. Mindennap tudakozódott
utánuk, megsimogatta hajukat s néha még azét is meg akarta, a
kinek feje körül vészthordó golyók röpködtek. De csak annyi volt az
egész; Mari lett mindene, a többi kivül állt a mindenen. A
háromszöget, melyet maga körül vont, egyedül Mari lépte át s ezzel
nem vége volt a bűvöletnek, hanem kezdődött az. Lelkének új,
ismeretlen felét fedezte föl, mikor leányát abba a világba vezette,
mely tulajdonképen az övé volt. Csak az előcsarnokba vitte ugyan,
hol semmi örvény, semmi homály, semmi téveteg nincs, csupán
virágillat, fény és harmónia; de azért mégis egy uton jártak.
Mennyivel szebb volt itt minden, mióta ketten vannak! Nem, az öreg
boldogabb és tudósabb volt, semhogy aprólékos változásokra
ügyelhessen. A mi beköszöntött, azt ugyis a kor hozta magával. Mari
már felnőtt, nagy leány, ki ha utczára megy, észreveheti, mint bujik
elő egyik sarokból is, másikból is egy-egy legényfej, melynek
forrongó terveiben ő szerepet játszik. Most már van kivel
kaczérkodjék, hát kaczérkodik.
Ime, minő szépen mosolyog Béla ablaka alatt a világlátott
mendikásra, ki az ő éber felügyelete alatt nagy buzgalommal
kötözgeti be zsuppal a drágalátos szép hónapos rózsákat.
– Gida ur, – szólt a lány – hallom, hogy már ez az utolsó
esztendő. Innen-onnan elhágy bennünket?
A mendikás egyet harapott e szavakra pipája csutoráján, egyet
csavarintott a keze alatt bánkódó rózsatőn és megpihent.
– Utolsónak, – mondá – még nem utolsó, könyörgöm alássan.
Csak rektóriára megyek ki, hogy egy kis pénzecskét szerezhessek
az előmenetelre. Mert már csak a papságig nem igen szeretnék
megállapodni. Hiszen már most annyi, mintha az lennék.
Visszajövök én még, könyörgöm alássan, visszajövök én még.
– Hozza isten, Gida úr.
A mendikás apró szemei felcsillantak ezekre a szíves szavakra s
a csutorának rettenetes kínszenvedése közt eképen folytatta:
– Tettem én már messzebb utat is, mint Gadócz, a hova
készülök. Sok földet bejártam szuplikáns koromban, mégis csak
visszajöttem. Pedig a bivalyosi pap kisebbik leánya ugyancsak
marasztott, hogy maradjak ott helyben rektornak. Nem én,
könyörgöm alássan, visszajöttem. Meg a Csapóföldön az a nótárius-
leány sem volt utolsó. Nem én, mondok, visszamegyek még
Dunaszögre. Akárhová vet engem a sors, már csak pap koromban
majd visszajövök én ide. Már annyi, mintha itt lennék. Különösen ha
jó eklézsiám lesz, könyörgöm alássan.
A csutora pokoli kínokat állt ki.
– Hát még ha tudnám, – nyögi odább – hogy nem hiába jövök!
Mari azonnal kész volt az ingerkedésre:
– Nem hiába? Hát ugyan miért jönne hiába?
– Ezt jó tudnom, könyörgöm alássan. Mert az én szavam az
olyan, mint a szentírás. Pap lesz belőlem, nem illik hozzám a
tréfaszó. Annak a bivalyosi kisasszonynak is (pedig nem volt utolsó!)
megmondtam egyszerre, hogy: nem és ezzel vége volt. Azért jó
tudnom, a mit mondott, Mari kisasszony. Hát ide merné-e adni a
kezét?
– Miért ne? Ha ilyen jó segítségemre lesz, mindig megkapja.
Megérdemli.
Ott van a! Az ujdonatúj, pompás kis selmeczi pipa romjaiban
hever a földön. Béla pedig úgy bele van mélyedve egy könyvbe
odabenn az ablaknál, hogy az egész beszélgetésből bizonyára nem
hallott egy hangot sem. E nap estéjén Gida – mindenki végetlen
ámulására – Mátyás urnak, Mari korhely bátyjának, a Griffben egy
itcze neszmélyit fizetett. Magának már nem telt.
III. FEJEZET.
A mendikás éleslátása.

Beköszöntött a tél és vele a téli mulatságok. A törvénytudomány


csarnokai csak imént nyiltak meg Dunaszögön, leszedetvén a lakat
az igazság iskolájáról, melyet a kényuralom hatalma vert rá és tartott
rajta álló tizenkét esztendeig. Mintha ifjainknak nem lenne égető
szükségük protestáns jogtudományra s a jogi fakultás tanári karát
képező Birkás Péter és Mihály Ferencz uraknak, kiknek nem igen
akart menni az ügyvédségük, nem lenne még nagyobb szükségük
egy szerény ugyan, de biztos jövedelmű állásra! Szóval Dunaszögön
is kihajtott a magyar tanulóság legdíszesebb virága s mindenki
elismerte, hogy a kis város társaséletét Werbőczy beköltözött unokái
egészen fölelevenítették. Itt is táncz volt, ott is mulatság s
valamennyinek Mari a királynéja, ki e közben egy kissé el is
hanyagolta a reggeli leczkéket. Mindez apró mulatozások azonban
csak halavány előkészületek voltak a diákok ama fényes
tánczvigalmához, melyre a Griff vendégfogadó nagy terme
szappannal három izben bedörzsöltetett és nemzeti szinű zászlókkal
s czifra papirosokból kivagdalt füzérekkel pompásan fölékesíttetett.
A rendezés oroszlánrésze természetesen Themis papnövendékeié,
s ezek között Béláé volt, kinek mind a leányok, mind a tanuló ifjuság,
mind pedig a czigányok előtt legnagyobb vala a becsülete. A
nagytiszteletű úrnál öt tagú küldöttség jelent meg, melynek szónoka,
Bige Géza, (ki sohasem tudta a leczkéjét, hanem költeményeket írt
az ujságokba) ékes szavakkal adta elő, hogy valamint egy
bokrétából a rózsának hiányoznia sohasem szabad, azonképen
méltóztassék az ifjúság közkivánatára a professzor úrnak kegyesen
megengedni, hogy Mari kisasszony boldogító jelenléte a tervezett
tánczvigalom fényes sikerét biztosítsa. Mari az ajtóban hallgatózott
kívül s így épen kéznél volt, hogy az öreg úr összecsókolja és poros
könyveinek lapjai közül előkeresgélje neki, illetőleg Klári néninek a
mulatságra megkivántató banknótákat. A néni felügyelete alatt folyt a
szabás, varrás egész a bál napjáig. Bizonyára nincs senki, a ki ne
vett volna valaha részt egy ilyen kisvárosi bálban, melyben rendesen
igen sok az izléstelenség, de igen kevés az ásítozás. Nem is
eresztem fel hosszú lére, csak azt akarom megemlíteni, hogy Mari a
bál napjának reggelén két szép bokrétát kapott, két ismeretlen
lovagtól. Az egyiket – csupa gyönyörű kamélia, izléses selyem
tölcsérben – Kohn divatkereskedő rüpők inasa hozta, ki semminemű
biztatásokkal sem volt a megrendelő nevének kivallására birható. A
másikat ablakában találta Mari. A szivárvány minden színeiből, nem
épen drága virágokból, nagy jóakarattal volt összekötözve s hosszan
lógott le róla egy piros szalag. Az utóbbi Klári néninek jutott, míg a
kamélia-csokor általános hatást tett Mari kezében. A piros szalagnak
senki bámulója nem akadt, kivéve Bihari Gedeont, ki többször
szemügyre vette és nehány félénk megjegyzést koczkáztatott
érdekében. Klári néni szíves mosolylyal fogadta.
Mari pedig ezalatt röpült, röpült, mint a tarka szárnyú pillangó.
Hol Bige Géza karján, hol másén, hol fáradtan lihegve, hol neki
hevülve, hol andalogva, hol kaczéran, hol suhanva, hol lebbenve,
hogy Béla tekintete egészen utána veszett. Ugyan mit akar vele az
az ügyetlen mendikás? Igazi medve. Csakhogy már egyszer letette.
Nagy buzgóságában úgy szorongatta, mintha holtra akarná ölelni.
Szegénynek semmi nyugtát nem hagyják; most megint Bige Géza
feszeleg előtte. Ugyan mi tetszhetik valakinek ezen a versfaragó
borbélylegényen, középütt szétugratott frizurájával! Pedig
folytonosan vele járja; mindig, mindig. Akárhová legyen, ha nem
verseket mond most neki, a hogy az ujjait pattogtatja. És hogyan
mosolyog rá Mari! Minő meghitten suttognak! Eh, hát ugyan miért ne
tánczolna, miért ne mosolyogna, miért ne suttogna?!. Béla azonban
– bár egész természetesnek találja mindazt, a mit Mari tesz –
kihevült tekintettel hagyja ott a táncztermet és megy be az ivók közé,
hol a kántus jelesebb tagjai gyönyörű, s csak Sállya Andor egy-két
rekedt rikkantása által megzavart harmóniában éneklik, hogy:

Esik eső karikára


Kossuth Lajos kalapjára.
A mennyi csöpp esik rája,
Annyi áldás szálljon rája!

Nincs többé policzáj. Béla leül a legszélső asztal mellé, félre


csapja fekete bársony kucsmáját és bort hozat. Ivás közben rá-ráüt
az asztalra; az ujja gyürütlen. Nem tudja megállni, minden
pillanatban kitekintget a tánczolók felé. Mari fehér ruhája
minduntalan ott suhan el az ajtó előtt. A lány is be-benéz s bizony
nagyon szeretne egy-egy kis időre megállni ott, hanem Bige Géza
lábai jobbak, mint a verseié, s tovább repülnek, mint a forgó szél.
– Hát nem emlékszik, hogy most maga következik, Béla? – Mari
érte ment a borozónak s szelid, nyájas, édes hangon szólította meg.
– Én következem? – vetette föl fejét Béla és azt akarta mutatni,
hogy kaczag; de csak az arcza nevetett, szemei nem. – Én
következem? Ugyan hányadiknak következem én? Tizediknek,
huszadiknak, utolsónak?
A lány elszomorodott.
– Haragszik Béla? – kérdé, szalagjait gyürve ruháján.
Nem kapott feleletet.
– Csak azért kérdem, – folytatá egyszerre fölvetve tekintetét –
hogy még egyet kérdezhessek utána. Feleségül akar-e venni,
menyasszonya vagyok-e én, hogy haragszik?
Béla ez izgatott szavakra megragadta a lány kezét, mintha
tánczra akarná vinni. Hanem csak erősen megszorította és nem
mozdult. Abban a perczben közéjök ütötte magát a középen
választott frizura s kecseskedő lengéssel kapta tánczba Marit. Mari
ment, tánczolt ujra, tánczolt tovább, kaczérkodott, nevetett, sohasem
pihent, sokat boldogított, mindenkit bolondított és olyan
boldogtalannak érezte magát, hogy majd a szíve szakadt meg.
Klári néni az egyik sarokszékben azt álmodta, hogy Mari
esküvőjét tartja egy fényes, gazdag úrral, ki az egész rokonságot
pártfogásába fogja venni; már a nevét is megtudta volna az illetőnek,
ha a részeg Sállya András épen előtte el nem rikoltja magát. A
legalkalmasabb időben ébredt föl. A gyertyák már halaványodtak s a
fekete világ kívül az ablakokon szürkülni kezdett. Mindennek vége
volt, csak a kedvnek és bornak nem. A gyertyák valamennyi atillát
telecsöpögték, a szép szál kócsag-tollak összetöredeztek s a
csengő-bongó sarkantyuk a könnyű ruhákat mind összeszaggatták.
Mari kezében a nagy kamélia-csokor lankadtan haldoklott; a vörös
pántlikás bokrétára pedig, melyet Klári néni gondosan maga mellé
helyezett a székre, a nehéz fejű Sállya ráült és agyonnyomta. Bihari
Gida próbálta kiegyengetni, de kevés sikerrel. Itt az indulás órája. Az
egész fekete sereg Mari köpenye után tolakodik; de úgy látszik, a
mendikásnak vannak legjobb öklei, mert az ostromolt köpenyt
utoljára is ő keríti kezéhez s számos sikertelen kisérlet után
(Fordítsa hát kifelé! – Ne az alsó végét tartsa föl! – Menjen inkább a
néninek segíteni! – Felveszem már magam is!) sikerül neki Mari
hószín vállaira borítani.
A nagytiszteletű úr várkastélyában már ég a hajnali őrtűz, mikor
hazaér a háznép. Különösen jó kedve nincs senkinek, csak a
mendikás szólal meg olykor, dicsérve az éj gyönyörüségeit. Mindenki
nyugodni siet; az egyik aludni is tud, a másik ébren marad. Béla
nyugtalanul hánykódott divánján, melyre ruhástul vetette magát.
Ajtaja csöndesen nyikorogni kezdett és a vöröses hajnali
világosságnál a világlátott mendikást ismerte meg vendégében. A
leghosszabb pipájával jött.
– Ébren van Kálozdy úr? – kezdé. Köszönöm alássan, ha
megengedi. (Leül.) Hát biz én, könyörgöm, csak azt gondoltam, hogy
már ilyenkor akár fekszik le az ember, akár nem. Egy kis
beszélgetés reggelig többet ér. Haj, de gyönyörüséges bál is volt ez
az éjjel! Ha megengedi, abból a hitványabbik fajta kálozdiból
megtöltöm a pipámat. Pi, pi, pi. (A pipa nem akar szelelni.) No
bolond, no; fölséges dohány! Tessék elhinni, hogy én csak a jó
dohány miatt örülök az egész rektorságnak. Mert a mi azt illeti, hát
visszajövök én még ide. Hisz mi az az egy-két esztendő? Legszebb
koromban pap vagyok. Különben már annyi, mintha egész
bizonyossággal fel lennék szentelve. És akkor aztán…
– És?
– És hát megházasodom. Pi, pi, pi, Megteszem. Hol van valami
kívánatosabb, mint egy papné sorsa? Miért ne tenném? Csak azt
akarom mondani még, könyörgöm alássan, hogy ma a bálból
hazajövet úgy láttam, mintha a kisasszony sírt volna. Legalább
könyek voltak a szemében. Az igaz, hogy nagyon hideg van. Csak
azt akarom…
Béla egy kicsit nyugtalankodott a divánon. Karját a feje alá tette
és bámulni kezdte a mennyezet primitiv bokrétáit. A mendikás,
iszonyuan rágva a csutorát és szavakat egyaránt, folytatta akadozó
beszédét:
– Igenis, könyörgöm alássan. Én jól tudom, hogy papi embernek
kétszer is meg kell gondolnia, a mit a száján kiereszt, mert nem
játszhatik a szavával. Én pedig már annyi, mintha az volnék. Igenis,
könyörgöm alássan. És szent igéretet tettem neki.
– Miféle igéretet?
– Szent igéretet. Mert egy papnénak csakugyan jó sora van a
világon. Csak annyit akarok mondani, hogy én már kezet adtam rá
és a kisasszony is kezet adott. Csupán csak azért mondom, hogy
mintha sírni láttam volna. Lehet, hogy csalódom, Kálozdy úr; de
bizonyosan láttam könyeket a szemében. Igenis, könyörgöm
alássan. Jól tudom én, hogy Mari kisasszony csak szegény ember
leánya és egy szegény ördög mátkája. Mert már annyi, mintha az
lenne. Kálozdy úr pedig világi javakkal és tisztességgel bőven
megáldatott ifjú ember. Hanem azért egész éjjel csak elvihette volna
egy fordulóra szegényt és velünk is jöhetett volna haza annak rendje
szerint. Valóságos könyek voltak azok! Mert a megaláztatás,
könyörgöm alássan, nem esik jól a szegény embernek.
A mendikás nagy köhögés és fuldoklás közt ugyan, de éles
szeme és bátor nyelve fölött való teljes megelégedéssel végezte
mondókáját. Az elmondottak után azonban csakhamar kiesett
ünnepi hangulatából s fennen hangoztatott szegény-emberes
büszkeségét a faképnél hagyva, Bélától, ki még mindig a mennyezet
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like