1
0
mirror of https://github.com/arduino/library-registry.git synced 2025-09-11 14:30:47 +03:00
Commit Graph

5022 Commits

Author SHA1 Message Date
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
Stefano Di Paola
23b7c0d5f5 Update repositories.txt (#6691)
added TinySleeper lib for Attiny
2025-07-31 16:24:48 +00:00
Nezaemmy
a4f477d0b6 Update repositories.txt (#6690) 2025-07-31 14:53:28 +00:00
Stefan Staub
179613dd3c New Library (#6688)
* Update repositories.txt

* Update repositories.txt

* Update repositories.txt

Library for EA DOG graphic displays
2025-07-31 09:55:05 +00:00
Jodeenio
d8fa267c55 Update repositories.txt (#6687) 2025-07-31 09:47:00 +00:00
AvantMaker
24bacee3c7 Update repositories.txt (#6686) 2025-07-31 02:08:41 +00:00
positronic57
9138005036 Update repositories.txt (#6685) 2025-07-30 19:59:21 +00:00
Brent Rubell
5607b67820 Add Adafruit_Ublox (#6684) 2025-07-30 17:14:37 +00:00
Per Tillisch
e5635490cf Merge pull request #6682 from per1234/revoke-7semi-Tech
Revoke registry privileges for github.com/7semi-Tech
2025-07-30 03:05:16 -07:00
Per Tillisch
09c70dcc93 Revoke registry privileges for github.com/7semi-Tech
This user has established a pattern of irresponsible behavior in the Arduino Library Manager Registry repository. They
continued this behavior even after the bot and human maintainer made significant efforts to guide them to responsible
use.
2025-07-30 03:03:07 -07:00
Rithik Krisna
6b676dc0ff Update repositories.txt (#6681)
add https://github.com/me-RK/WiFiCreds
2025-07-30 08:57:52 +00:00
Tomasz Bekas
6b33cc3cc0 Update repositories.txt (#6673) 2025-07-30 07:22:53 +00:00
Jim Lee
2885e8968e Update repositories.txt (#6677) 2025-07-30 05:37:46 +00:00