Arduino Uno + MAX485 module + any RS485 soil moisture sensor.
#include <openwire.h> // Define serial port for RS485 (use Serial1 on Mega, SoftwareSerial on Uno) #define RS485 Serial openwire.h library download arduino
if (bus.transaction(request, sizeof(request), response, sizeof(response))) // successfully received framed response int soilMoisture = (response[3] << 8) else Serial.println("No response or CRC error"); Arduino Uno + MAX485 module + any RS485 soil moisture sensor
void loop() byte request[] = 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x31, 0xCA; byte response[20]; Here’s how to fix it
If compilation succeeds, the library is correctly installed. This is the most common error. Here’s how to fix it. ❌ Error Message: fatal error: openwire.h: No such file or directory #include <openwire.h> ✅ Solutions: | Problem | Fix | |---------|-----| | Wrong case | Filename is case-sensitive on Linux/Mac. Use #include <OpenWire.h> if the file is capitalized. Check actual filename. | | Folder nesting | You might have libraries/OpenWire/OpenWire-master/openwire.h . Move files up one level. | | IDE not restarted | Always restart Arduino IDE after adding libraries manually. | | Wrong library | You needed Wire.h (standard I2C). Try changing to #include <Wire.h> . | Using openwire.h in a Real Project – RS485 Example Let’s build a minimal example to read a Modbus-like sensor using OpenWire’s framing.