100% found this document useful (8 votes)
26 views

Download ebooks file (Ebook) Beginning Sensor Networks with XBee, Raspberry Pi, and Arduino: Sensing the World with Python and MicroPython by Charles Bell ISBN 9781484257951, 1484257952 all chapters

The document provides information about various ebooks related to sensor networks, robotics, and programming with Raspberry Pi and Arduino, authored by Charles Bell and Jeff Cicolani. It includes details on how to download these ebooks, their ISBN numbers, and links to their respective product pages. Additionally, it features a comprehensive table of contents for 'Beginning Sensor Networks with XBee, Raspberry Pi, and Arduino' by Charles Bell, outlining the chapters and topics covered in the book.

Uploaded by

monroboviep8
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (8 votes)
26 views

Download ebooks file (Ebook) Beginning Sensor Networks with XBee, Raspberry Pi, and Arduino: Sensing the World with Python and MicroPython by Charles Bell ISBN 9781484257951, 1484257952 all chapters

The document provides information about various ebooks related to sensor networks, robotics, and programming with Raspberry Pi and Arduino, authored by Charles Bell and Jeff Cicolani. It includes details on how to download these ebooks, their ISBN numbers, and links to their respective product pages. Additionally, it features a comprehensive table of contents for 'Beginning Sensor Networks with XBee, Raspberry Pi, and Arduino' by Charles Bell, outlining the chapters and topics covered in the book.

Uploaded by

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

Download Full Version ebook - Visit ebooknice.

com

(Ebook) Beginning Sensor Networks with XBee,


Raspberry Pi, and Arduino: Sensing the World with
Python and MicroPython by Charles Bell ISBN
9781484257951, 1484257952
https://ebooknice.com/product/beginning-sensor-networks-
with-xbee-raspberry-pi-and-arduino-sensing-the-world-with-
python-and-micropython-11176498

Click the button below to download

DOWLOAD EBOOK

Discover More Ebook - Explore Now at ebooknice.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Start reading on any device today!

(Ebook) Beginning Sensor Networks with XBee, Raspberry Pi,


and Arduino, Second Edition: Sensing the World with Python
and MicroPython by Charles Bell ISBN 9781484257968,
1484257960
https://ebooknice.com/product/beginning-sensor-networks-with-xbee-
raspberry-pi-and-arduino-second-edition-sensing-the-world-with-python-
and-micropython-50195862
ebooknice.com

(Ebook) Beginning MicroPython with the Raspberry Pi Pico:


Build Electronics and IoT Projects by Charles Bell ISBN
9781484281345, 1484281349
https://ebooknice.com/product/beginning-micropython-with-the-
raspberry-pi-pico-build-electronics-and-iot-projects-44410426

ebooknice.com

(Ebook) Beginning Robotics with Raspberry Pi and Arduino:


Using Python and OpenCV - PDFDrive.com by Jeff Cicolani

https://ebooknice.com/product/beginning-robotics-with-raspberry-pi-
and-arduino-using-python-and-opencv-pdfdrive-com-50195874

ebooknice.com

(Ebook) Biota Grow 2C gather 2C cook by Loucas, Jason;


Viles, James ISBN 9781459699816, 9781743365571,
9781925268492, 1459699815, 1743365578, 1925268497
https://ebooknice.com/product/biota-grow-2c-gather-2c-cook-6661374

ebooknice.com
(Ebook) Beginning Robotics with Raspberry Pi and Arduino:
Using Python and OpenCV by Jeff Cicolani ISBN
9781484234617, 1484234618
https://ebooknice.com/product/beginning-robotics-with-raspberry-pi-
and-arduino-using-python-and-opencv-7008200

ebooknice.com

(Ebook) Beginning Robotics with Raspberry Pi and Arduino:


Using Python and OpenCV by Jeff Cicolani ISBN
9781484268919, 1484268911
https://ebooknice.com/product/beginning-robotics-with-raspberry-pi-
and-arduino-using-python-and-opencv-23497110

ebooknice.com

(Ebook) Beginning Robotics with Raspberry Pi and Arduino:


Using Python and OpenCV by Jeff Cicolani ISBN
9781484268902, 1484268903
https://ebooknice.com/product/beginning-robotics-with-raspberry-pi-
and-arduino-using-python-and-opencv-23518014

ebooknice.com

(Ebook) Building Wireless Sensor Networks: with ZigBee,


XBee, Arduino, and Processing by Robert Faludi ISBN
9780596807733, 0596807732
https://ebooknice.com/product/building-wireless-sensor-networks-with-
zigbee-xbee-arduino-and-processing-1650690

ebooknice.com

(Ebook) Getting Started with Sensors: Measure the World


with Electronics, Arduino, and Raspberry Pi by Kimmo
Karvinen, Tero Karvinen ISBN 9781449367084, 1449367089
https://ebooknice.com/product/getting-started-with-sensors-measure-
the-world-with-electronics-arduino-and-raspberry-pi-4928970

ebooknice.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
Visit https://ebooknice.com to
discover a wide range of
eBooks across various genres.
Enjoy exclusive deals and
discounts to enhance your
reading experience. Start your
digital reading journey today!
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
Visit https://ebooknice.com to
discover a wide range of
eBooks across various genres.
Enjoy exclusive deals and
discounts to enhance your
reading experience. Start your
digital reading journey today!
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
Exploring the Variety of Random
Documents with Different Content
necessarily the same as at first announced; for the trial might bring
to light facts to mitigate or to aggravate the sentence. The
presentation of the case to the comitia by the magistrate was termed
the fourth accusation.[1580] If anything prevented the voting in the
comitia, the accused was discharged,[1581] and could not be legally
brought to trial again for the same offence excepting under a
different form of action.[1582]

Schulze, C. F., Volksversammlungen der Römer, 307-40; Hüllmann, K. D.,


Staatsrecht des Altertums, 334-54; Huschke, Ph. E., Verfassung des Königs
Servius Tullius, chs. vii, xi; Wöniger, A. T., Sacralsystem und das
Provocationsverfahren der Römer; Peter, C., Epochen der Verfassungsgeschichte
der röm. Republik, mit besonderer Berücksichtigung der Centuriatcomitien und der
mit diesen vorgegangenen Veränderungen; Studien zur röm. Geschichte, 54 ff.;
Schwegler, A., Röm. Geschichte, see index, s. Centuriatcomitien; Ihne, W., History
of Rome, iv. 10 ff.; Mommsen, Röm. Staatsrecht, iii. 300 ff.; Röm. Strafrecht, 151-
74, 473-8, 632-5; Mommsen and others, Zum ältesten Strafrecht der Kulturvölker,
especially 31-51 by H. F. Hitzig; Lange, L., Röm. Altertümer, ii. 516-33, 541-65,
597-613, see also indices of vols. i-iii, s. v.; Madvig, J. N., Verfassung und
Verwaltung des röm. Staates, i. 226-34; Herzog, E., Geschichte und System der
röm. Staatsverfassung, i. 1068-1119, see also index, s. v.; Willems, P., Droit public
Romain, 159 f., 172, 176 ff.; Mispoulet, J. B., Institutions politiques des Romaines,
i. 203-7; Études d’institutions Romaines, 63-6; Liebenam, W., Comitia II, in Pauly-
Wissowa, Real-Encycl. iv. 686-700; Humbert, G. (s. Comitia), in Daremberg et
Saglio, Dict. i. 1378 f.; Voigt, M., XII Tafeln, i. 673-82; ii. 781-845; Karlowa, O.,
Röm. Rechtsgeschichte, i. 409; Girard, P. F., Histoire de l’organisation judiciaire
des Romains, i. 104-59; Usener, H., Italische Volksjustiz, in Rhein. Mus. lvi (1901).
1 ff.; Müller, A., Strafjustiz im röm. Heere, in N. Jahrb. f. kl. Altertum, xvii (1906).
550-77; Vassis, Sp., Leges valeriae de provocatione, in Athena, xvii (1905). 160-5;
Küspert, O., Ueber die Bedeutung und Gebrauch des Wortes ‘Caput’ im älteren
Latein; Dupond, A., De la constitution et des magistratures Romaines sous la
république, 67-74; Moye, M., Élections politiques sous la république Romaine;
Hallays, A., Comices à Rome, ch. ii; Morlot, E., Comices électoraux, ch. vi;
Kappeyne van de Coppello, J., Comitien, 105-7; Borgeaud, C., Histoire du
plébiscite, 45-57; Pantaleoni, D., Della auctoritas patrum nell’ antica Roma;
Greenidge, A. H. J., Legal Procedure of Cicero’s Time, see index, s. Centuriata
Comitia, Lex, Provocatio, etc.; Roman Public Life, 75, 252 f., 255; Abbott, F. F.,
Roman Political Institutions, 253-9; Wirz, H., Perduellionsprocess des C. Rabirius,
in Jahrb. f. Philol. xxv (1879). 177-201; Mirabelli, G., Di un processo politico
avvenuto negli ultimi tempi della republica Romana; Schulthess, O., Der Process
des C. Rabirius vom Jahre 63 v. Chr.; Baron, in Berl. Philol. Woch. 1893. 658-60.
CHAPTER XII
THE COMITIA TRIBUTA AND THE RISE OF POPULAR SOVEREIGNTY
To the Year 449

In the belief of the Romans the tribunes of the plebs, originally two,
were instituted in 494 as a concession to the seceding commons to
win them back to the state.[1583] The historical truth of the first
secession need not be discussed here; but there is no good ground
for rejecting the view of the ancients either that the tribunate of the
plebs owed its existence to a revolution or that it began at as early a
date. According to our sources the plebeian tribunes, hence we may
infer also the aediles, were for a time elected, and other business
affecting the interests of the common people was transacted, in
comitia curiata composed potentially of all the citizens.[1584] The
change in the form of organization in 471, from curiate to tribal, will
be considered below. The president of the comitia which elected the
first plebeian tribunes was necessarily a patrician magistrate,[1585]
probably the pontifex maximus;[1586] thereafter, with the exception of
the comitia for the election of the first plebeian officials after the
overthrow of the decemvirs, tribunes of the plebs presided not only
for elections but also for judicial business and for the enactment of
plebiscites (plebi scita).
The object of the office of tribune was the protection of individual
citizens, plebeian and patrician alike,[1587] from oppression; and the
means was the auxilium (official aid),[1588] which could be rendered
in no other way than by personal contact; hence the law prohibiting a
tribune from being absent over night from the city[1589] and requiring
him to leave the door of his house open during the night.[1590] In the
further interest of the citizens the tribunes had the unrestricted right
to call the plebs to a contio and address them at any time and on any
subject, to form them when so assembled into voting groups, at first
curiae and after 471, tribes, and to take their votes on proposals
affecting plebeian interests, plebiscites being from the beginning
binding on the plebeian body in so far as they harmonized with the
laws of the state.[1591]
These were the two original functions from which the vast powers
of the later tribunes gradually developed. As strictly plebeian officials
they had no authority to summon patricians, to exclude them from
the place of assembly,[1592] or to condemn them judicially.[1593] It
follows that their alleged prosecutions of past consuls for
maladministration[1594] are fictions[1595]—an anticipation of their
jurisdiction at a later age. Directly they possessed no power of
judgment or of coercion;[1596] but for the enforcement of the auxilium
and of the ius agendi cum plebe their persons were made sacred—
sacro sancti—by an oath which the plebs swore at the time they
instituted the office,[1597] namely that any one who killed a tribune or
aedile of the plebs or did him bodily harm, or who commanded
another to inflict harm or death upon him might as a person devoted
to Jupiter be killed with impunity, and his property be confiscated.
[1598] The avenger was necessarily either a private plebeian or an

official of the plebs.[1599] The formal act which rendered the tribunes
sacred was termed a lex sacrata. The essence of such a law is (1)
that it was sworn to by the community—in this instance by the
community of plebs, (2) that the offender against it became a homo
sacer and could be put to death with impunity.[1600] This idea of
sanctity the plebeians may have derived partly from the Greek
asylum;[1601] but it seems also to have been influenced by the
condition of ambassadors, hence the later, ill-founded conception of
the plebs as a state, and of the plebeian officials and other
institutions as based on a treaty ratified with fetial ceremonies
between the patrician government and the seceding plebs.[1602]
Though termed lex sacrata because it was passed and sworn to in
the community, as it were, of the plebs, like any plebiscite of this
period the resolution had no legal validity for the state or for the
patricians. Under compulsion, however, the government yielded to
the demands of the plebeians without formally acknowledging the
sanctity of their officials; so that the patricians, by asserting that
Roman law did not recognize an inviolability founded purely on
religion,[1603] could afterward deny that the tribunes were really
sacrosanct. Till the enactment of the Valerian-Horatian laws of 449,
[1604] accordingly, the inviolability of the tribunes existed in so far
only as the plebeians were in a position to maintain it by holding over
their opponents and over the government the threat of violence and
revolution. That under the circumstances domestic peace was on the
whole preserved should be credited to the orderly character of the
great mass of citizens.
Applied to the holding of contiones and comitia, this inviolability
protected the presiding tribune from interruption, contradiction, and
every disturbance. The principle was afterward extended to verbal
abuse anywhere publicly indulged in.[1605] Even if a man showed
disrespect by not stepping out of the way of a tribune who was
passing along the street, he was liable to the death penalty.[1606]
Under normal conditions, however, the rigorous execution of this lex
sacrata could not be thought of; in place of outlawing the offender
against his person the tribune was ordinarily willing to impose a fine
upon him, from which an appeal might be made to the plebeian
assembly; or in cases of violence to his person, he might resort to
capital prosecution, which was likewise appealable. These principles
were formulated in an alleged Icilian plebiscite of the year 492.[1607]
From what has just been said it is clear that the tribune’s
coercive[1608] and judicial functions resulted, not from usurpation as
has often been asserted,[1609] but from a mitigation of the harsh lex
sacrata. In a word, the ultimate basis of tribunician authority was the
revolutionary power of the plebs, upon which rested the sanctity of
the tribunes, and thereon their jurisdiction. Of the judicial activity
attributed by the annalists to the plebeian officials in the period
before the decemvirs we do not know how much is mythical; but it is
safe to say that all the capital cases, probably all the cases without
qualification, which they actually settled as judges were submitted to
by the patrician government for the sake of peace, without being
accepted as legal.
To the third year of the tribunate, 491, is assigned the first
mentioned exercise of tribunician jurisdiction. C. Marcius Coriolanus,
the accused, had advocated in the senate the abolition of the
tribunician office,[1610] and had done personal violence to the
aediles, in this way rendering himself liable to the penalty of the lex
sacrata on which rested the sanctity of the plebeian officials. Instead
of declaring him a homo sacer, a tribune brought him to trial before
the tribes, which condemned him by a narrow majority.[1611] The
story is now regarded by all scholars as a myth. The vote by tribes at
this early time is either exceptional or more likely an anticipation of
later usage.[1612]
In accordance with the Icilian plebiscite a capital charge is said to
have been brought by a tribune of the plebs against Kaeso Quinctius
on the ground that he had repeatedly driven the tribunes from the
Forum and had dispersed their assembly.[1613] After providing
sureties the accused went into exile,[1614] and the sentence of
banishment was passed—in Cicero’s opinion by the comitia
centuriata, in Livy’s by the tribal comitia of plebs, 461.[1615] Another
case prior to the decemvirate is recorded for the year 455.
Representatives of three illustrious patrician families were charged
with having disturbed an assembly under tribunician presidency.
Their estates were forfeited to Ceres.[1616] Naturally under this
arrangement between the plebs and the government there was room
for much misunderstanding: the leaders of the plebs stretched their
claims to the uttermost; and the patricians, after granting the radical
concession, endeavored to recall as much of it as possible. They
plausibly urged that while the sacrosanctitas, so far as it existed,
[1617] might protect the person of the tribune, it gave him no authority

over a patrician;[1618] and their position as the sole holders of


political power and the sole repositories of law and usage enabled
them before the decemviral legislation by stubborn, skilful
perseverance in the details of political warfare almost to throw the
tribunician sanctity into oblivion.[1619] Livy tells us that in the
assembly appointed for the trial of the past consuls L. Furius and C.
Manlius, the accusing tribune failed to appear, and was found
murdered in his home; and the historian gives us to understand that
the crime was the result of a private conference among the
patricians.[1620] Dio Cassius[1621] states that they secretly slew a
number of the boldest spirits among the plebeians. Though these
stories are mythical, they reflect at least the opinion of the historians
that in this early period the sanctity of the tribune counted for little. If
it failed to protect his person, it could have given him no great
degree of recognized judicial competence. Under these
circumstances we should not expect to find the tribunes often
bringing the power of their questioned sanctity into actual use in the
early years of their existence; but that before the decemvirate they
exercised jurisdiction to some extent even in capital cases, which
were appealed to the assembly under their presidency, is proved by
a law of the Twelve Tables, which, to remedy what the legislators
must have considered an abuse, provided that accusations affecting
the caput of a citizen should be brought only before the comitiatus
maximus—evidently the comitia centuriata.[1622]
If the tribunes presumed to condemn men to death, they certainly
would not hesitate to fine them for lighter offences. For checking the
power of the magistrates to levy unlimited fines the consuls of 454,
A. Aternius and Sp. Tarpeius, passed through the comitia centuriata
a law which set the maximum fine to be levied by a magistrate on an
individual in any one day at thirty cattle and two sheep, the minimum
being a single sheep. In case he exceeded the former amount, an
appeal could be made to the assembly.[1623] In the opinion of
Dionysius[1624] this law was interpreted to apply to all magistrates,
including those of the plebs, and was made accordingly the basis of
the tribunician jurisdiction in finable offences. These consequences
seem to have been drawn from the statute, although the proposers
may not have so intended it.[1625]
Sufficient evidence has now been offered that before the
decemviral legislation the plebeian tribunes exercised, on the basis
of their sanctity, a vague jurisdiction in both finable and capital
cases, occasionally submitted to by the patrician government though
probably not recognized by it as just or constitutional. For the same
period their method of agitation by the obstruction of the levy,[1626]
by haranguing the people in contiones,[1627] and occasionally by
sedition, proves clearly the lack of legislative power through the
assembly over which they presided, as well as their lack of veto on
the acts of the government. With reference to legislation the course
of the discussion in the present and following chapters will make it
evident that only by a provision of the Hortensian statute did
plebiscites become unconditionally binding on the whole people.
Although from the beginning a tribune, as a member of a collegial
office, could intercede against the act of a colleague, he had in this
period no legal right of the kind against the government; for had he
now possessed it, as he did at a later age, he would have felt no
need of obstructing the levy—a relatively slow, clumsy method of
political warfare. It is to be noticed further that the power of veto of
the tribunes, after it had been acquired, rested upon their jurisdiction.
If a magistrate persisted in ignoring their prohibition, his act
remained valid but he rendered himself liable to tribunician
prosecution.[1628] Necessarily, then, as long as the tribunes lacked
judicial competence (till the Valerian-Horatian legislation, 449) they
lacked the veto against governmental action; as long as their judicial
competence depended upon the will of the government (probably till
the Hortensian legislation, 287), their veto on the government must
have been correspondingly limited. Finally it was not till tribunician
obstruction of the levy, sedition, and secession disappear (that is,
with the enactment of the Hortensian statute) that we have a right to
assume the existence of an unrestricted tribunician veto.[1629] The
method of the tribunes in the pre-decemviral period was, by the
means above indicated, to force a proposed measure upon the
patrician magistrates, and to compel them to bring it before the
centuriate assembly in regular form.[1630]
In view of the circumstances that passed bills alone were recorded
and hence could be known to posterity, we may reject as unauthentic
all the alleged proposals of agrarian laws of this period,[1631] which
however may not have been free from agitation of the kind.
A law of the year 471 gave the tribunician assembly a tribal
organization. This measure, brought about by the agitation of
Publilius Volero, tribune of the plebs of that year,[1632] must, for the
reason above mentioned, have been an act of the comitia centuriata.
[1633] The motive given by Livy was the desire of the tribunes to free
themselves from the influence which the patricians through the votes
of their clients exercised on the assembly.[1634] The curiae contained
all the citizens,[1635] the tribes none but the landowners. The tribal
organization, therefore, excluded not all the clients but those only,
together with any other citizens, who were landless.[1636] Probably in
other ways the patricians had greater control of the curiate than of
the tribal assemblies, although it is impossible to believe with
Dionysius[1637] that the essence of the change from the curiate to
the tribal comitia consisted in the elimination of auspical influence.
That the law forbade the patricians to take part in tribunician
assemblies, as Zonaras[1638] imagines, is not probable, for it gave
the tribune no new authority over the patricians; he had power
neither to summon them to his assembly nor to expel them from it.
[1639] In fact we have evidence of the presence of patricians in

tribunician assemblies after this date.[1640] The so-called law of


Publilius Volero, now under discussion, was confused by the sources
with the Publilian law of 339, some of the provisions of the later act
being uncritically assigned to the earlier.[1641]
The statute of 471 imparted to the tribunician assembly no new
function. Although in mentioning the bill Dionysius[1642] includes a
proposal to grant the assembly legislative power, when he comes to
speak of the statute as actually passed, he refers only to its
provisions for the election of plebeian tribunes and aediles by the
tribes, herein agreeing with Livy and other authorities.[1643]
In the same year four tribunes of the plebs were elected for the
first time.[1644] The increase was probably effected by an article of
the statute under discussion.
Till after the decemviral legislation the comitia tributa,[1645] brought
into existence by the statute of 471, was restricted, as had been the
tribunician comitia curiata, to the transaction of purely plebeian
business. In the records of this period we find a continuance of
apocryphal agrarian bills[1646] and condemnations of retired
magistrates.[1647] In reality the only political weapon of the tribunes,
aside from general agitation, continued to be the obstruction of the
levy,[1648] as is proved by their increase in number to ten.[1649] The
only agrarian law of the period, the so-called lex Icilia for the division
of the Aventine among the people, was passed by the comitia
centuriata.[1650] The very circumstance that this mild concession to
the plebs was couched in a lex sacrata[1651] shows how little faith
the commons had in the government.[1652]
During this period the supreme power was the senate. Shortly
after the fall of the kings it provided for the purchase of corn among
neighboring states in a time of scarcity, made a state monopoly of
salt in the interest of the poor, freed the plebs from port dues and
tributum, thereby placing the whole burden of these taxes on the
wealthy.[1653] These acts imply legislative as well as administrative
competence. Foreign affairs,[1654] including the decision of war and
peace, were in its hands. It resolved not to restore the property of the
Tarquins,[1655] decreed triumphs to victorious generals,[1656] the
celebration of games,[1657] the expulsion of the Volscians from the
city in the time of a festival,[1658] controlled the magistrates,
including the plebeian tribunate, by means of the dictatorship,[1659]
or clothed the consuls with absolute authority.[1660] Little room was
left for the activity of the assemblies.
Notwithstanding these unfavorable conditions the tribunes of the
plebs through obstruction of the levy and through their harangues in
contiones[1661] were chiefly instrumental in bringing about the
institution of the decemviri legibus scribundis. Actual votes in
tribunician comitia on proposals looking to that end[1662] could have
had no more than moral weight. Under popular pressure the consul
Sestius, 452, referred the question to the senate,[1663] and the bill for
their institution was passed by comitia, doubtless of the centuries.
The only valid activity, therefore, of the tribal assembly prior to the
decemviral legislation, so far as is known, was the enactment of
plebiscites, which lacked the force of law, the election of plebeian
officials,[1664] and the quasi-judicial decision of cases appealed to it
by those who were accused of violating the tribunician sanctity.[1665]
An epoch was made in the history of the tribunate and of the tribal
assembly by the consulship of Valerius and Horatius, 449, who
proposed and carried a centuriate law[1666] which gave these
institutions a legal basis. The article which logically first claims our
attention provided that any one who injured the tribunes of the plebs,
the aediles, or the decemviral judges should be devoted to Jupiter,
and his property should be forfeit to the temple of Ceres, Liber, and
Libera.[1667] According to Livy,[1668] who here represents the
tribunician point of view, the original lex sacrata, passed on the
Sacred Mount, was first renewed with appropriate ceremonies, thus
reëstablishing the religious inviolability of the plebeian officials,
whom then the article of the Valerian-Horatian statute here
mentioned rendered legally inviolable. The constitutional relation of
these two ideas was difficult even for the Romans to determine.
Certain jurists, controverting the tribunician interpretation, asserted
that this law made no person sacrosanct, but merely threatened with
capital punishment any one who injured the officials concerned,
clothing them thus in the same kind of inviolability as that which
protected the ordinary magistrates.[1669] The object, according to
this view, was not only to eliminate from the government the anomaly
of a power sanctioned by religion only,[1670] but also to convert the
plebeian officials into state officials. The leaders of the plebs gladly
accepted the new position tendered them, without being willing
however to withdraw from the old. Henceforth we have to deal,
accordingly, with a group of legally recognized public functionaries
who effectively claimed a religious inviolability hard to reconcile with
the constitution, in which they were in time to make for themselves a
disproportionate place.
The second article of the Valerian-Horatian statute was to the
effect that “whatever the plebs ordered in their tribal assembly
should be valid for the people”;[1671] so that henceforth plebiscites,
when passed under the conditions hereafter specified, were the
equivalent of leges, as they were often so called. It is so similar to a
provision of the later Publilian and of the still later Hortensian statute
that we should incline to reject it as an anticipation of the one or the
other, were it not for the fact that under it important plebi scita, as the
Canuleian, the Licinian-Sextian, and the Genucian, were passed.
[1672] We must accept it, then, as historical, and adapt our
interpretation to the few known facts in the case.
Notwithstanding the use of the word plebs to designate the tribal
gathering under tribunician presidency, there is no valid reason for
supposing that the Valerian-Horatian law altered its composition—
that the patricians were now excluded.[1673] Dionysius[1674] is clearly
of the opinion that they participated in this form of comitia both
before and after the enactment of the statute under consideration;
and Livy[1675] thinks of them as still present in the tribunician
meetings as late as the struggle for the Licinian-Sextian laws. The
problem must be considered in connection with the development of
the voting function of the assembly. Primitively the leaders (nobles)
in council decided upon a measure, which they then submitted to the
people to be accepted with clamor and din.[1676] Although the
acclamation was essentially an act of the masses, nothing forbade
the nobles to join in the shouting. Doubtless in the tribal assemblies
the expression of opinion within the tribe continued for a time to be
by acclamation.[1677] As long as this primitive condition existed, a
distinction could not be drawn between the right to be present and
the right to join in the decision of questions brought before the
comitia. Undoubtedly the custom of voting by heads within the tribe
was an imitation of a usage adopted by the comitia centuriata some
time after the institution of the latter;[1678] hence we could not
reasonably assume its use by the tribes so early as the pre-
decemviral period. The question therefore as to whether the
patricians, who were certainly present in meetings of the tribes,
enjoyed the right of voting in them could not have arisen till after the
decemviral legislation. The plebeians had found it impossible by their
own powers to exclude from their assembly the landless clients, who
were inferior to themselves.[1679] Much less could they exclude the
nobles. If the presiding tribune could not prevent their remaining after
the people had been formed into voting groups, he could not prevent
their voting. As the patricians, equally with the plebeians, belonged
to the tribes, the former, being men of superior privilege, could not
lawfully be debarred from meetings of their associations; and if they
chose to attend, it was not for the tribunes of the plebs to decide as
to the law in the matter. The word plebs in the statute is susceptible
of an easy explanation. As the comitia curiata and comitia centuriata,
under patrician presidents, had from the beginning been termed
populus, nothing could be more natural than that from the time an
assembly convened under plebeian presidency for plebeian objects,
the latter should by way of distinction be termed plebs, even though
the few patricians were included. Ordinarily the plebeians must have
welcomed patricians to their assemblies, as the presence of
magistrates and senators and their sons added dignity and weight to
the proceedings. But when the patricians used all their superior
influence in both lawful and unlawful ways to block a popular
measure, the tribunes, naturally wishing then to exclude them,
attempted to establish the principle that tribunician assemblies were
exclusively plebeian. This question was settled by the law of
Publilius Philo, 339.[1680]
This article of the Valerian-Horatian statute was a concession
extorted from the patrician government by the strongest pressure,
perhaps by a plebeian secession. The actual advantage which it
brought to the plebs was minimized, however, by the provision that
the previous consent of the senate was essential to the validity of
bills brought before the tribunician assembly.[1681] The patricians
could urge in support of this arrangement that as their magistrates
according to long established custom always obtained the previous
consent of the senate (senatus consultum) to measures brought
before any assembly, and were absolutely required to obtain
senatorial sanction (patrum auctoritas) for curiate and centuriate
laws and elections,[1682] the tribunes, who were free from the
trammels of the sanction, should be legally compelled to consult the
senate before bringing a measure into their assemblies, especially
as their legislation was in a field hitherto monopolized by the
patrician magistrates and the senate. Although the tribunes of the
plebs would have preferred to understand by the term plebiscite all
that it had meant before—the unconditioned resolution of the tribal
assembly under their presidency—they must have felt satisfied for
the time being with the great gain they had made, however
strenuous they afterward became to relieve themselves of senatorial
control. This condition on the validity of the plebiscite is not expressly
mentioned by Livy in connection with the Valerian-Horatian
legislation, but is assumed by the sources for the following period.
[1683] The same thing is clearly implied, too, in the long series of
political struggles which came after the enactment of the Valerian-
Horatian statute.[1684] Had the tribunes been free to legislate without
interference on the part of the senate, they would have been in a
position easily to complete the social and political equalization of the
orders, and by one sweeping reform law to place themselves and
their constituents in the condition reached by an almost
uninterrupted conflict of a hundred and sixty years (449-287).[1685]
It was in accordance with this regulation that another article of the
Valerian-Horatian statute directed the aediles of the plebs to
preserve the senatus consulta in the temple of Ceres.[1686] We
cannot look upon these officials as keepers of the senatorial archives
of that time,[1687] and hence must conclude that the documents in
their charge were those decrees which authorized the presentation
of tribunician bills, for with those alone the plebeians were directly
concerned.
The patricians expected to find a further safeguard in the
tribunician veto, which could be directed against a colleague.[1688]
From the fact, however, that the tribunes continued to resort to the
clumsy method of obstructing the levy, and afterward also of
impeding the collection of the tributum,[1689] we must infer that as
yet their intercession did not prevail against a patrician magistrate.
[1690] Various popular seditions, too, are mentioned for the same

period (449-287).[1691] That one which led to the Hortensian


legislation is historical, and it is hardly possible that all the others are
fictions.
Another conservative check was the application of oblative
auspices to the plebeian assembly.[1692] Livy[1693] reports that in 293
the tribunes resigned because of a faulty election, held probably in
violation of oblativa. In general, however, the plebeian gathering was
relatively free from religious control till after the enactment of the
Aelian and Fufian laws (about 150).[1694] It had the advantage of the
comitia centuriata (1) in freedom from the impetrative auspices, (2) in
freedom from the patrum auctoritas, (3) in mobility. Immediately after
the adoption of the Valerian-Horatian statute it must have become
evident that the tribunician assembly, through the character of its
presidency, its composition, and its democratic spirit, was to outstrip
the centuriate gathering in energy and aggressiveness, and to be in
a word the chief factor of progress in legislation.
No enactment affecting the jurisdiction of tribunes is referred to
Valerius and Horatius by the ancient writers; and yet the
arrangement by which they thereafter brought their capital actions
before the centuries could not have been made without the consent
of the government. If, on the other hand, the tribunes now possessed
an unconditioned power to subject patricians, whether magistrates or
private citizens, to capital prosecutions, they would have found it so
effective a means of political warfare as no longer to need
obstruction and sedition in their struggle for plebeian rights. In capital
cases the permission of a higher magistrate, ordinarily after 367 the
praetor, was required; and before the enactment of the Hortensian
statute, we may well believe, the tribunes had no means of forcing
this permission. Some similar restriction must have been placed on
their liberty to bring finable actions.
The comitia tributa under tribunician presidency had at length
become an effective constitutional factor in legislation and in
jurisdiction. But its action in the former sphere was dependent upon
the favor of the senate, in the latter on that of a patrician magistrate.
The range, too, of its legislation was restricted by the wide
administrative powers of the senate. We shall find it in the following
period winning freedom and enlarging the field of its activity.

The following literature is for the whole period from 449 to 287.
Schulze, C. F., Volksversammlungen der Römer, 341-70; Hüllmann, K. D.,
Staatsrecht des Altertums, 354-67; Niebuhr, B. G., Römische Geschichte, i. 624 ff.,
Eng. 283 ff.; see also index, s. Tributcomitien; Schwegler, A., Röm. Geschichte,
see index, s. Tributcomitien; Mommsen, Th., Röm. Staatsrecht, iii. 300 ff.; Röm.
Forschungen, i. 151-66; Röm. Strafrecht, 462-8, 473-8, 1014-6, et passim; Ihne,
W., History of Rome, bk. VI. chs. i, viii; Ueber die Entstehung und die ältesten
Befugnisse des röm. Tribunats, in Rhein. Mus. N. F. xxi (1866). 161-79;
Entwickelung der Tributcomitien, in Rhein. Mus. N. F. xxviii (1873). 353-79; Peter,
C., Gesch. Roms, bks. ii, iii; Lange, L., Röm. Altertümer, i. 586-681, 821-56; ii.
459-94, 533-42, 565-97, 613-42; De legibus Porciis libertatis civium vindicibus, in
Kleine Schriften, i. 342-429; De plebiscitis Ovinio et Atinio disputatio, ibid. ii. 393-
446; Ueber das poetelische Gesetz de ambitu, ibid. ii. 195-202; Kleineidam, F.,
Beitr. z. Kentniss d. lex Poetelia, in Festg. f. F. Dahn, ii. 1-30; Ihm, Ambitus, in
Pauly-Wissowa, Real-Encycl. i. 1800-3; Madvig, J. N., Verfassung und Verwaltung
des röm. Staates, i. 234-46; Voigt, M., XII Tafeln, i. 683-90; Karlowa, O., Röm.
Rechtsgeschichte, i. 409; Girard, P. F., Histoire de l’organisation judiciaire des
Romains, i. 149-59, 237 ff.; Puchta, G. F., Cursus der Institutionen, i. (10th ed.
1893) 166-9 (on lex and plebiscite); Mispoulet, J. B., Institutions politiques des
Romains, i. 207-30; Études d’institutions Romaines, 66-81; Willems, P., Droit
public Romain, 160 ff., 173 ff.; Greenidge, Legal Procedure of Cicero’s Time, 327-
49; Herzog, E., Geschichte und System der röm. Staatsverfassung, i. 153 ff., 189-
96, 216 ff., 248-64, 279-88, 1128-88; Glaubwürdigkeit der Gesetze bis 387 der
Stadt; Lex Sacrata und das Sacrosanctum, in Jahrb. f. Philol. xxii (1876). 139-50;
Dupond, A., De la constitution et des magistratures Romaines sous la république
Romaine, 75 ff.; Borgeaud, C., Histoire du plébiscite, 57-76, 117-67; Hallays, A.,
Comices à Rome, ch. iii; Morlot, E., Comices électoraux sous la république
Romaine, ch. iv; Ptaschnik, J., Die Wahl der Volkstribunen vor der Rogation des
Volero Publilius, in Zeitschr. f. österreich. Gymn. xiv (1863). 627-38; Publilische
Rogation, ibid. xvii (1866). 161-200; Die Centuriatgesetze von 305 und 415 U. C.,
ibid. xxi (1870). 497-525; Lex Hortensia 473 U. C. ibid. xxiii (1872). 241-53;
Stimmrecht der Patricier in den Tributcomitien, ibid. xxxii (1881). 81-102; Ruppel,
K. W., Teilnahme der Patrizier an den Tributkomitien; Soltau, W., Gültigkeit der
Plebiscite, in Berliner Studien, ii (1885). 1-176; Clason, D. O., Kritische
Erörterungen über den röm. Staat, 30-9; Schmidt, J., Die Einsetzung der röm.
Volkstribunen, in Hermes, xxi (1886). 460-6; Meyer, E., Der Ursprung des
Tribunats und die Gemeinde der vier Tribus, in Hermes, xxi (1895). 1-24,
controverted by Vassis, in Athena, ix (1897). 470 ff.; Pais, Ancient Italy, chs. xx,
xxi; Garofalo, F. P., L’origine e l’elezione dei tribuni e degli edili della plebe con un
indice alfabetico dei loro nomi; Podestà, G., Il tribunato della plebe in Roma dalla
secessione sul monte sacro all’approvazione della legge di Publilio Volerone;
Eigenbrodt, A., De magistratuum Romanorum iure intercedendi; Ackermann, H.,
Ueber die raümlichen Schranken der tribunizischen Gewalt; Tophoff, De lege
Valeria Horatia, Publilia, Hortensia; Hennes, Das dritte valerisch-horatische Gesetz
und dessen Wiederholungen; Long, G., On the Passage in Appian’s Civil Wars (i.
8) which relates to the Licinian Law, in Classical Museum, iii (1846). 78 ff.;
Kubitschek, Aedilis, in Pauly-Wissowa, Real-Encycl. i. 448-64; Humbert, G.,
Aedilis, in Daremberg et Saglio, Dict. i. 95-100; Bloch, L., Die ständischen und
sozialen Kämpfe in der römischen Republik; Willoughby, W. W., Political Theories
of the Ancient World, ch. xvi; Strachan-Davidson, T. L., Decrees of the Roman
Plebs, in Eng. Hist. Rev. v (1890). 462-74; Dreyfus, R., Les lois agraires sous la
république Romaine, pt. I. chs. i-iii; De Sanctis, G., Storia dei Romani, I. chs. xiii,
xiv, xvii; Billeter, G., Gesch. d. Zinsfusses, 115 ff.
CHAPTER XIII
THE COMITIA TRIBUTA AND THE RISE OF POPULAR SOVEREIGNTY
From 449 to 287

For a time after the Valerian-Horatian legislation the senate and


magistrates, as was intimated at the close of the preceding chapter,
maintained their authority but slightly impaired against the rising
popular power. It is true that in 427 the centuries acquired the right to
declare a war of aggression.[1695] Defensive wars in behalf either of
Rome or of an ally were regularly decided upon by the senate;[1696]
and the question whether the war was necessary for the safety of the
state admitted of a broad interpretation.[1697] From the beginning of
the period to the year 321 treaties of peace and of alliance were still
made either by a magistrate, with the authorization of the senate,
[1698] or more commonly by the senate itself, even though the
alliance or offer of protection was such as to render war with other
states inevitable;[1699] and at the close of a conquest the senate
disposed of the acquired territory and population.[1700] Through its
authority alone, till 332, the censor bestowed the perfect or the
limited citizenship.[1701]
In the affairs of peace it retained almost as absolute power of
administration as in the preceding period.[1702] We find it,
accordingly, authorizing a magistrate to vow games and the erection
of a temple in the event of victory,[1703] providing for the restoration
of the city after the Gallic conflagration,[1704] for the building of
temples,[1705] introducing pay for military service,[1706] levying the
taxes,[1707] dividing the public lands among the citizens,[1708]
founding colonies,[1709] and recalling under penalty of death those
who without permission had gone out to colonize a captured city,
[1710] directing the appropriate college to consult the Sibylline books,
[1711] and ordering the aediles to take measures against the inroad

of foreign superstitions,[1712] and the consuls to punish with rods and


beheading the instigators to revolt among the allies.[1713] It was in
obedience to a decree of the senate that the consul, or military
tribune with consular power, suspended his own imperium and that
of his colleague or colleagues by the appointment of a dictator,[1714]
who had power to compel the resignation of all other magistrates.
[1715] Or the senate could directly order the magistrates to retire from

office, with or without a scruple as to the auspices.[1716] It rewarded


successful commanders with triumphs[1717] at the expense of the
state[1718] and in time of especial danger it armed the consuls with
absolute imperium.[1719] In the face of an opposing force so vast as
here indicated, the assemblies for a time made slow headway. The
development of their functions through the period between the
Valerian-Horatian and the Hortensian legislation will now be
followed.

I. Elective

Appreciating the great possibilities of the tribunate, the patricians


attempted to fill the college with men of their own rank. If we are to
trust our authorities, an effort was made in that direction immediately
after the fall of the decemvirs, when it was agreed that the pontifex
maximus should preside over the tribal comitia for the election of the
first tribunes of the plebs under the restored constitution.[1720]
Among the men chosen were some so closely attached to patrician
interests that at the end of the year they secured the election of
successors who coöpted into the college two patricians of consular
rank.[1721] At this crisis there was great danger that the college of
tribunes might become a possession of the patricians. It was
averted, however, by a certain tribune, L. Trebonius, who succeeded
in carrying a law that whoever presided over the comitia for the
election of tribunes should continue till ten tribunes were elected, the
object being to preclude coöptation. The tribune who violated this
law was to be burned alive.[1722] That part of Livy’s account which
assigns the author of the law to the year 448 is improbable. A half
century later (401) he informs us, it happened that two places left
vacant in the college were again filled by the coöptation of patricians
and, by the strangest accident, a Cn. Trebonius was among their
colleagues. His complaint that the Trebonian plebiscite and the leges
sacratae were being violated had, in Livy’s opinion,[1723] no result.
Probability greatly favors the later date for the law, especially as an
instance of coöptation is mentioned between the two dates;[1724] the
name of Trebonius or of one or more patricians in the college of
448[1725] was enough to lead the historian astray. The later date fits
well the political condition of the time; the patricians, almost
succeeding in monopolizing the military tribunate with consular
power, proceeded to lay hands on the plebeian tribunate—a far more
valuable prize. After 401, however, the Trebonian law proved
effective in excluding patricians from the tribunate of the plebs.
Henceforth all plebeian officials were elected by the tribes under
tribunician presidency.[1726]
In granting the tribal assembly a share in law-making the senate
must have hoped to convert it into an organ of the patrician
government. Shortly after the Valerian-Horatian legislation,
accordingly, patrician magistrates began to convoke this assembly
for the election of quaestors (447)—previously appointed by the chief
magistrates[1727]—and afterward of curule aediles (367),[1728]
military tribunes,[1729] and other minor officials.[1730]

II. Judicial

a. TRIBUNICIAN

By an arrangement referred to in the preceding chapter,[1731]


partly based on the law of the Twelve Tables relating to capital
cases[1732] and further developed in 449, possibly by an article of
the Valerian-Horatian statute, a division of popular jurisdiction was
made between the centuriate and the tribal assemblies, on the basis
of a distinction in the nature, not of the crime, but of the penalty.[1733]
The tribes punished with fines, the centuries with the extreme
penalty—banishment or death, to which was always added total
confiscation of property. The prosecutor, accordingly, first thought of
the penalty, to which he then attempted to adapt the form of action.
The people were not guided to their decision by legal formalities and
precedents,[1734] but were often swayed by the emotions of favor
and anger.[1735] No juror’s oath was imposed upon them to decide
according to law and without personal or party bias, such as the
Athenian heliasts swore. If the prosecutor, in addition to believing
that the case merited the severest punishment, hoped to persuade
the people to vote the death or banishment of the accused, he
pronounced a capital condemnation, and the case was accordingly
appealed to the centuriate assembly. If on the other hand he doubted
whether he would be able sufficiently to excite the anger of the
populace against the accused, however heinous the crime may have
been in his own opinion, he satisfied himself with a finable action,
and allowed it to go before the tribes. Sometimes while the evidence
was being taken in the latter form of action, the rage of the people
was so inflamed against the accused that they clamored for the
extreme penalty, in which case the prosecutor might change the form
of action agreeably to their wishes.[1736] The greater ease with which
the tribes were summoned, together with the growing disinclination
of the people to pronouncing the death penalty, induced the
magistrates more and more to make use of finable rather than of
capital actions. Fines were generally estimated in cattle and sheep
till in 430 the consuls L. Julius and L. Papirius Crassus passed a
centuriate law establishing a hundred pounds of copper as
equivalent to an ox and ten to a sheep.[1737] Probably the same law
provided that no fine should exceed half the value of the estate on
which it was levied.[1738]
For the period immediately following 449 the authorities—
uncritically as will soon be made evident—assign to the tribunes of
the plebs a formidable jurisdiction in finable actions, not only over
private persons,[1739] but also, on account of official misconduct,
over functionaries of every grade from ambassadors and tresviri
coloniae deducendae to consuls and dictators. Such prosecutions
were usually brought after the retirement of the accused from office.
A chronological list of the principal cases reported will be instructive.
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!

ebooknice.com

You might also like