OneWire
Library for Dallas/Maxim 1-Wire Chips (by PaulStoffregen)
Low-Power
Low Power Library for Arduino (by rocketscream)
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
OneWire
Posts with mentions or reviews of OneWire.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-06-30.
-
Temperature monitor for a small greenhouse
https://github.com/PaulStoffregen/OneWire (for the sensor)
-
Unique ID for Arduinos?
Try looking into the Analog Devices (formerly Maxim, formerly Dallas Semi) DS2401+. Paul Stoffregren's OneWire library should work.
-
DS18B20 isolating problem. I have 4 of these on my breadboard and the code runs fine. One in my fridge, freezer, outside and inside. When I attach them to cables and insert them into the environments, they get reassigned to different 'zones'. How can I force each one to a 'zone'?
Each One Wire device (OWD) has a unique, 64-bit (8-byte) ID that is used to address that particular device. Have a look at the DS18x20 temperature sensor example. You'll see that a search for devices is done. If one is found, its address is stored in a 8-byte array.
-
Connection to ThingSpeak Failed ..
// OneWire DS18S20, DS18B20, DS1822 Temperature Example // // http://www.pjrc.com/teensy/td_libs_OneWire.html // // The DallasTemperature library can do all this work for you! // http://milesburton.com/Dallas_Temperature_Control_Library #include #include #include // Enter a MAC address and IP address for your controller below. // The IP address will be dependent on your local network: byte mac[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; IPAddress ip(192, 168, 1, 70); // ThingSpeak Settings char thingSpeakAddress[] = "api.thingspeak.com"; String writeAPIKey = "xxxxxxxxxxxxxxxxxxxx"; const int updateThingSpeakInterval = 16 * 1000; // Time interval in milliseconds to update ThingSpeak (number of seconds * 1000 = interval) // Variable Setup long lastConnectionTime = 0; boolean lastConnected = false; int failedCounter = 0; // Initialize Arduino Ethernet Client EthernetClient client; // Initialize the Ethernet server library // with the IP address and port you want to use // (port 80 is default for HTTP): EthernetServer server(80);
-
1-Wire unknown any information
There is SWI (Single wire interface) by Atmel for example. The 1-wire protocol is a specific standard. Not sure what standard this chip uses. It probably is 1-wire. Try this https://www.pjrc.com/teensy/td_libs_OneWire.html
-
Has anyone got CapacitiveSensor libarary to work on ESP32?
Paul has other libraries one of which is called OneWire. Apparently we are looking at adding supporting lines similar to the entries in the header files held here
-
I have this EPROM chip I want to reprogram but have no idea where to start. The chip is DS24B33 and it is storing a percentage as far as I’m aware, any help or guidance appreciated
https://github.com/PaulStoffregen/OneWire for example
-
Need help with a DS18B20 thermometer connecting to an ARM board
OneWire.h header file for DS18B20 on Arduino
-
Need help. Get error on "OneWire oneWire(ONE_WIRE_BUS);" stating that; "no matching function for call to 'OneWire::OneWire(int)' ". WTF IS GOING ON!?
Are you not using the standard OneWire library which does have a constructor that takes a pin as an argument ?
Low-Power
Posts with mentions or reviews of Low-Power.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-06-30.
- Temperature monitor for a small greenhouse
-
(Help) Im trying to transmit RF with nRF905 but my code isn’t making it to the end
/* Project: nRF905 Radio Library for Arduino (Low power sensor node example) Author: Zak Kemble, [email protected] Copyright: (C) 2020 by Zak Kemble License: GNU GPL v3 (see License.txt) Web: https://blog.zakkemble.net/transceiver-avrarduino-librarydriver/ */ // This examples requires the low power library from https://github.com/rocketscream/Low-Power // This examples configures the nRF905 library to only use 5 connections: // MOSI // MISO // SCK // SS -> 6 // PWR -> 8 // The following pins on the nRF905 must be connected to VCC (3.3V) or GND: // CE (TRX_EN) -> VCC // TXE (TX_EN) -> VCC #include #include byte mess_Address = {0xB54CAB34}; byte Message[] = {0b00000000, 0b10000001, 0b10000010, 0b10000011, 0b10000100, 0b10000101, 0b10000110, 0b10000111, 0b10001000, 0b10011000, 0b10101000, 0b10111000, 0b11001000, 0b11011000, 0b11101000, 0b11111001, 0b00101001, 0b00111001, 0b01011001, 0b01101001, 0b01111001, 0b10011010, 0b10011011, 0b10011101, 0b10011110, 0b10011111, 0b10101010, 0b11101011, 0b01101011, 0b11101101, 0b11101110, 0b11111111}; char Button = 0; nRF905 transceiver = nRF905(); static bool txDone; // NOTE: In polling mode this does not need to be volatile // Event function for TX completion void nRF905_onTxComplete(nRF905* device) { txDone = true; } void setup() { Serial.begin(115200); Serial.println(F("Getting Transmission ready")); // standby off TODO //pinMode(7, OUTPUT); //digitalWrite(7, HIGH); // pwr //pinMode(8, OUTPUT); //digitalWrite(8, HIGH); // trx //pinMode(9, OUTPUT); //digitalWrite(9, HIGH); // This must be called first SPI.begin(); // Minimal wires (polling mode) // Up to 5 wires can be disconnected, however this will reduce functionalliy and will put the library into polling mode instead of interrupt mode. // In polling mode the .poll() method must be called as often as possible. If .poll() is not called often enough then events may be missed. transceiver.begin( SPI, 10000000, 10, 7, // CE (standby) pin must be connected to VCC (3.3V) 9, // TRX (RX/TX mode) pin must be connected to VCC (3.3V) (force TX mode) 8, // PWR 4, // Without the CD pin collision avoidance will be disabled 3, // Without the DR pin the library will run in polling mode and poll the status register over SPI. This also means the nRF905 can not wake the MCU up from sleep mode 2, // Without the AM pin the library must poll the status register over SPI. NULL, // Running in polling mode so no interrupt function NULL // Running in polling mode so no interrupt function ); transceiver.events( nRF905_onTxComplete, NULL, NULL, NULL ); // Low-mid transmit level -2dBm (631uW) transceiver.setTransmitPower(NRF905_PWR_10); transceiver.setChannel(106); transceiver.setBand(NRF905_BAND_433); transceiver.setAutoRetransmit(false); transceiver.setCRC(NRF905_CRC_16); transceiver.setPayloadSize(32, 0); // Will transmit 5 byte payloads, receive 32 byte payloads transceiver.setAddressSize(4, 4); transceiver.write(mess_Address, Message, sizeof(Message)); Serial.println(F("Transciever Started")); } void loop() { // Write data to radio transceiver.write(mess_Address, Message, sizeof(Message)); txDone = false; Serial.println(F("Waiting for input")); while (Serial.available() == 0) { } Button = Serial.parseInt(); if ((Button >= 0) && (Button <= 9)) { // This will power-up the radio and send the data transceiver.TX(NRF905_NEXTMODE_TX, false); // Transmission will take approx 6-7ms to complete (smaller paylaod sizes will be faster) while (!txDone) { transceiver.poll(); Serial.println(F("waiting")); } Serial.println(F("Transmission Completed")); transceiver.powerDown(); // NOTE: // After the payload has been sent the radio will continue to transmit an empty carrier wave until .powerDown() is called. Since this is a sensor node that doesn't need to receive data, only transmit and go into low power mode, this example hard wires the radio into TX mode (TXE connected to VCC) to reduce number of connections to the Arduino. // TODO // Sleep for 64 seconds //uint8_t sleepCounter = 8; //while(sleepCounter--) // Sleep for 1 second delay(10000); } // Transmission done, power-down the radio }
-
Anyone have a good link to a guide to using sleep mode and interrupts?
I've used this library; it's simple and easy to use. See the example code in the library.
What are some alternatives?
When comparing OneWire and Low-Power you can also consider the following projects:
TinyLoRa - LoRaWAN Library
CayenneLPP - Library for Arduino compatible with Cayenne Low Power Payload
Arduino-Temperature-Control-Library - Arduino Temperature Library
CapacitiveSensor - Detect touch or proximity by capacitve sensing