My Account Log in

1 option

Cellular IoT : A Practical Guide for Software Developers, Electrical Engineers, and Project Managers.

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Brenner, Matthew A.
Language:
English
Subjects (All):
Internet of things.
Wireless communication systems.
Physical Description:
1 online resource (515 pages)
Edition:
1st ed.
Place of Publication:
Newark : John Wiley & Sons, Incorporated, 2025.
Summary:
Detailed, practical guidance for implementing IoT cellular network connectivity solutions for software developers and electrical engineers, and project managers.Focusing exclusively on using cellular connectivity for IoT devices, Cellular IoT presents a flexible approach, using algorithms and software designs, to drastically reduce the complexity.
Contents:
Cover
Half Title Page
Title Page
Copyright
Table of Contents
Preface
Acknowledgement
Chapter 1: Introduction
1.1 Wireless Connectivity Alternatives
1.2 Goals
1.3 The Fundamental Problem
1.4 Audience
1.5 Recommended Reading
1.6 Can One Size Fit All?
1.7 Hardware History
1.8 On-the-move Connectivity Problems
1.9 Reference Implementations
1.10 Reference Microcontroller/OS Platform
1.11 Reference Cellular Communication Modules (CCMs) Family
1.12 A Few Words on Advice, Practices, and Efficiency
1.12.1 Best Practice or Good Practice
1.12.2 Efficiency Is a Large Umbrella
1.12.2.1 Spatial and Temporal Efficiency
1.12.2.2 Data Efficiency
1.12.2.3 Developmental Efficiency
1.13 3G, 4G, 5G, and 6G
Chapter 2: Platforms, Tools, and Debugging
2.1 Importance of Toolchain Selection
2.2 An Expanded View of the Tool Chain
2.3 Computing/OS Platforms
2.4 Programming Language Choices
2.5 Running the Same Code on Development Computer and IoT Device
2.6 Running IoT Connectivity Code in a Debugger
Chapter 3: Cellular Network Basics
3.1 Standards
3.2 What Do Cellular Networks Do?
3.3 Are Cellular Networks Wireless?
3.4 What Is a Cell? What Is a Sector?
3.5 Omnidirectional Cellular Coverage
3.6 Cell Towers
3.7 How Are Cellular Networks Identified?
3.8 How Are IoT Devices Identified?
3.9 eNodeB IDs and Cell #
3.10 Tracking Areas and Paging
3.11 Frequency and Modulation
3.11.1 Modulation
3.11.1.1 Radio Telegraphy
3.11.1.2 Amplitude Modulation (AM Radio)
3.11.1.3 Frequency Modulation (FM Radio)
3.11.1.4 Phase Modulation
3.12 Spectral Efficiency
3.13 Error Detection
3.13.1 Luhn Algorithm
3.14 Error Correction
3.15 LTE Modulation Techniques
3.15.1 Binary Phase Shift Keying (BPSK).
3.15.2 Quadrature Phase Shift Keying (QPSK)
3.15.3 Quadrature Amplitude Modulation (QAM)
3.16 Bandwidth and Latency
3.17 Range
3.18 Frequency Bands
3.18.1 Frequency Affects Range
3.19 Radio Access Technologies (RAT) and Categories
3.20 SIM Cards
3.21 What Happens When a Cellular Modem Switches On?
3.21.1 Network Selection, Cell Selection, Camping, and Cell Reselection
3.21.2 Network Registration
3.22 Handoff (Also Called Handover)
3.22.1 Maintaining Connectivity
3.22.2 Load Balancing
3.23 Multiple Access
3.24 Timing Advance
3.24.1 Why Is Timing Advance Useful?
3.24.2 How Accurate Are Distance Estimates Using Timing Advance?
3.24.3 Timing Advance Band Depth and Maximum Range
3.25 Expressing Power
Chapter 4: SIM/USIM Card Basics
4.1 Mobile Virtual Network Operators (MVNOs)
4.2 Size
4.3 Native Versus Multi-SIMs or MNO Versus MVNO
4.4 Home Versus Roaming Access
4.5 SIM Factors Affecting Price and Coverage
4.5.1 How Much Do SIM Cards Cost?
4.5.2 Is There a Monthly Activation Fee?
4.5.3 Are There Fees for Activating and/or Deactivating SIM Cards?
4.5.4 How Much Does Data Cost?
4.5.5 Is the Monthly Data "Pooled"?
4.5.6 Are There Fees for Deactivated (but Not Terminated) SIMs Cards?
4.5.7 Is There a Not-yet-activated Fee?
4.6 Text Messages (SMS)
4.7 Usage Limits
4.8 Firewalls
4.9 Replacing SIMs and/or Network Providers
4.10 Access Point Name (APN)
Chapter 5: Verify Cellular Connectivity
5.1 Preparation
5.1.1 Adequate Power
5.1.2 Activated SIM Card
5.1.3 Base Station in Range
5.1.4 SIM Card Authorization
5.1.5 Band Configuration
5.1.6 RAT Configuration
5.1.7 Automatic Registration
5.2 Try to Auto-register
5.3 What Can Go Wrong?
5.3.1 Operating System Interference
5.3.2 Communicating with Modem.
5.3.3 Malformed AT Commands
5.3.4 Parsing Responses to AT Commands
5.3.5 Timing Problems
5.3.6 Unset or Incorrect Access Point Name (APN)
5.3.6.1 Pitfall: Failing to Explicitly Set the APN
5.4 Modem Configuration for Auto-registration
Chapter 6: Let's Move Some Data
6.1 Low-level Sockets or High-level Protocols
6.2 Verify ServerServer Is Running
6.3 Verify EchoServer Is Running
6.4 USB or UART?
6.4.1 Pitfall: USB Device Names Are Not Fixed and Should Not Be Hard Coded
6.5 AT Commands-A Troubled Past
6.6 Unsolicited Response Codes (URCs)
6.7 A Handy Modem Program
6.8 AT Commands Manuals
6.9 Communicating with the Cellular Modem
6.10 Getting EchoServer Information from ServerServer
6.10.1 Before Step 1: Enable Unsolicited Response Codes (URCs)
6.10.2 Step 1: Configure PDP Context for HTTP GET
6.10.3 Step 2: Configure a PDP Context
6.10.3.1 Test Commands
6.10.3.2 Read Commands
6.10.3.3 Write Commands
6.10.4 Step 3: Activate the PDP Context
6.10.5 Step 4: Allow/Disallow Response Header for HTTP GET
6.10.6 Step 5: Set HTTP(S) URL
6.10.7 Step 6: Send HTTP(S) GET Request
6.10.8 Step 7: Read HTTP(S) Response
6.10.9 After Step 7: Deactivate the PDP Context
6.10.10 Using Modem to Interact with ServerServer
6.11 Bouncing Data Off EchoServer
6.11.1 Before Step 1: Enable Unsolicited Response Codes (URCs)
6.11.2 Step 4: Open a TCP Client Socket Connection
6.11.3 Step 5: Send Mixed-case Text to EchoServer
6.11.4 Step 6: Read (Uppercase) Response from EchoServer
6.11.5 Step 7: Close TCP Client Socket Connection
6.11.6 Step 8: Deactivate PDP Context
6.12 No Problems Is Bad Luck
Chapter 7: Cellular Connectivity Regions
7.1 How Geography, Topology, and Population Density Affect Connectivity
7.1.1 Geography and Topology
7.1.2 Population Density.
7.2 Region Categories
7.2.1 Rural
7.2.2 Rural Town
7.2.3 Flat Farmland/Flat Arid
7.2.4 Mountainous
7.2.5 Suburban
7.2.6 Dense City
7.2.7 Interstate Highway
7.2.8 Uninhabited
Chapter 8: Cellular Communication Modules (CCMs)
8.1 CCM Worldwide Market Share
8.2 Frequency Band Usage
8.3 Protocol Implementation
8.4 Similarities and Differences Across CCMs
8.4.1 Single or Dual AT Command Channels
8.4.2 Different AT Command Sets
8.4.3 Different Response Times for Similar or Identical Commands
8.4.4 Differing Response Formats
8.4.5 Differing Responses for Compound Statements
8.4.6 Different Timing Requirements
8.4.7 AT Commands Are Not Thread-safe
8.4.8 Support for Different Protocols
8.5 Consider the Whole CCM Family
8.6 CCM Firmware Bugs
8.7 CCMs Are a Lot Like Sensors: Imprecise and Not Entirely Reliable
Chapter 9: AT Commands (A New Approach)
9.1 Purpose of AT Commands
9.2 Problems of AT Commands
9.2.1 Maximum Response Time for an AT Command
9.3 Traditional Solution to Executing AT Commands and Extracting Responses
9.4 Command Independent Processing (CIP)
9.4.1 The Central Observation Underlying CIP
9.4.2 Fundamental Elements of CIP
9.4.2.1 AtParams
9.4.2.2 AtCommand
9.4.3 AT Commands in CIP
9.4.3.1 Step 1: Define a Name for a Command
9.4.3.2 Step 2: Create a Set of Parameters for Each Command
9.4.3.3 Step 3: Store the Command Name and AtParams Object in a Map
9.4.3.4 Step 4: Create a Command Object
9.4.3.5 Step 5: Pass Arguments to the Command Object (if Necessary)
9.4.3.6 Step 6: Perform the Command
9.4.3.7 Step 7: Verify Success or Failure
9.4.3.8 Step 8: Extract Response Information
9.4.3.9 AT Commands with Parameters
9.4.3.10 Timing Out
9.4.4 Using CIP Across CCM Families and Across Manufacturers.
Chapter 10: CIP Design and Details
10.1 Pseudocode Conventions
10.1.1 Identifier Names
10.1.2 Angle Brackets
10.1.3 Constructors
10.1.4 Dot Operator
10.1.5 Unified Modeling Language (UML)
10.2 A Note on Objected-orientation and Threads
10.3 AT Command Basics
10.3.1 Echoing
10.3.2 Enable/Disable Response Codes
10.3.3 Short or Long Response Codes
10.3.4 Line Terminators
10.3.5 Housekeeping
10.4 Categories of Responses to AT Commands
10.4.1 OK_ONLY
10.4.2 TEXT_OK
10.4.3 AFTER_COLON
10.4.4 OK_PLUS_AFTER_COLON
10.4.5 MULTI_RECEIVE, MULTI_SEND, and MULTI_AFTER_COLON
10.5 Details of Command Independent Processing (CIP)
10.5.1 AtStep Purpose
10.5.2 AtStep Attributes
10.6 A "Factory Method" for Creating AtCommand Objects
10.7 Performing AT Commands
10.7.1 Why AT Commands Fail
10.7.2 Timing Out
10.7.3 Details of the Execute Method
10.7.4 Response Length
10.7.5 Hardware Timing
10.7.6 Combining Parameter Settings-Method Chaining
10.7.7 Assessing Success and Multiple Tries
10.7.8 Multi-line AT Commands-AtStep
10.7.9 A Second Example with Regular Expressions
10.7.10 Integrating AtStep into the Execute Methods
10.8 AT Commands for Multiple Modems
10.8.1 The Simplest Case
10.8.2 Connectors
10.8.2.1 All Connectors Are Also Threads
10.8.2.2 Connectors Are Created Using a Factory Method
10.8.2.3 Custom AT Commands Are Added in Static Blocks of Connectors
10.8.2.4 Where to Override Methods or Parts of Methods
10.8.3 An Asymmetrical Case-AtParamsNoOp
Chapter 11: Geographical Coverage, Signal Strength, and Quality
11.1 Radio Access Technologies (RATs)
11.2 Cellular Network Coverage Maps
11.3 Signal Strength and Quality: RSSI, RSRP, RSRQ, SINR
11.3.1 RSSI and RSRP
11.3.2 RSRQ
11.3.3 SINR.
11.3.4 Using Modem to Report Signal Strength and Quality.
Notes:
Description based on publisher supplied metadata and other sources.
ISBN:
1-394-32966-0
1-394-32968-7
OCLC:
1590082565
Publisher Number:
CIPO000388689

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account