1
0
mirror of https://github.com/arduino/library-registry.git synced 2025-09-10 03:31:53 +03:00
Commit Graph

4984 Commits

Author SHA1 Message Date
dependabot[bot]
d0e1d87083 Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-12 09:25:22 +00:00
abdullahtemel97
9f72658fb4 Update repositories.txt (#6752) 2025-08-11 17:32:11 +00:00
German-source
56e2725c68 Update repositories.txt (#6751) 2025-08-11 12:02:53 +00:00
Per Tillisch
4702b86b7d Merge pull request #6720 from arduino/dependabot/github_actions/actions/download-artifact-5
Bump actions/download-artifact from 4 to 5
2025-08-11 00:59:43 -07:00
yosob
1b7d7e8593 Update repositories.txt (#6750) 2025-08-11 03:39:16 +00:00
Riley Cornelius
7fbdb64c9c Update repositories.txt (#6749) 2025-08-10 22:32:59 +00:00
tobiastl
a4de2232cc Update repositories.txt (#6748) 2025-08-10 14:34:31 +00:00
jaikulk14
7736b3047b Add QuickAPConnect to Arduino Library Manager (#6746)
* Create QuickAPConnect.yml

* Update repositories.txt

* Delete libraries/QuickAPConnect.yml
2025-08-10 14:15:35 +00:00
Limor "Ladyada" Fried
e52d040316 Update repositories.txt (#6745)
https://github.com/adafruit/Adafruit_BMP5xx
2025-08-10 13:16:35 +00:00
Limor "Ladyada" Fried
df1dedc0cd Update repositories.txt (#6744)
https://github.com/adafruit/Adafruit_bq25628e
2025-08-10 12:31:28 +00:00
junan8733
98d9ae9ea6 Update repositories.txt (#6743) 2025-08-10 10:31:39 +00:00
Max
df31007580 Update repositories.txt (#6740) 2025-08-10 02:54:40 +00:00
Riley Cornelius
103e316f6e Update repositories.txt (#6739) 2025-08-10 01:20:59 +00:00
MQuero
94a604e50a Update repositories.txt (#6738) 2025-08-09 20:09:40 +00:00
ntirushwajeanmarc
0af5ba5c1c Update repositories.txt (#6736)
# CircuitNotion Arduino Library

A powerful Arduino library for connecting ESP8266/ESP32 microcontrollers to the CircuitNotion IoT platform. This library enables seamless sensor data collection, device control, and real-time communication with your CircuitNotion dashboard.

## 🚀 Features

- **Real-time Communication**: WebSocket-based bidirectional communication with CircuitNotion servers
- **Dashboard Integration**: Full integration with the CircuitNotion web dashboard at [iot.circuitnotion.com](https://iot.circuitnotion.com)
- **Sensor Management**: Easy setup for temperature, humidity, light, motion, and custom sensors
- **Device Control**: Map dashboard devices to local pins for automatic control
- **Auto-Reconnection**: Robust connection handling with automatic reconnection
- **Change Detection**: Intelligent sensor reading optimization to reduce bandwidth
- **Memory Efficient**: Optimized for resource-constrained microcontrollers
- **Production Ready**: Comprehensive error handling and diagnostics

## 📋 Getting Started - Complete Setup Guide

### Step 1: Dashboard Account Setup

1. **Visit the CircuitNotion Dashboard**

   - Go to [iot.circuitnotion.com](https://iot.circuitnotion.com)
   - Click "Sign Up" to create a new account
   - Fill in your details (name, email, password)
   - Verify your email address

2. **Initial Dashboard Setup**
   - Log in to your new account
   - Complete your profile setup
   - Choose your subscription plan (free tier available)

### Step 2: Create Your Devices

Before writing any Arduino code, you need to create devices in your dashboard:

1. **Navigate to Devices**

   - In the dashboard, click "Devices" in the main navigation
   - Click "Add New Device"

2. **Create Your First Device**

   ```
   Device Name: Living Room Light
   Device Type: Light/LED
   Location: Living Room
   Description: Main ceiling light
   ```

   - Click "Create Device"
   - **Note the Device Serial** (e.g., `LIGHT_001`) - you'll need this for Arduino code

3. **Create More Devices** (repeat for each physical device)

   ```
   Temperature Sensor Device:
   Name: Living Room Temperature
   Type: Sensor
   Location: Living Room
   Serial: TEMP_001

   Humidity Sensor Device:
   Name: Living Room Humidity
   Type: Sensor
   Location: Living Room
   Serial: HUM_001
   ```

### Step 3: Add Your Microcontroller

1. **Navigate to Microcontrollers**

   - Click "Microcontrollers" in the dashboard navigation
   - Click "Add New Microcontroller"

2. **Configure Your Microcontroller**
   ```
   Name: Home Sensor Hub
   Description: ESP8266 controlling living room devices
   Location: Living Room
   Board Type: ESP8266
   ```
   - Click "Create Microcontroller"
   - **Copy the API Key** - this is crucial for Arduino code

### Step 4: Arduino Library Installation

#### Option A: Arduino Library Manager

1. Open Arduino IDE
2. Go to **Tools** → **Manage Libraries**
3. Search for "CircuitNotion"
4. Click **Install**

#### Option B: Manual Installation

1. Download the library ZIP from GitHub
2. In Arduino IDE: **Sketch** → **Include Library** → **Add .ZIP Library**
3. Select the downloaded ZIP file

#### Install Dependencies

The library requires these dependencies (install via Library Manager):

- `ArduinoJson` (6.21.3 or later)
- `WebSocketsClient` (2.3.7 or later)
- `DHT sensor library` (1.4.4 or later) - for temperature/humidity sensors

### Step 5: Arduino Code Setup

#### Basic Example

```cpp
#include <CircuitNotion.h>

// WiFi credentials
const char* ssid = "YourWiFiNetwork";
const char* password = "YourWiFiPassword";

// CircuitNotion configuration (from your dashboard)
const char* api_key = "your-microcontroller-api-key";  // From Step 3
const char* microcontroller_name = "Home Sensor Hub";   // From Step 3

// Device serials (from Step 2)
const char* light_device_serial = "LIGHT_001";
const char* temp_device_serial = "TEMP_001";

void setup() {
    Serial.begin(115200);

    // Setup WiFi
    CN.setWiFi(ssid, password);

    // Configure CircuitNotion connection
    CN.begin("iot.circuitnotion.com", 443, "/ws", api_key, microcontroller_name);

    // Map dashboard device to local pin for control
    CN.mapDigitalDevice(light_device_serial, D2, "Living Room Light");

    // Add sensor for dashboard device
    CN.addTemperatureSensor(temp_device_serial, "Living Room", 30000, []() {
        // Read your actual sensor here
        float temp = 23.5; // Replace with real sensor reading
        return SensorValue(temp, "°C");
    });

    // Setup callbacks
    CN.onConnection([](bool connected) {
        Serial.println(connected ? "✓ Connected!" : "✗ Disconnected");
    });

    CN.onDeviceControl([](String deviceSerial, String state) {
        Serial.println("Device control: " + deviceSerial + " -> " + state);
    });

    // Connect to CircuitNotion
    CN.connect();
}

void loop() {
    CN.loop();
    delay(100);
}
```

### Step 6: Verify Everything Works

1. **Upload Your Code**

   - Upload the Arduino sketch to your ESP8266/ESP32
   - Open Serial Monitor (115200 baud)
   - Look for connection messages

2. **Check Dashboard**
   - Return to [iot.circuitnotion.com](https://iot.circuitnotion.com)
   - Go to "Microcontrollers" - your device should show as "Connected"
   - Go to "Devices" - you should see real-time sensor data
   - Try controlling devices from the dashboard

## 🏗️ Architecture Overview

CircuitNotion follows a **dashboard-first** architecture:

```
Dashboard (iot.circuitnotion.com) → Device Creation → API Keys → Arduino Connection → Sensor Data
```

### Key Concepts

1. **Devices**: Physical entities registered in your dashboard (lights, sensors, etc.)
2. **Microcontrollers**: Arduino boards that interface with devices
3. **Device Mappings**: Connect dashboard devices to local microcontroller pins
4. **Sensors**: Data collectors attached to devices via microcontrollers

## 🔌 Device Mapping

Map dashboard devices to local pins for automatic control:

```cpp
// Digital devices (LED, relay, etc.)
CN.mapDigitalDevice("LIGHT_001", D2, "Living Room Light");
CN.mapDigitalDevice("RELAY_001", D3, "Water Pump", true); // inverted logic

// Analog/PWM devices
CN.mapAnalogDevice("DIMMER_001", D5, "Dimmable Light");
CN.mapPWMDevice("SERVO_001", D6, "Window Servo");
```

## 📊 Sensor Management

Attach sensors to dashboard devices:

```cpp
// Temperature sensor reading every 30 seconds
CN.addTemperatureSensor("TEMP_001", "Kitchen", 30000, readTemperature);

// Humidity sensor with change detection
auto* humidity = CN.addHumiditySensor("HUM_001", "Kitchen", 15000, readHumidity);
humidity->setChangeThreshold(5.0); // Only send if changed by 5%
humidity->enableChangeDetection(true);

// Custom sensor
CN.addCustomSensor("pressure", "PRESS_001", "Basement", 60000, readPressure);

// Enable/disable sensors dynamically
CN.enableSensor("temperature", "TEMP_001");
CN.disableSensor("humidity", "HUM_001");
```

## 🔄 Dashboard Features You Can Use

### Real-time Device Control

- Toggle lights, fans, pumps from the web dashboard
- Set analog values (dimmer levels, servo positions)
- Create automation rules and schedules

### Sensor Data Visualization

- Real-time charts and graphs
- Historical data analysis
- Export data to CSV/JSON
- Set up alerts and notifications

### Device Management

- Organize devices by location/room
- Set device names and descriptions
- Monitor device status and connectivity
- Manage device permissions

### User Management

- Share access with family/team members
- Set user permissions per device
- Activity logs and audit trails

## 🔧 Advanced Configuration

### Custom Server (Enterprise)

```cpp
// For self-hosted CircuitNotion instances
CN.begin("your-server.com", 443, "/ws", api_key, microcontroller_name);
```

### SSL/TLS Configuration

```cpp
// Enable/disable SSL (default: enabled)
CN.begin(host, 443, path, api_key, name, true);  // SSL enabled
CN.begin(host, 80, path, api_key, name, false);  // Plain HTTP
```

### Auto-reconnection

```cpp
// Enable auto-reconnection with custom interval
CN.enableAutoReconnect(true, 10000); // 10 second intervals
```

## 📈 Monitoring and Diagnostics

```cpp
// Print comprehensive diagnostics
CN.printDiagnostics();
CN.printSensorStatus();
CN.printDeviceMappings();

// Get statistics
int sensorCount = CN.getSensorCount();
unsigned long totalReadings = CN.getTotalSensorReadings();
String version = CN.getLibraryVersion();
```

## 🌐 Complete API Reference

### Main Class: `CircuitNotion`

#### Configuration

- `begin(host, port, path, apiKey, microcontrollerName, useSSL=true)`
- `setWiFi(ssid, password)`
- `enableAutoReconnect(enabled, interval=5000)`

#### Connection

- `connect()`
- `disconnect()`
- `bool isConnected()`
- `bool isAuthenticated()`
- `ConnectionStatus getStatus()`

#### Device Mapping

- `mapDigitalDevice(deviceSerial, pin, name="", inverted=false)`
- `mapAnalogDevice(deviceSerial, pin, name="")`
- `mapPWMDevice(deviceSerial, pin, name="")`
- `controlLocalDevice(deviceSerial, state/value)`

#### Sensor Management

- `addTemperatureSensor(deviceSerial, location, interval, callback)`
- `addHumiditySensor(deviceSerial, location, interval, callback)`
- `addLightSensor(deviceSerial, location, interval, callback)`
- `addMotionSensor(deviceSerial, location, interval, callback)`
- `addCustomSensor(type, deviceSerial, location, interval, callback)`

#### Callbacks

- `onDeviceControl(callback)`
- `onConnection(callback)`
- `onLog(callback)`

## 🛠️ Hardware Requirements

- **ESP8266** or **ESP32** microcontroller
- **WiFi connection**
- **Sensors** (DHT22, LDR, etc.) - optional
- **Actuators** (LEDs, relays, servos) - optional

## 📝 Complete Example Projects

### Smart Home Hub

Monitor temperature, humidity, and light levels while controlling lights and fans.

### Garden Monitoring

Track soil moisture, temperature, and automate watering systems.

### Security System

Motion detection, door sensors, and automatic lighting control.

### Industrial Monitoring

Machine temperature monitoring, production counters, and alert systems.

## 🐛 Troubleshooting

### Dashboard Issues

1. **Can't access iot.circuitnotion.com**

   - Check your internet connection
   - Try clearing browser cache
   - Contact support if site is down

2. **Device not appearing in dashboard**
   - Verify device creation in dashboard
   - Check device serial matches Arduino code
   - Ensure microcontroller is connected

### Connection Issues

1. **Arduino won't connect**

   - Verify WiFi credentials
   - Check API key copied correctly from dashboard
   - Ensure microcontroller name matches dashboard
   - Monitor Serial output for error messages

2. **Sensors not sending data**
   - Verify device serials match dashboard
   - Check sensor hardware connections
   - Confirm sensor initialization in code
   - Test sensor readings independently

### Performance Issues

1. **Memory problems**

   - Reduce sensor reading frequency
   - Enable change detection to reduce transmissions
   - Monitor free heap with `ESP.getFreeHeap()`

2. **Connection drops**
   - Enable auto-reconnect: `CN.enableAutoReconnect(true)`
   - Check WiFi signal strength
   - Verify power supply stability

## 🔒 Security

- Uses **WSS (WebSocket Secure)** for encrypted communication
- **API key authentication** for device authorization
- **Dashboard access control** with user permissions
- **SSL/TLS encryption** for all data transmission
- **Secure device registration** through web dashboard

## 📞 Support and Community

- **Dashboard**: [iot.circuitnotion.com](https://iot.circuitnotion.com)
- **Documentation**: [docs.circuitnotion.com](https://docs.circuitnotion.com)
- **Community Forum**: [community.circuitnotion.com](https://community.circuitnotion.com)
- **GitHub Issues**: [github.com/circuitnotion/arduino-library/issues](https://github.com/circuitnotion/arduino-library/issues)
- **Email Support**: support@circuitnotion.com

## 📄 License

This library is released under the MIT License. See LICENSE file for details.

---

**Start your IoT journey today!** 🚀

1. Sign up at [iot.circuitnotion.com](https://iot.circuitnotion.com)
2. Create your devices
3. Install this library
4. Connect your Arduino
5. Control everything from your dashboard!
2025-08-09 14:43:55 +00:00
Oleg
7c4b84095c RTC_DS1302 (#6733)
* Update repositories.txt

* Update repositories.txt

* Update repositories.txt

* Update repositories.txt

* Update repositories.txt

* Update repositories.txt
2025-08-09 13:35:47 +00:00
Oleg
99e4126f7e Update repositories.txt (#6731)
* Update repositories.txt

* Update repositories.txt
2025-08-09 10:22:24 +00:00
Carlos Bernal Estrella
87157fd406 Update repositories.txt (#6730) 2025-08-09 08:23:25 +00:00
Teldrive
ca8c4a9754 Update repositories.txt (#6727) 2025-08-08 15:23:40 +00:00
Om Anavekar
e44cf02474 Update repositories.txt (#6726) 2025-08-08 07:46:49 +00:00
BestModules-cn
8b911d184c Update repositories.txt (#6725) 2025-08-08 03:21:55 +00:00
Liontron Systems
66ac1b55c1 Update repositories.txt (#6724) 2025-08-07 15:00:18 +00:00
salernosimone
cb55394ff9 Update repositories.txt (#6723) 2025-08-07 11:41:12 +00:00
Steve Eidemiller
b105251b3a Update repositories.txt (#6721) 2025-08-06 11:55:00 +00:00
dependabot[bot]
f79d7c1cec Bump actions/download-artifact from 4 to 5
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 01:35:00 +00:00
Limor "Ladyada" Fried
d0ea167dee Update repositories.txt (#6719)
https://github.com/adafruit/Adafruit_QMC5883P
2025-08-05 20:01:10 +00:00
abcdaaaaaaaaa
e0484af429 Update repositories.txt (#6717) 2025-08-05 17:07:04 +00:00
HarutoHiroki
66ec95dec0 Update repositories.txt (#6715)
Adding a library to support LGL Studio VFD Displays on Aliexpress
2025-08-05 04:24:26 +00:00
Maxime ANDRÉ
4b0da19aa5 Added cst816d library (#6713) 2025-08-04 21:17:26 +00:00
Philip Fletcher
714f10e0c0 Update repositories.txt (#6712)
Added SerialMessageEvents
2025-08-04 20:04:30 +00:00
Boris Kotlyarov
53b958c160 Update repositories.txt (#6710) 2025-08-04 10:44:17 +00:00
Nezaemmy
3ccf2e618b Update repositories.txt (#6709) 2025-08-04 10:18:58 +00:00
AlexGyver
57a1c0b2fe add lib (#6708)
* Update repositories.txt

* Update repositories.txt

* Update repositories.txt

* Update repositories.txt

* Update repositories.txt

* Update repositories.txt

* Update repositories.txt
2025-08-03 23:04:39 +00:00
Limor "Ladyada" Fried
bb1df0774f Update repositories.txt (#6707)
https://github.com/adafruit/Adafruit_MLX90632
2025-08-03 16:51:39 +00:00
Chris Sankey
8a91b40a46 Update repositories.txt (#6706)
Add https://github.com/chrissank/JKBMSInterface
2025-08-03 00:10:55 +00:00
Ranjit Tanneru
35702d064e Update repositories.txt (#6705) 2025-08-02 21:44:34 +00:00
Nezaemmy
8049e4b0e1 Update repositories.txt (#6703) 2025-08-02 09:43:54 +00:00
Per Tillisch
f86264cf46 Merge pull request #6702 from per1234/restore-7Semi
Restore registry privileges for `github.com/7Semi` and `github.com/7semi-tech`
2025-08-01 15:00:12 -07:00
Per Tillisch
66c497131f Restore registry privileges for github.com/7Semi and github.com/7semi-tech
This user has requested the restoration of their Arduino Library Manager Registry privileges. The request was
approved.
2025-08-01 14:54:22 -07:00
Liontron Systems
24c07901bc Update repositories.txt (#6701) 2025-08-01 19:39:53 +00:00
Cristian Maglie
444cc43e2b Revoke registry privileges for github.com/tremaru (#6700)
Reference https://github.com/arduino/library-registry/pull/6697

Co-authored-by: ArduinoBot <bot@arduino.cc>
2025-08-01 18:23:31 +02:00
Cristian Maglie
90e2328f3d Merge pull request #6697 from arduino/remove_iarduino
Removing of `iarduino_*` libraries
2025-08-01 17:56:33 +02:00
Nezaemmy
4836de1145 Update repositories.txt (#6699) 2025-08-01 15:47:17 +00:00
ArduinoBot
5ba825c68b Removed all iarduino* libs 2025-08-01 16:59:24 +02:00
ArduinoBot
ebcec04b43 Removed all iarduino* libs 2025-08-01 16:51:51 +02:00
Rob Tillaart
2378540009 Update repositories.txt (#6696)
Add CAT24M01 I2C EEPROM library
2025-08-01 09:39:27 +00:00
Paul Clark
959a9f2a99 Add SparkFun_Apple_Accessory_Arduino_Library (#6695)
Add https://github.com/sparkfun/SparkFun_Apple_Accessory_Arduino_Library
2025-08-01 08:16:53 +00:00
TheProgrammerFundation
c00b941bbf Hi (#6694)
* Create easyarduino.json

* Delete easyarduino.json

* Update repositories.txt

---------

Co-authored-by: Per Tillisch <accounts@perglass.com>
2025-08-01 08:11:30 +00:00
Paul Clark
50a408b30c Update repositories.txt (#6693)
Add https://github.com/sparkfun/SparkFun_Authentication_Coprocessor_Arduino_Library
2025-08-01 06:56:22 +00:00
aarón montoya-moraga
f6cafbdc5b Update repositories.txt (#6692) 2025-07-31 23:25:31 +00:00