======== I2C raspberry <--> ESP32 ========
== Installer le module smsbus python3 ==
sudo apt-get install python3-smbus
faire :
sudo pip list ( pour verifier l'installation )
==== Programme en python sur RPI ====
from smbus import SMBus
addr = 0x55 # L'adresse du bus I2C sur l'ESP32
bus = SMBus(1) # indique le repertoire /dev/ic2-1
numb = 1
print ("taper 1 pour ON ou 0 pour OFF")
while numb == 1:
ledstate = input(">>>>")
if ledstate == "1": # Allume la Led gpio 12 sur l'ESP32
bus.write_byte(addr, 0x1) # Allume sur 1
elif ledstate == "0": # Eteint la Led gpio 12 sur l'ESP32
bus.write_byte(addr, 0x0) # Eteint sur 0
else:
numb = 0
==== Programme reception I2C C-Arduino sur ESP32 ====
/*Arduino Slave for Raspberry Pi Master
i2c_slave_ard.ino
Connects to Raspberry Pi via I2C
DroneBot Workshop 2019
https://dronebotworkshop.com
*/
// Include the Wire library for I2C
#include
// LED on pin 12
const int ledPin = 12;
void setup() {
// Configure l'adresse I2C de l'ESP32 SLAVE
Wire.begin(0x55);
// Recoit les données du bus I2C
Wire.onReceive(receiveEvent);
// Active la LED 13 sur GPIO 12 et l 'eteint
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
}
void receiveEvent(int howMany) {
while (Wire.available()) { // boucle tant que l on recoit des caractéres sur le bus I2C
char c = Wire.read(); // recoit les caracteres envoyés sur le bus
digitalWrite(ledPin, c);// Allume ou eteint la LED 12
}
}
void loop() {
delay(100);
}