ESP - Arduino I2C
- Войдите на сайт для отправки комментариев
Втр, 23/06/2020 - 09:50
Всем доброго времени суток! В микроконтроллерах только начал разбираться, прошу сильно не бить, вопрос возможно очень тупой.
Хочу сделать, чтобы ведомое устройство (Arduino nano в моем случае) передавало некоторую информацию на мастер (ESP8266) в произвольные моменты времени, например по нажатию кнопки (подключенной к ардуино). Сколько гуглил в интернете, находил только примеры, как передать информацию с master на slave, и как передать со slave на master. Однако во втором варианте передача всегда начинается по запросу мастера, а я же хочу сделать, чтобы slave отправляло информацию когда захочется.
Привожу коды - попытка реализовать то, что хочу.
//КОД ДЛЯ МАСТЕРА - ESP #include <Arduino.h> #include <Wire.h> void receiveEvent(int howMany) { while(Wire.available()) { char c=Wire.read(); Serial.print(c); } } void setup() { Serial.begin(9600); /* открываем серийный порт для дебаггинга */ Wire.begin(D1, D2); /* задаем i2c мост через контакты SDA=D1 и SCL=D2 на NodeMCU */ Wire.onReceive(receiveEvent); } void loop() { /*Wire.requestFrom(8, 13); while(Wire.available()) { char c = Wire.read(); Serial.print(c); } Serial.println();*/ delay(1000); }
//КОД ДЛЯ ВЕДОМОГО - ARDUINO #include <Wire.h> #include <Arduino.h> void setup() { Wire.begin(8); Wire.write("Hello ESP!"); /* Отправляем "hello Arduino" */ Serial.begin(9600); /* открываем серийный порт для дебаггинга */ } void loop() { delay(100); }
так нельзя
то есть можно лишь сделать так, чтобы мастер опрашивал ведомые устройства?
http://easyelectronics.ru/interface-bus-iic-i2c.html
но думаю готового примера вы не найдете как реализовать два master одновременно
Если хочется, чтобы слейв отправлял информацию, когда ему захочется, то в рамках протокола I2C это сделать можно - достаточно слейва сделать мастером, а мастера - слейвом.
Если хочется, чтобы слейв отправлял информацию, когда ему захочется, то в рамках протокола I2C это сделать можно - достаточно слейва сделать мастером, а мастера - слейвом.
У меня будет вероятно не один слейв
Спасибо, ознакомлюсь с информацией
Можно еще вопрос?
Никак не могу найти примеров как сделать передачу данных с сервера (например, через скрипты на сайте) на ESP через интернет (как сделать наоборот, много информации в интернетах), может кто даст ссылки на мануалы/примеры?
Можно еще вопрос?
Никак не могу найти примеров как сделать передачу данных с сервера (например, через скрипты на сайте) на ESP через интернет (как сделать наоборот, много информации в интернетах), может кто даст ссылки на мануалы/примеры?
Может быть, потому что это очень и очень плохая идея?
Почему же плохая? Например, сделать так, чтобы по нажатию кнопки на сайте зажигался светодиод, что здесь не так?