Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Gobot | 8,536 | 20 | 31 | a day ago | 32 | October 30, 2023 | 123 | other | Go | |
Golang framework for robotics, drones, and the Internet of Things (IoT) | ||||||||||
Dht Sensor Library | 1,862 | 12 days ago | 29 | mit | C++ | |||||
Arduino library for DHT11, DHT22, etc Temperature & Humidity Sensors | ||||||||||
Adafruit_sensor | 899 | 13 days ago | 6 | apache-2.0 | C++ | |||||
Common sensor library | ||||||||||
Tinyekf | 864 | 4 months ago | 13 | other | C | |||||
Lightweight C/C++ Extended Kalman Filter with Python for prototyping | ||||||||||
Arduinothread | 829 | 2 years ago | 16 | mit | C++ | |||||
⏳ A simple way to run Threads on Arduino | ||||||||||
Automated Irrigation System | 558 | a year ago | 9 | JavaScript | ||||||
This is the software of an open source automated irrigation system. The complete setup including hardware can be found in the README. | ||||||||||
Sensors Software | 549 | 3 months ago | 204 | C++ | ||||||
sourcecode for reading sensor data | ||||||||||
Awesome Arduino | 453 | 6 years ago | 3 | Shell | ||||||
A curated list of awesome Arduino hardwares, libraries and softwares with update script | ||||||||||
Invensense Imu | 446 | a year ago | 2 | mit | C++ | |||||
Arduino and CMake library for communicating with the InvenSense MPU-6500, MPU-9250 and MPU-9255 nine-axis IMUs. | ||||||||||
St_anything | 439 | 24 days ago | 4 | gpl-3.0 | C++ | |||||
ST_Anything is an Arduino library, sketch, and Device Type that works with your SmartThings ThingShield to create an all-in-one SmartThings device. |
WARNING - SmartThings Web IDE GitHub integration is not available in all countries around the globe.
NOTE - ST_Anything v2.9.9 was tested using Arduino IDE 1.8.16 + ESP8266 v3.0.2
NOTE - ST_Anything v2.9.9 was tested using Arduino IDE 1.8.16 + ESP32 v2.0.3
Recent History:
Note: ST_Anything v2.9.9 was built using the Arduino IDE v1.8.16. Please make sure to upgrade your IDE.
Turn your Arduino UNO/MEGA/MKR1000/MKR1010/NANO33IoT, ESP8266, or ESP32 into Anything you can imagine! ST_Anything is an Arduino library, sketch, and Device Handlers that works with your hardware to create an all-in-one SmartThings device.
THIS DOCUMENT IS A WORK IN PROGRESS! The essential code is all here and has been tested. Documentation is still lacking somewhat, so feel free to submit a pull request to improve this ReadMe as you try to get things working.
New v2.6+ Parent / Child Devices
This package currently implements the following SmartThings Device Capabilities:
Note: Attempting to use all of these at once on an Arduino UNO R3 is likely to result in running out of SRAM on the UNO (the UNO only has 2 kilobytes of RAM.) Using an Arduino MEGA 2560 with 8 kilobytes of SRAM is recommended if you want to run everything at once. The ESP8266, ESP32, and MKR1000, MKR1010, NANO33IoT platforms also have a lot more memory available.
ST_Anything consists of four main parts:
~/Documents/Arduino/
.C:\Users\yourusername\Documents\Arduino
.Arduino/Sketches
folder of the repo.ST_Anything_...
sketch folders into your local Arduino sketches directory. If you haven't created any sketches, you may not see the folder. In this case, feel free to create it.Arduino/libraries
folder of the repo.ST_Anything...
and SmartThings...
folders (as well as ALL of the other library folders) into your local Arduino libraries directory.NOTE: Arduino IDE v1.8.9 + v2.5.2 ESP8266 Board Manager package for the Arduino IDE appears to have corrected the earlier memory leak. Please use this combination of software which has been successfully tested.
WARNING: If you are using an Arduino UNO, you may need to comment out some of the devices in the sketch (both in the global variable declaration section as well as the setup() function) due to the UNO's limited 2 kilobytes of SRAM. Failing to do so will most likely result in unpredictable behavior. The Arduino MEGA 2560 has 8k of SRAM and has four Hardware Serial ports (UARTs). If you plan on using many devices, get an Arduino MEGA 2560, a MKR1000, a MKR1010, a NANO33IoT, a NodeMCU v1.0 ESP8266-12e, or a ESP32 board.
Note: If desired, you can still create all of the Device Handlers manually by copying and pasting code from the GitHub repository files into your ST IDE. Trust me, the Github integration in SmartThings is so much easier! And, you will know when new versions of the DHs are available based on the color of each DH in your list of Device Handlers in the IDE.
Your screen should look like the following image:
Note: If you visit the "Recently" page of your Parent Device in your ST App on your phone, you may get an annoying warning that the setup is not complete. If you've entered all of the required data above, you can safely ignore this message. Once it scrolls off the 'Recently' list, the pop-ups will stop.
Your screen should look like the following image:
Please do not start changing any code before getting one of the examples up and running on both the Arduino/ESP8266/ESP32 and the Device Handlers. It is always best to start with known working code before editing it. This greatly reduces the amount of troubleshooting later.
I have moved away from the old SmartApp Multiplexer + Virtual Devices with the v2.5 release of ST_Anything. I believe the ST Composite Device Handler architecture is far superior and much simpler for all users.
If you are using a W5100 Ethernet Shield with an Arduino, the MAC address must start with '06' in order to be sure you're using a locally administered unicast MAC address. Make sure that you have unique MAC addresses if you use more than one W5100 on your network.
When entering the MAC address into the Device Preferences in your phone's SmartThings App, please be sure to enter it without delimiters (i.e. NO COLONS!), and in UPPERCASE. It should be in the form '06AB02CD03EF' without the quotes. The MAC address will be printed out in the Arduino IDE Serial Monitor window (115200 baud) when the board is restarted.
When using a NodeMCU ESP8266 board, you need to be aware of some GPIO limitations. I have assembled my findings in this image:
When using a ESP32 board, you need to be aware of some GPIO limitations
Please refer to the header files of the ST_Anything library for explanation of specific classes, constructor arguments, etc... ST_Anything devices support inverted logic, default power-on states, debounce logic, etc... Read through the top section of the .h files found on the libraries\ST_Anything... folders for more information!
Look at the documentation in the 'ST_Anything_Multiples_xxxx.ino' files for explanation and examples of the general use of the library.
Note: The ST_Anything v1.6 release was created on 2017-02-11 to make sure everyone can still get back to the original ThingShield-only code if necessary.
Note: If you want the old ST_Anything v2.2 code, please pull it by the v2.2 release number and follow the old v2.2 ReadMe
v2.0 Note: There are some significant changes as compared to the old v1.x platform. A signiciant rewrite of the "SmartThings" Arduino library was completed to incorporate Ethernet communications support. To use ST_Anything v2.x, you must also use all of the other supporting libraries found in this GitHub repository. Included is a the new SmartThings v2.x Arduino library which can be used standalone (examples are included in the library), or in conjunction with the ST_Anything library. v2.6 Note: Version 2.6 builds upon the changes in v2.x to incorporate SmartThings new Composite Device Handler (DH). This new functionality allows one Parent DH to create many Child Devices (using Child DHs). This allows more than one of each SmartThings capability per Arduino. Previously, this was only possible through the use of a Multiplexer SmartApp and virtual devices. The only manual device that has to be create within the ST IDE is the Parent. The ST_Anything Parent DH has been written to automagically create Child Devices that exist, or are added to, the Arduino ST_Anything sketch.