aboutsummaryrefslogtreecommitdiff
path: root/Mussel/Mussel.h
blob: 79f501747566d4da304140dfbfd62bc31b368dd0 (plain)
  1. // SPDX-FileCopyrightText: 2025 Amal Mazrah <mazrah@ruc.dk>
  2. // SPDX-FileCopyrightText: 2025 Jonas Smedegaard <dr@jones.dk>
  3. // SPDX-FileCopyrightText: 2025 Mennatullah Hatim Kassim <stud-mennatulla@ruc.dk>
  4. // SPDX-FileCopyrightText: 2025 Noor Ahmad <noora@ruc.dk>
  5. // SPDX-FileCopyrightText: 2025 Tanishka Suwalka <tanishkas@ruc.dk>
  6. // SPDX-License-Identifier: GPL-3.0-or-later
  7. /// Mussel - a small library for Arduino to emulate a mussel biosensor
  8. ///
  9. /// @version 0.0.1
  10. /// @see <https://app.radicle.xyz/nodes/seed.radicle.garden/rad:z2tFBF4gN7ziG9oXtUytVQNYe3VhQ/tree/Mussel/README.md>
  11. /// @see <https://moodle.ruc.dk/course/view.php?id=23504>
  12. #ifndef Mussel_h
  13. #define Mussel_h
  14. #include "Arduino.h"
  15. // seconds
  16. #define MUSSEL_NORMAL_PACE 50U
  17. #define MUSSEL_STRESS_PACE 10U
  18. // milliseconds
  19. #define MUSSEL_DEBOUNCE_DELAY 50U
  20. class Mussel {
  21. public:
  22. // Default constructor
  23. Mussel(const int attitude);
  24. // Constructor for attitudes using an input pin
  25. Mussel(const int attitude, const uint8_t pin);
  26. // Constructor for attitudes using an input pin and a sensor type
  27. Mussel(
  28. const int attitude,
  29. const uint8_t pin,
  30. const uint8_t type);
  31. void begin();
  32. String desc();
  33. byte read();
  34. String debug();
  35. private:
  36. int _attitude;
  37. int _pin;
  38. bool _boolState;
  39. byte _count;
  40. unsigned long _time;
  41. #ifdef DHT_H
  42. DHT mussel_dht;
  43. #endif
  44. };
  45. #endif