One Wire Ng

1-wire service library. OneWire compatible. Dallas thermometers support.

Internet of Things (IoT)C++BSD-2-Clause

Abstract

One Wire Ng is an open-source Internet of Things (IoT) project. 1-wire service library. OneWire compatible. Dallas thermometers support. The interface allows effortless switch into OneWireNg for projects using OneWire library. See below for details. It is built using C++, Arduino, ESP32, ESP8266. Key capabilities include: All bus activities are performed respecting open-drain character of the 1-wire; 1-wire touch support; Parasite powering support. The complete source code is publicly available on GitHub under the BSD 2-Clause "Simplified" License, making it a useful reference for students building an Internet of Things (IoT) mini project or final-year project.

1. Introduction

The interface allows effortless switch into OneWireNg for projects using OneWire library. See below for details.

This is an 1-wire service library, intended as an alternative for the classic OneWire library. The library provides basic 1-wire services (reset, search, touch, read, write, parasite powering) and may serve for further work while interfacing with various 1-wire devices.

During normal 1-wire activities, the master MCU GPIO controlling the bus is never set high (providing direct voltage source on the bus) instead the GPIO is switched to the reading mode causing the high state seen on the bus via the pull-up resistor.

2. Objective

1-wire service library. OneWire compatible. Dallas thermometers support.

This project demonstrates how C++, Arduino, ESP32 can be applied to a real-world Internet of Things (IoT) problem.

3. Key Features / Modules

  • All bus activities are performed respecting open-drain character of the 1-wire
  • 1-wire touch support.
  • Parasite powering support.
  • Search filtering.
  • Overdrive (high-speed) mode support.
  • Dallas temperature sensors drivers.
  • OneWire compatibility interface.
  • Clear and flexible architecture.

4. Technology Stack

C++ArduinoESP32ESP8266

5. System Requirements

General requirements for this technology stack — check the README for exact versions.

  • Arduino IDE / PlatformIO or a C++ compiler (g++)
  • Target board (e.g. Arduino, ESP32) where applicable
  • Git (to clone the repository)

6. Installation & Setup

git clone https://github.com/pstolarz/OneWireNg.git
cd OneWireNg

Full setup instructions are in the project README.

7. Future Enhancements

Suggested extensions you can add to make this your own project.

  • Add a mobile dashboard using Blynk or Firebase
  • Store readings in a cloud database for history charts
  • Add alerts via SMS / Telegram when thresholds are crossed

8. Viva / Review Questions

Common questions examiners ask for projects in this domain.

  1. Which microcontroller / board and sensors are used and why?
  2. How does the device send data (Wi-Fi, MQTT, HTTP, Bluetooth)?
  3. Where is the sensor data stored and visualised?
  4. How is power consumption managed?
  5. How would you secure the device and its communication?

9. Source Code & License

This project is developed by pstolarz and published on GitHub under the BSD 2-Clause "Simplified" License. Please follow the license terms and credit the original author when you use or modify this code.

Want to build this as your internship project?

Work on an Internet of Things (IoT) project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.

Apply for Internet of Things (IoT) Internship