Всем привет! Я пытаюсь написать скетч на отправку сообщения с Arduini nano с подключеным шилдом Microchip’s ENC28J60 ethernet / HR911105A
Молодец! Держите нас в курсе прогресса в этом святом деле!
Написал много вариаций кода через разные библиотеки, каким-то места не хватает чтобы на ардуинку загрузится, какие-то не поддерживаются. Помогите с кодом и библиотеками.
Мы ни одной вариации не видели ![]()
Какой именно помощи Вы ожидаете?
- Пожелать Вам удачи? Желаю!
- Написать за Вас код? Это в другой раздел форума.
- Что-то другое?
#include <UIPEthernet.h>
#include <UniversalTelegramBot.h>
const char* botToken = “YOUR_TELEGRAM_BOT_TOKEN”;
const int buttonPin = 2; // Пин, к которому подключена кнопка
const int ledPin = 13; // Пин, к которому подключен светодиод
byte mac = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // Замените на свой MAC-адрес
IPAddress server(api.telegram.org); // IP-адрес сервера Telegram
EthernetClient ethClient;
UniversalTelegramBot bot(botToken, ethClient);
void setup() {
Serial.begin(9600);
// Инициализация Ethernet
if (Ethernet.begin(mac) == 0) {
Serial.println(“Failed to configure Ethernet using DHCP”);
while (true);
}
// Подключение к Telegram
Serial.println(“Connected to Telegram”);
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
}
void loop() {
if (digitalRead(buttonPin) == LOW) {
Serial.println(“Button pressed!”);
digitalWrite(ledPin, HIGH); // Включаем светодиод
// Отправляем сообщение в Telegram
String chatId = "YOUR_CHAT_ID"; // Замените на ваш Chat ID
String message = "Button pressed!";
bot.sendMessage(chatId, message);
delay(1000); // Задержка для предотвращения дребезга кнопки
digitalWrite(ledPin, LOW); // Выключаем светодиод
}
}
этому коду мало места для загрузки видимо библиотеки тяжёлые
#include <EtherCard.h>
#include <HttpClient.h>
#define TELEGRAM_BOT_TOKEN “6931700304:AAExgnA43qXHBLTFEcIhskt3A9Y-Y8H_BBI”
#define CHAT_ID “605137591”
#define BUTTON_PIN 2
byte mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
char server = “api.telegram.org”;
#define ETHERCARD_BUFFER_SIZE 600
byte etherbuffer[ETHERCARD_BUFFER_SIZE];
EtherCard ether;
#define BUFFER_SIZE 600
Stash stash(BUFFER_SIZE);
int lastButtonState = HIGH;
void setup() {
if (ether.begin(sizeof etherbuffer, mac) == 0)
Serial.println(F(“Failed to access Ethernet controller”));
ether.dhcpSetup();
pinMode(BUTTON_PIN, INPUT);
Serial.begin(9600);
}
void loop() {
ether.packetLoop(ether.packetReceive());
int buttonState = digitalRead(BUTTON_PIN);
if (buttonState == LOW && lastButtonState == HIGH) {
sendTelegramMessage(“Button pressed!”);
delay(5000);
}
lastButtonState = buttonState;
}
void sendTelegramMessage(const char* message) {
char data[256];
sprintf_P(data, PSTR(“/bot%s/sendMessage?chat_id=%s&text=%s”), TELEGRAM_BOT_TOKEN, CHAT_ID, message);
if (ether.clientWaitingGw()) {
char request[256];
sprintf_P(request, PSTR(“GET %s HTTP/1.1\r\nHost: %s\r\nUser-Agent: Arduino\r\nConnection: close\r\n\r\n”), data, server);
// Send HTTP request
ether.client.tcpSend(request, strlen(request));
// Wait for some time for the request to be processed
delay(5000);
}
}
Здесь вылазит ошибка при компиляции
C:\Users\usersupp\Desktop\ \Arduino\TGbot\TGbot.ino: In function ‘void sendTelegramMessage(const char*)’:
C:\Users\usersupp\Desktop\ \Arduino\TGbot\TGbot.ino:52:11: error: ‘class EtherCard’ has no member named ‘client’
exit status 1
Compilation error: ‘class EtherCard’ has no member named ‘client’
Microchip’s ENC28J60 не имеет собственной памяти и TCP/IP стека. Для нее все библиотеки будут “тяжелыми” на Arduino (AVR). За исключением, разве что Mega2560.
Простите, Вы из тех, которые “не читатель”?
В пустом окне сообщения для Вас специально написано как надо вставлять код. То, что Вы вставили - это не код, ужас на крыльях ночи. Код должен выглядеть вот так:
const char * s1 = "Вот так выглядит код";
const char * s2 = "А не то, что Вы \"набросали\"";
//
const char * s2 = "Хотите, чтобы кто-то читал - вставьте нормально";
И, да, кстати, не вижу ответа на свой вопрос: “Какой именно помощи Вы ожидаете?”.
#include <HttpClient.h>
#define TELEGRAM_BOT_TOKEN "6931700304:AAExgnA43qXHBLTFEcIhskt3A9Y-Y8H_BBI"
#define CHAT_ID "605137591"
#define BUTTON_PIN 2
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
char server[] = "api.telegram.org";
#define ETHERCARD_BUFFER_SIZE 600
byte etherbuffer[ETHERCARD_BUFFER_SIZE];
EtherCard ether;
#define BUFFER_SIZE 600
Stash stash(BUFFER_SIZE);
int lastButtonState = HIGH;
void setup() {
if (ether.begin(sizeof etherbuffer, mac) == 0)
Serial.println(F("Failed to access Ethernet controller"));
ether.dhcpSetup();
pinMode(BUTTON_PIN, INPUT);
Serial.begin(9600);
}
void loop() {
ether.packetLoop(ether.packetReceive());
int buttonState = digitalRead(BUTTON_PIN);
if (buttonState == LOW && lastButtonState == HIGH) {
sendTelegramMessage("Button pressed!");
delay(5000);
}
lastButtonState = buttonState;
}
void sendTelegramMessage(const char* message) {
char data[256];
sprintf_P(data, PSTR("/bot%s/sendMessage?chat_id=%s&text=%s"), TELEGRAM_BOT_TOKEN, CHAT_ID, message);
if (ether.clientWaitingGw()) {
char request[256];
sprintf_P(request, PSTR("GET %s HTTP/1.1\r\nHost: %s\r\nUser-Agent: Arduino\r\nConnection: close\r\n\r\n"), data, server);
// Send HTTP request
ether.client.tcpSend(request, strlen(request));
// Wait for some time for the request to be processed
delay(5000);
}
}
#include <UniversalTelegramBot.h>
const char* botToken = "YOUR_TELEGRAM_BOT_TOKEN";
const int buttonPin = 2; // Пин, к которому подключена кнопка
const int ledPin = 13; // Пин, к которому подключен светодиод
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // Замените на свой MAC-адрес
IPAddress server(api.telegram.org); // IP-адрес сервера Telegram
EthernetClient ethClient;
UniversalTelegramBot bot(botToken, ethClient);
void setup() {
Serial.begin(9600);
// Инициализация Ethernet
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
while (true);
}
// Подключение к Telegram
Serial.println("Connected to Telegram");
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
}
void loop() {
if (digitalRead(buttonPin) == LOW) {
Serial.println("Button pressed!");
digitalWrite(ledPin, HIGH); // Включаем светодиод
// Отправляем сообщение в Telegram
String chatId = "YOUR_CHAT_ID"; // Замените на ваш Chat ID
String message = "Button pressed!";
bot.sendMessage(chatId, message);
delay(1000); // Задержка для предотвращения дребезга кнопки
digitalWrite(ledPin, LOW); // Выключаем светодиод
}
}```
я хочу чтобы мне помогли разобраться что я делаю не так и может быть скинули как надо.
А почему когда код с другими библиотеками загружаешь, она запускается но не отрабатывает.
Может я что в коде не так прописываю в задании IP или DHCP?
С какими другими?
#include <EtherCard.h>
#include <HttpClient.h>
с этими к примеру
А это у кого вылезает, у меня?
C:\Users\usersupp\Desktop\ \Arduino\TGbot\TGbot.ino:52:11: error: ‘class EtherCard’ has no member named ‘client’
exit status 1
Compilation error: ‘class EtherCard’ has no member named ‘client’
А почему Вы говорите о каком-то секретном коде и не приводите его? В итоге Ваш вопрос звучит так:
вопрос: почему отрабатывает ХЗ какой код?
ответ: ХЗ!
UIPEthernet.h можно “облегчить” тремя способами - не использовать DHCP, уменьшить кол-во используемых сокетов или отключить UDP (если правильно помню). И то - UIPEthernet нужно определённой версии подбирать, чтобы не подглючивало.
Но, в принципе, для новичка этот чип не очень подходит.