/PingStatus

Small IoT device that pings a set of IP addresses and lights up LEDs depending on their status

Primary LanguageC++MIT LicenseMIT

PingStatus [WIP]

This is a small IoT device that pings a set of IP addresses and lights up LEDs depending on their status.
It can be used to check if a service or website is reachable, or if a device has entered or left the local network.
The firmware is still unstable and might not work at times. Please check back later for an updated version.


Features:

  • Observes any amount of clients by pinging them via ICMP (private / public IP) or an HTTP request (URL)
  • Automatically dims LEDs using PWM based on the ambient light level for optimal brightness level
  • Automatically shuts off LEDs for even less light pollution at night
    • Momentary button to temporarily disable auto-shutoff mode
  • Internal clock is updated with NTP, so it is always consistant and relatively accurate
  • Many configuration settings for setting it up to exactly suit your needs



Table of Contents:





Parts list:

Required parts:

  • ESP board (ESP-8266 for example)
    • Note: it needs to have at least 1 analog pin and 1 digital pin per observed client, plus 1 for the optional push button
  • Pre-perforated circuit board and a few wires for bridging
  • Micro USB cable and USB power supply

Parts needed per observed client:

  • LED of any color
  • ~150 Ω resistor
    • Value depends on the forward voltage of the LED but 150 Ω should fit most

Optional parts:

  • Light Dependent Resistor / Photoresistor (LDR)
    • Wavelength: optimally around 480-540 nm - Resistance: doesn't really matter as a multiplier can be configured
  • 10 kΩ pull-down resistor for LDR

These parts can be skipped if you disable auto dimming in the config


  • Momentary push button or limit switch (normally open)
  • 10 kΩ pull-down resistor for push button

These parts can also be skipped if you don't want to be able to temporarily disable the auto-shutoff mode



Setup:

  1. Install the Arduino IDE
  2. Add your ESP board's URL in the IDE preferences by following this guide
  3. Install your ESP board's firmware in the board manager
  4. Install the following libraries by downloading them and extracting them to <Arduino folder>/libraries (usually under "Documents"):
  5. Download the PingStatus repository and extract it somewhere
  6. Rename the file config.h.template to config.h
  7. Edit config.h to provide your WiFi settings and configure everything else to your needs
  8. Open the .ino file with the Arduino IDE
  9. Connect your ESP board to your computer via USB and wait for the drivers to be installed and ready
  10. Match up the board settings under Tools with your ESP board and select the right COM or ttyUSB port
  11. Hit the upload button
  12. Open the serial monitor with Ctrl Shift M to verify that it works
    • If the output is garbled, reset the board. If it is still unreadable, make sure the BAUD rate is set to 115200.



Build:

Build Guide:

just connect the thingies to the thingies lol


Circuit Schematic:

[Schematic coming soon]


Enclosure 3D Model:

[Model coming soon]




Made with ❤️ by Sv443
If you like PingStatus, please consider supporting the development