/zabbuino

Zabbix agent for Arduino

Primary LanguageC++

Zabbuino

An Zabbix agent firmware for Arduino

Actual release is v1.4 (AVR only).

Testing release is v1.5 (AVR & ESP8266 & ESP32 here.

Compilation tested on Arduino IDE 1.6.11 (from https://www.arduino.cc/) and above.

Note: Zabbuino is not any kind of Arduino library. It is a "ready-to-use" project. Rename "zabbuino-master" dir to "zabbuino" just after cloning/downloading/unzipping/etc. to avoid compilation error.

All new features can be found on experimental branch. Old releases placed in old_releases branch.

See change log before update.

You can help to the project by providing new ideas and/or hardware to testing and integrating. Or yoг can just donate for further development. Contact to me via email or use Yandex.Money service.

Zabbuino: example of chart

Zabbuino: example of chart

Implemented:

  • A few Zabbix agent commands;
  • Wraps a lot of Arduino Language functions;
  • OneWire and I2C bus scaning to detect sensors ID or adresses;
  • Network DHCP and static IP support;
  • Remote configuring & rebooting, system protection;
  • Storing system setting in EEPROM;
  • AVR WatchDog feature support;
  • MCU and runtime metrics (current/min/max VCC, current/min RAM, uptime, MCU name) obtaining;
  • Support W5100 and ENC28J60 network modules, drivers is implemented to source code;
  • Support one or more DS18X20 thermometer;
  • Support MLX90614 infrared thermometer;
  • Support MAX6675 termocoupler ADC;
  • Support DHT11/21/22/33/44 or AM2301/2302 humidity and temperature sensors;
  • Support SHT2X humidity and temperature sensors serie;
  • Support BMP180/085, BMP280/BME280 pressure and temperature sensors;
  • Support BH1750, MAX44009, TSL2561 light sensors;
  • Support ADPS9960 light/color sensor;
  • Support Telaire T67xx family CO2 sensor;
  • Support Winsen MH-Z14/MH-Z19/MH-Z19B, ZE08-CH2O, ZE14-O3 (ZE25-O3, ZE27-O3), ZP14 (ZC05), ZE15-CO, ZE16-CO sensor modules;
  • Support VEML6070 ultraviolet sensor;
  • Support DS3231 & PCF8563 RTC I2C module;
  • Support incremental encoder (on interrupt's pin);
  • Support any devices that need to use hardware interrupt - tilt switches, dry contacts, water flow sensor, and so;
  • Support INA219 power/current monitor;
  • Support HC-SR04 ultrasonic ranging module;
  • Support any other analog or digital sensor via analogread /digitalread commands;
  • Support indicators, that connected to MAX7219, 8x8 Led matrix for example;
  • Support simple I2C devices (expanders, digital linear potentiometers, etc.);
  • Support One- or Two- (and maybe Four-) lines LCD Character displays with PC8574 I2C expander;
  • Support any actuators or indicators via digitalwrite command;
  • Support simple operations with digital servos and relays;
  • Support PCA9685 16 channel PWM controller;
  • Support WS2801 Led stripe and any indicators on shift registers via extended shiftout command;
  • Support WS2812 Led stripe;
  • Support Plantower PMS-A003 (and similar) dust sensors;
  • Support Nova Fitness SDS011 (and similar) dust sensors;
  • Support Wuhan Cubic PM2012 (and similar) dust sensors;
  • Support DFPlayer Mini;
  • Support PZEM-004 energy meter;
  • Support APC Smart UPS (with RS232 interface);
  • Support Megatec UPS's (with RS232 interface);
  • Simulate various vendor's IR transmitters.

Minimum requirements:

  • Arduino board with ATMega328 & ENC28J60 or W5100 Ethernet Module.

Tested with:

  • Arduino Mini Pro / Nano / Duemilanove (ATmega328 MCU, 5V), Arduino Micro (ATmega32u4);
  • ENC28J60 mini module & ENC28J60 shield for Arduino Nano (5V both), Ethernet Shield (W5100), Mini Red W5100 Ethernet Module (5V), WIZ811MJ Ethernet module (3.3V);
  • SW-520D sensors, encoders (EC11), buttons & etc;
  • Sensors: DS18B20, AM2302 (DHT22), AM2320, BMP180, BME280, SHT21 (SI7021), BH1750, MAX44009, TSL2561, ADPS9960, MH-Z19B, ZE08-CH2O, ZE15-CO, T6703, VEML6070, INA219, HC-SR04, Plantower PMS-A003, PM2012, SDS011, MLX90614, MAX6675;
  • MAX7219 8x8 LED module & 8-Digit LED Display Module;
  • LCD 2002 (Winstar) & 2004 (Generic) displays with PC8574 I2C convertor;
  • PCF8574 I2C expander;
  • MCP4725 I2C module;
  • PCF8591 I2C module;
  • WS2801, WS2812 pixel modules
  • PZEM-004 energy meter;
  • DFPlayer Mini;
  • RS-232 module;
  • Smart-UPS 1500, APC Smart-UPS 2200 RM;
  • may be i forget someting...

Manuals:

User cases:

You can also download templates for Zabbix 2.4.x