1 option
Cellular IoT : A Practical Guide for Software Developers, Electrical Engineers, and Project Managers.
- 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.