Как подключить D1 mini и ATTINY85 по проводу передачи данных
Я пытаюсь соединить свой мини-модуль D1 и USB-модуль attiny85 вместе по проводу передачи данных, но я не знаю, как это сделать.
По сути, я хочу, чтобы D1 транслировал точку доступа с веб-страницей, которая при нажатии кнопки посылает сигнал на attiny85. D1 подключается через силовые провода к attiny85.
У меня есть отправляющий сигнал и настройка веб-сервера на D1, но я не знаю, как позволить attiny85 получить его.
Если это поможет, я использую проволоку.библиотека h на D1
(edit: извините за бездействие, просто не смог его протестировать)
@circle guy, 👍0
Обсуждение1 ответ
Лучший ответ:
ATTinyCore, похоже, поставляется с реализацией проводной библиотеки, представляющей тот же интерфейс, что и в других пакетах Arduino board. Пакет damellis этого не делает, поэтому, если вы пытались использовать его, я бы посоветовал переключиться на ATTinyCore.
Для начала вы должны иметь возможность использовать пример Master Writer библиотеки ESP8266-Arduino Wire library с примером Slave Receiver библиотеки ATTinyCore. Чтобы было ясно, вам не нужно получать их из github, они должны быть доступны в меню Файл/Примеры. Поскольку интерфейс один и тот же, вы можете обнаружить, что не имеет значения, с какой платы вы берете пример.
Я не знаю, использовал ли я когда-либо эту проводную библиотеку в ATTinyCore; моя единственная память об использовании I2C slave без ATtiny85 кодировала ее напрямую, но я ожидаю, что она отлично работает. Хотя я могу попробовать сам подтвердить это.
На ATtiny85 вы будете использовать DIP/SOIC pin 7 (PB2) для сигнала SCL. И DIP/SOIC pin 5 (PB0) для сигнала SDA.
Если я попробую это сам позже, я обновлю это с более подробной информацией.
Более подробная информация
У меня нет D1 mini. Однако у меня есть этот клон NodeMCU. Согласно картам контактов, контакты D1 mini D1 и D2 такие же, как и на NodeMCU, то есть GPIO5 и GPIO4 соответственно. Я соединил его вместе, как показано здесь:
Я нарисовал несколько линий в нижней части изображения, где угол камеры плохой. Меньшие изображения вставок предназначены только для того, чтобы показать лучший угол обзора. Желтые и белые провода, несущие "Проводные" данные I2C, подделываются просто потому, что они вышли из кадра.
Не воспринимайте "5V" на разрыве кабеля ISP слишком буквально, эта линия находится на уровне 3,3 В (от контакта NodeMCU 3,3 В).
ATtiny85 загрузил на него следующий код. Это просто пример подчиненного приемника ATTinyCore с удаленными ненужными комментариями и кодом для установки светодиода в зависимости от того, получает ли он ненулевой байт в транзакции I2C ("Провод"):
#include <Wire.h>
static const int LED_PIN = 4;
static const int SLAVE_ADDRESS = 0x08;
void setup() {
Wire.begin(SLAVE_ADDRESS);
Wire.onReceive(wire_receive);
Serial.begin(9600);
pinMode(LED_PIN, OUTPUT);
}
void loop() {}
void wire_receive(int howMany) {
if (Wire.available()) {
digitalWrite(LED_PIN, Wire.read());
}
}
Следующее было загружено на плату NodeMCU. Аналогично, полученный из примера ESP8266 Arduino Wire master-writer. Установите локальный светодиод ESP8266, когда он передает состояние на ATtiny85. В результате ATtiny85 и ESP8266 меняют свои светодиоды каждые 1 секунду вместе. Модуль NodeMCU подключен к тому, чтобы зажечь светодиод на низком уровне, ATtiny85-на ВЫСОКОМ, поэтому, когда один горит, другой нет.
#include <Wire.h>
#include <PolledTimeout.h>
#define SDA_PIN 4
#define SCL_PIN 5
const int16_t I2C_SLAVE_ADDRESS = 0x08;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Wire.begin(SDA_PIN, SCL_PIN);
}
void toggle_led() {
static bool led_state;
led_state = !led_state;
digitalWrite(LED_BUILTIN, led_state);
Wire.beginTransmission(I2C_SLAVE_ADDRESS);
Wire.write(led_state);
Wire.endTransmission();
}
void loop() {
using periodic = esp8266::polledTimeout::periodicMs;
static periodic nextPing(1000);
if (nextPing) {
toggle_led();
}
}
- Связь последовательного порта Digispark
- Библиотеки I2C для ATTiny85?
- ATtiny85 Digispark clones failing USB handshake - как их запрограммировать?
- длина провода i2c
- Программирование сервопривода на ATtiny85
- Программирование микроконтроллера Attiny85 без arduino
- Digispark ATtiny 85 - не распознается как HID устройство
- Клавиатура Digispark ATtiny85
зачем вам нужно использовать ATtiny? что он делает такого, чего не может сделать D1?, @Juraj
Я использую USB-модуль attiny85 для отправки нажатий клавиш на компьютер, но если бы я использовал его как микроконтроллер, я бы вообще его не использовал., @circle guy