Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 8,956
» Latest member: monarchbooksco
» Forum threads: 3,948
» Forum posts: 20,029

Full Statistics

Online Users
There are currently 50 online users.
» 0 Member(s) | 34 Guest(s)
Amazonbot, Baidu, Bytespider, Crawl, Semrush, bot

Latest Threads
Add uptime to board infor...
Forum: Suggestions and feedback on KinCony's products
Last Post: twostar
1 hour ago
» Replies: 2
» Views: 6
AIO Hybrid Smart Controll...
Forum: AIO Hybrid
Last Post: admin
2 hours ago
» Replies: 0
» Views: 4
m16v2 energy meter - cali...
Forum: KC868-M16 / M1 / MB / M30
Last Post: admin
5 hours ago
» Replies: 9
» Views: 114
KC868-COLB V2.4 firmware ...
Forum: News
Last Post: admin
Yesterday, 12:35 PM
» Replies: 10
» Views: 2,859
N60 N30 N20 N10 ARM CPU f...
Forum: N30
Last Post: admin
04-22-2026, 10:17 PM
» Replies: 18
» Views: 477
sample code to receive ht...
Forum: F16
Last Post: admin
04-22-2026, 10:15 PM
» Replies: 23
» Views: 1,594
Best Practices for Scalin...
Forum: Development
Last Post: admin
04-21-2026, 09:48 PM
» Replies: 1
» Views: 29
ERROR SIM not inserted SI...
Forum: KC868-E8T
Last Post: admin
04-21-2026, 01:34 AM
» Replies: 20
» Views: 1,090
KC868-A16-V3.1 MODBUS RS4...
Forum: "KCS" v3 firmware
Last Post: admin
04-21-2026, 01:28 AM
» Replies: 1
» Views: 45
[Bug] A16v3 (v3.24.3) - W...
Forum: "KCS" v3 firmware
Last Post: admin
04-21-2026, 01:27 AM
» Replies: 1
» Views: 39

  Error: Installing ESPHome on Windows without Home Assistant/Rasberry Pi
Posted by: OrenaikeJ - 12-06-2024, 12:36 PM - Forum: Getting Started with ESPHome and Home Assistant - Replies (1)

When I attempted to install ESPHome on Windows PC without Home Assistant & Rasberry Pi, on my Laptop, following your Youtube Instructional Guide, I got the error mesages seen in the attachment. Kindly assist me to successfully install the ESPHome on Windows without Home Assistant & Rasberry Pi.



Attached Files Thumbnail(s)
   
Print this item

  KC868-A16 need gpio pins
Posted by: msinfo - 12-06-2024, 11:21 AM - Forum: KC868-A16 - Replies (3)

Hello, is there a way i can use the gpio 18,19 and 21 from the esp32 to connect a device from a project im trying to do? I think the pins i need are connected to the Ethernet chip.

Print this item

  KC868 A16 Tasmota
Posted by: Istvan - 12-06-2024, 09:19 AM - Forum: KC868-A series and Uair Smart Controller - Replies (15)

Hi all,

I'm using a KC868 controller with  Tasmota.

I found two tasmota firmwares here on the forum.
One shows the digital inputs nicely on the main page.  However, with this version, I can't select the DS18x20 temperature sensor I'm using because it's not listed.

If I use the version that includes this sensor, the digital inputs are not shown.

Is there one that can do both functions ?


Thx,
István

Print this item

  KinCony G1 ESP32-S3 SIM7600E 4G Module released
Posted by: admin - 12-06-2024, 06:21 AM - Forum: News - Replies (2)

KinCony G1 ESP32 4G module based on ESP32-S3-WROOM-1U (N16R8) and SIMCOM SIM7600E series chip. G1 have RS485 port and many free GPIOs for user.You can write any code by Arduino IDE / Micro Python / ESP-IDF development tool to ESP32 module. Everyone can modify and change the code for your own smart home automation system project. it support use by ESPHome for home assistant. Such as send SMS and make CALL by ESPHome. for example, when sensor trigger, it can send SMS to user's mobile phone. Just according to SIMCOM AT command, you can do anything.
[Image: G1-1_pix400.jpg][Image: G1-2_pix400.jpg]
[Image: G1-view.jpg]
Model No. KinCony G1
Description: KinCony 4G Module – G1
Power supply: 12-24V DC
Processor: ESP32-S3-WROOM-1U (N16R8)
4G Module: SIM7600E-L1C
SIM Card: Nano SIM
Size: 95mm*84mm*59mm
interfaces: Ethernet(RJ45)-LAN 100Mbps IPv4/IPv6,WiFi,RS485,Bluetooth,USB-C,I2C extender, LCD, Buttons
Installation method: DIN RAIL
LCD: SSD1306 I2C display
Antenna Extender: ESP32-S3, 4G, GPS
Inputs:
2 buttons: 1:ESP32 Reset 2:ESP32 Download
12 buttons: Telephone Keyboard
1-Wire GPIO: 4CH (with pull-up resistance on PCB)
free GPIO: 3CH (without pull-up resistance on PCB, connect with ESP32 pin directly)
free GPIO: 4CH (without ESD diode on PCB):
[Image: G1-3_pix400.jpg][Image: G1-4_pix400.jpg]
[Image: G1-7.png]

Print this item

  [arduino code examples for G1]-06 Print TEXT on SSD1306 OLED displayer
Posted by: admin - 12-06-2024, 01:44 AM - Forum: G1 - No Replies

Code:
/*
* Made by KinCony IoT: https://www.kincony.com
*
* This Arduino program demonstrates how to display text on an SSD1306 128x64 OLED display using the U8g2 library.
* The program draws two lines of text on the display:
* - The first line is "KINCONY" in a larger font.
* - The second line is "www.kincony.com" in a smaller font.
*
* The display is connected via I2C (software implementation) with:
* - SCL (clock) on pin IO11
* - SDA (data) on pin IO12
*
* The display's I2C address is set to 0x3C.
*/

#include <U8g2lib.h>  // Include the U8g2 library for controlling the OLED display
#include <Wire.h>     // Include the Wire library for I2C communication

// Initialize the display using the software I2C method (SCL = IO11, SDA = IO12)
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,  11, 12, U8X8_PIN_NONE);  // Screen rotation: U8G2_R0

// Function to display page 1 content
void page1() {
  // Set font size 18 for the larger "KINCONY" text
  u8g2.setFont(u8g2_font_timR18_tf);  // Use the Times Roman font, size 18
  u8g2.setFontPosTop();               // Set the text position at the top of the display
  u8g2.setCursor(5, 0);               // Position the cursor at coordinates (5, 0)
  u8g2.print("KINCONY");              // Display the text "KINCONY" on the screen

  // Set font size 12 for the smaller "www.kincony.com" text
  u8g2.setFont(u8g2_font_timR12_tf);  // Use the Times Roman font, size 12
  u8g2.setCursor(0, 40);              // Position the cursor at coordinates (0, 40)
  u8g2.print("www.kincony.com");      // Display the text "www.kincony.com"
}

// Setup function, runs once when the program starts
void setup() {
  // Set the I2C address for the display to 0x3C
  u8g2.setI2CAddress(0x3C*2);  // I2C address shift for 8-bit format
 
  // Initialize the display
  u8g2.begin();
 
  // Enable UTF-8 character printing for the display
  u8g2.enableUTF8Print();  // Allow UTF-8 encoded text to be printed
}

// Main loop function, continuously runs after setup()
void loop() {
  // Begin the display drawing process
  u8g2.firstPage();  // Prepare the first page for drawing
  do {
    // Call the page1() function to draw content on the display
    page1();
  } while (u8g2.nextPage());  // Continue to the next page until all pages are drawn
}
arduino ino file download: 

.zip   6-oled-ssd1306.zip (Size: 1.11 KB / Downloads: 444)
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download:

.zip   6-oled-ssd1306.ino.merged.zip (Size: 201.32 KB / Downloads: 457)

Print this item

  [arduino code examples for G1]-05 GSM test
Posted by: admin - 12-06-2024, 01:41 AM - Forum: G1 - No Replies

Code:
#include <HardwareSerial.h>

// Define serial port
HardwareSerial SimSerial(1); // Use hardware serial port 1 (GPIO9 and GPIO10)

void setup() {
  // Initialize USB serial port (default serial port 0)
  Serial.begin(115200);
  while (!Serial) {
    ; // Wait for USB serial port to connect
  }

  // Initialize SIM7600 serial port
  SimSerial.begin(115200, SERIAL_8N1, 9, 10); // RX=GPIO9, TX=GPIO10
  //Serial.println("ESP32-S3 begin work");
}

void loop() {
  // If data is received from the computer, forward it to the SIM7600 module
  if (Serial.available()) {
    while (Serial.available()) {
      char data = Serial.read();
      SimSerial.write(data);
    }
  }

  // If data is received from the SIM7600 module, forward it to the computer
  if (SimSerial.available()) {
    while (SimSerial.available()) {
      char data = SimSerial.read();
      Serial.write(data);
    }
  }
}
arduino ino file download: 

.zip   5-GSM-Test.zip (Size: 598 bytes / Downloads: 478)
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download: 

.zip   5-GSM-Test.ino.merged.zip (Size: 184.08 KB / Downloads: 514)

Print this item

  [arduino code examples for G1]-04 RS485 communication test
Posted by: admin - 12-06-2024, 01:37 AM - Forum: G1 - No Replies

Code:
/*
* Made by KinCony IoT: https://www.kincony.com
*
* RS485 Communication Test
*
* This program is a simple test for RS485 communication using ESP32-S3.
* It will send a message over RS485 and then read incoming messages.
* The TXD pin is defined as GPIO 8 and RXD pin is defined as GPIO 18.
*/

#include <HardwareSerial.h>

// Define RS485 pins
#define RS485_RXD 18
#define RS485_TXD 8

// Create a hardware serial object
HardwareSerial rs485Serial(1);

void setup() {
  // Start serial communication for debugging
  Serial.begin(115200);
  while (!Serial);

  // Initialize RS485 Serial communication
  rs485Serial.begin(9600, SERIAL_8N1, RS485_RXD, RS485_TXD);
 
  Serial.println("RS485 Test Start");
}

void loop() {
  // Send a test message
  rs485Serial.println("Hello from KinCony G1!");

  // Wait for a short period
  delay(1000);

  // Check if data is available to read
  if (rs485Serial.available()) {
    String receivedMessage = "";
    while (rs485Serial.available()) {
      char c = rs485Serial.read();
      receivedMessage += c;
    }
    // Print the received message
    Serial.print("Received: ");
    Serial.println(receivedMessage);
  }

  // Wait before sending the next message
  delay(2000);
}
arduino ino file download: 

.zip   4-RS485-Test.zip (Size: 760 bytes / Downloads: 483)
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download: 

.zip   4-RS485-Test.ino.merged.zip (Size: 184.54 KB / Downloads: 492)

Print this item

  [arduino code examples for G1]-03 Ethernet W5500 chip work with TCP Server mode
Posted by: admin - 12-06-2024, 01:34 AM - Forum: G1 - No Replies

Code:
/*
* Made by KinCony IoT: https://www.kincony.com
*
* This Arduino program sets up an ESP32-S3 with a W5500 Ethernet module
* as a TCP server. It listens on port 4196 and echoes back any string
* received from a client.
*
* Hardware connections:
* - CLK: GPIO42
* - MOSI: GPIO43
* - MISO: GPIO44
* - CS: GPIO41
* - RST: GPIO1
* - INT: GPIO2
*
* Static IP address: 192.168.3.55
* Subnet Mask: 255.255.255.0
* Gateway: 192.168.3.1
* DNS: 192.168.3.1
*/

#include <SPI.h>
#include <Ethernet.h>

// Define the W5500 Ethernet module pins
#define W5500_CS_PIN  41
#define W5500_RST_PIN 1
#define W5500_INT_PIN 2
#define W5500_CLK_PIN 42
#define W5500_MOSI_PIN 43
#define W5500_MISO_PIN 44

// MAC address for your Ethernet shield (must be unique on your network)
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

Static IP address configuration
IPAddress ip(192, 168, 3, 55);       // Static IP address
IPAddress subnet(255, 255, 255, 0);   // Subnet mask
IPAddress gateway(192, 168, 3, 1);    // Default gateway
IPAddress dns(192, 168, 3, 1);        // DNS server address

// Create an EthernetServer object to handle TCP connections
EthernetServer server(4196);

void setup() {
  // Initialize serial communication
  Serial.begin(115200);
  while (!Serial) {
    ; // Wait for serial port to connect
  }

  // Initialize the W5500 module
  pinMode(W5500_RST_PIN, OUTPUT);
  pinMode(W5500_INT_PIN, INPUT);
  digitalWrite(W5500_RST_PIN, LOW);  // Reset the W5500 module
  delay(100);                       // Wait for reset to complete
  digitalWrite(W5500_RST_PIN, HIGH); // Release reset

  // Initialize SPI with the correct pin definitions
  SPI.begin(W5500_CLK_PIN, W5500_MISO_PIN, W5500_MOSI_PIN);

  // Set up the Ethernet library with W5500-specific pins
  Ethernet.init(W5500_CS_PIN);

  // Start the Ethernet connection with static IP configuration
  Ethernet.begin(mac, ip, dns, gateway, subnet);

  // Print the IP address to the serial monitor
  Serial.print("IP Address: ");
  Serial.println(Ethernet.localIP());

  // Start listening for incoming TCP connections
  server.begin();
}

void loop() {
  // Check for incoming client connections
  EthernetClient client = server.available();
  if (client) {
    Serial.println("New client connected");

    // Read data from the client and echo it back
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        server.write(c);
      }
    }

    // Close the connection when done
    client.stop();
    Serial.println("Client disconnected");
  }
}
arduino ino file download: 

.zip   3-Ethernet-W5500.zip (Size: 1.23 KB / Downloads: 439)
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download: 

.zip   3-Ethernet-W5500.ino.merged.zip (Size: 189.2 KB / Downloads: 468)

Print this item

  [arduino code examples for G1]-02 Read free GPIO state
Posted by: admin - 12-06-2024, 01:32 AM - Forum: G1 - No Replies

Code:
/*
* Made by KinCony IoT: https://www.kincony.com
*
* GPIO Status Monitoring with Change Detection
*
* This program monitors the status (high or low) of multiple GPIO pins on the ESP32-S3.
* It prints the status of the pins to the serial monitor whenever a change is detected.
*
* Additional Functionality:
* - The program now monitors 11 GPIO pins, not just the previously listed ones.
* - GPIO pins include: GPIO 15, 16, 17, 40, 13, 14, 21, 4, 5, 6, 7.
* - For each pin, whenever its state changes (from HIGH to LOW or vice versa), the new state is printed to the serial monitor.
*
* GPIO Pins Monitored:
* - GPIO 15
* - GPIO 16
* - GPIO 17
* - GPIO 40
* - GPIO 13
* - GPIO 14
* - GPIO 21
* - GPIO 4
* - GPIO 5
* - GPIO 6
* - GPIO 7
*
* Hardware Requirements:
* - Connect the pins to appropriate devices or pull them to HIGH/LOW for testing.
* - Ensure that the ESP32-S3 is powered and connected to a serial monitor to observe the output.
*
* How it works:
* - The setup function initializes the serial communication and configures the GPIO pins as inputs.
* - The loop function continuously checks the state of each GPIO pin.
* - If a pin's state changes, the new state is printed to the serial monitor, along with the corresponding pin number.
* - The program uses a delay to prevent excessive serial prints, which can be adjusted as necessary.
*/


#define GPIO_PIN_15 15
#define GPIO_PIN_16 16
#define GPIO_PIN_17 17
#define GPIO_PIN_40 40
#define GPIO_PIN_13 13
#define GPIO_PIN_14 14
#define GPIO_PIN_21 21
#define GPIO_PIN_4 4
#define GPIO_PIN_5 5
#define GPIO_PIN_6 6
#define GPIO_PIN_7 7

// Store the previous state of the GPIO pins
bool prevState[11] = {false, false, false, false, false, false, false, false, false, false, false};

void setup() {
  // Initialize serial communication for debugging purposes
  Serial.begin(115200); // Initialize the serial monitor at 115200 baud
  while (!Serial);      // Wait for the serial monitor to open

  // Initialize GPIO pins as inputs
  pinMode(GPIO_PIN_15, INPUT);
  pinMode(GPIO_PIN_16, INPUT);
  pinMode(GPIO_PIN_17, INPUT);
  pinMode(GPIO_PIN_40, INPUT);
  pinMode(GPIO_PIN_13, INPUT);
  pinMode(GPIO_PIN_14, INPUT);
  pinMode(GPIO_PIN_21, INPUT);
  pinMode(GPIO_PIN_4, INPUT);
  pinMode(GPIO_PIN_5, INPUT);
  pinMode(GPIO_PIN_6, INPUT);
  pinMode(GPIO_PIN_7, INPUT);

  Serial.println("GPIO Status Monitoring Started");
}

void loop() {
  // Read the current state of each GPIO pin
  bool currentState[11];
  currentState[0] = digitalRead(GPIO_PIN_15);
  currentState[1] = digitalRead(GPIO_PIN_16);
  currentState[2] = digitalRead(GPIO_PIN_17);
  currentState[3] = digitalRead(GPIO_PIN_40);
  currentState[4] = digitalRead(GPIO_PIN_13);
  currentState[5] = digitalRead(GPIO_PIN_14);
  currentState[6] = digitalRead(GPIO_PIN_21);
  currentState[7] = digitalRead(GPIO_PIN_4);
  currentState[8] = digitalRead(GPIO_PIN_5);
  currentState[9] = digitalRead(GPIO_PIN_6);
  currentState[10] = digitalRead(GPIO_PIN_7); 

  // Check for changes in GPIO pin states
  for (int i = 0; i < 11; i++) {
    if (currentState[i] != prevState[i]) {
      // Print the pin number and its new state if it has changed
      Serial.print("GPIO ");
      Serial.print(i == 0 ? GPIO_PIN_15 :
                   i == 1 ? GPIO_PIN_16 :
                   i == 2 ? GPIO_PIN_17 :
                   i == 3 ? GPIO_PIN_40 :
                   i == 4 ? GPIO_PIN_13 :
                   i == 5 ? GPIO_PIN_14 :
                   i == 6 ? GPIO_PIN_21 :
                   i == 7 ? GPIO_PIN_4 :
                   i == 8 ? GPIO_PIN_5 :                                                           
                   i == 9 ? GPIO_PIN_6 : GPIO_PIN_7);
      Serial.print(" changed to ");
      Serial.println(currentState[i] ? "HIGH" : "LOW");
      // Update the previous state
      prevState[i] = currentState[i];
    }
  }

  // Delay to avoid flooding the serial monitor
  delay(100); // Adjust the delay as needed
}
arduino ino file download: 

.zip   2-free-gpio-state.zip (Size: 1.42 KB / Downloads: 476)
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download:

.zip   2-free-gpio-state.ino.merged.zip (Size: 179.82 KB / Downloads: 456)

Print this item

  [arduino code examples for G1]-01 Read digital input ports state
Posted by: admin - 12-06-2024, 01:29 AM - Forum: G1 - No Replies

Code:
/*
* Made by KinCony IoT: https://www.kincony.com
*
* Description:
* This Arduino program reads the state of a 16-channel PCF8575 I/O expander
* and prints the state of all input pins to the Serial Monitor. The state of
* each pin is represented as a bit in a 16-bit value, where each bit corresponds
* to an input pin. The program prints the input state in binary format.
*
* Pin Definitions:
* - SDA: GPIO 12
* - SCL: GPIO 11
* - PCF8575 I2C Address: 0x24
*/

#include "Arduino.h"
#include "PCF8575.h"

// Define I2C pins
#define I2C_SDA 12  // Define SDA pin
#define I2C_SCL 11  // Define SCL pin

// Set I2C address
PCF8575 pcf8575_IN1(0x24); // The I2C address of the PCF8575

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

    // Initialize I2C communication
    Wire.begin(I2C_SDA, I2C_SCL); // Initialize I2C with defined SDA and SCL pins

    pcf8575_IN1.begin(); // Initialize the PCF8575

    Serial.println("KinCony G1 16CH input state 0:ON  1:OFF"); //actually PCB used 12 buttons, reset 4CH digital input free
}

void loop() {
    uint16_t state = 0;

    // Read the state of each pin (assuming 16 pins)
    for (int pin = 0; pin < 16; pin++) {
        if (pcf8575_IN1.read(pin)) {
            state |= (1 << pin); // Set the bit for the active pin
        }
    }

    Serial.print("Input state: ");
    Serial.println(state, BIN); // Print the state of inputs in binary

    delay(500); // Delay 500ms
}
arduino ino file download:

.zip   1-digital-input.zip (Size: 875 bytes / Downloads: 434)
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download: 

.zip   1-digital-input.ino.merged.zip (Size: 189.81 KB / Downloads: 461)

Print this item