#include < Wire . h >
#include < WiFi . h >
#include < esp_now . h >
#include < MPU6050 . h >
MPU6050 mpu ;
/* ? ALICI ESP32 MAC ADRESINI BURAYA YAZ */
uint8_t receiverAddress [ ] = { 0x24 , 0x6F , 0x28 , 0x3A , 0xBC , 0x11 } ;
/* ESP-NOW Veri Yapısı */
typedef struct {
int x ;
int y ;
} ControlData ;
ControlData data ;
/* Gönderim Durumu */
void onDataSent ( const uint8_t * mac_addr , esp_now_send_status_t status ) {
Serial . print ( "Gonderim Durumu: " ) ;
Serial . println ( status == ESP_NOW_SEND_SUCCESS ? "Basarili" : "Hatali" ) ;
}
void setup ( ) {
Serial . begin ( 115200 ) ;
/* I2C */
Wire . begin ( 21 , 22 ) ;
/* MPU6050 */
mpu . initialize ( ) ;
if ( ! mpu . testConnection ( ) ) {
Serial . println ( "MPU6050 baglanamadi!" ) ;
while ( 1 )
;
}
Serial . println ( "MPU6050 baglandi." ) ;
/* WiFi */
WiFi . mode ( WIFI_STA ) ;
Serial . print ( "VERICI ESP32 MAC: " ) ;
Serial . println ( WiFi . macAddress ( ) ) ;
/* ESP-NOW */
if ( esp_now_init ( ) != ESP_OK ) {
Serial . println ( "ESP-NOW baslatilamadi!" ) ;
return ;
}
esp_now_register_send_cb ( onDataSent ) ;
esp_now_peer_info_t peerInfo = { } ;
memcpy ( peerInfo . peer_addr , receiverAddress , 6 ) ;
peerInfo . channel = 0 ;
peerInfo . encrypt = false ;
if ( esp_now_add_peer ( & peerInfo ) != ESP_OK ) {
Serial . println ( "Peer eklenemedi!" ) ;
return ;
}
Serial . println ( "ESP-NOW hazir." ) ;
}
void loop ( ) {
int16_t ax , ay , az ;
mpu . getAcceleration ( & ax , & ay , & az ) ;
/* Eğim verilerini ölçekle */
data . x = map ( ax , - 17000 , 17000 , - 100 , 100 ) ;
data . y = map ( ay , - 17000 , 17000 , - 100 , 100 ) ;
Serial . print ( "X: " ) ;
Serial . print ( data . x ) ;
Serial . print ( " | Y: " ) ;
Serial . println ( data . y ) ;
/* Veriyi gönder */
esp_now_send ( receiverAddress , ( uint8_t * ) & data , sizeof ( data ) ) ;
delay ( 50 ) ;
}
#include < WiFi . h >
#include < esp_now . h >
/* L298N Motor Pinleri */
#define IN1 12
#define IN2 14
#define IN3 27
#define IN4 26
/* ESP-NOW Veri Yapısı */
typedef struct {
int x ;
int y ;
} ControlData ;
ControlData data ;
/* Motor Fonksiyonları */
void stopMotor ( ) {
digitalWrite ( IN1 , LOW ) ;
digitalWrite ( IN2 , LOW ) ;
digitalWrite ( IN3 , LOW ) ;
digitalWrite ( IN4 , LOW ) ;
}
void forward ( ) {
digitalWrite ( IN1 , HIGH ) ;
digitalWrite ( IN2 , LOW ) ;
digitalWrite ( IN3 , HIGH ) ;
digitalWrite ( IN4 , LOW ) ;
}
void backward ( ) {
digitalWrite ( IN1 , LOW ) ;
digitalWrite ( IN2 , HIGH ) ;
digitalWrite ( IN3 , LOW ) ;
digitalWrite ( IN4 , HIGH ) ;
}
void right ( ) {
digitalWrite ( IN1 , HIGH ) ;
digitalWrite ( IN2 , LOW ) ;
digitalWrite ( IN3 , LOW ) ;
digitalWrite ( IN4 , HIGH ) ;
}
void left ( ) {
digitalWrite ( IN1 , LOW ) ;
digitalWrite ( IN2 , HIGH ) ;
digitalWrite ( IN3 , HIGH ) ;
digitalWrite ( IN4 , LOW ) ;
}
/* ESP-NOW Veri Alındığında */
void onReceive ( const uint8_t * mac , const uint8_t * incomingData , int len ) {
memcpy ( & data , incomingData , sizeof ( data ) ) ;
Serial . print ( "X: " ) ;
Serial . print ( data . x ) ;
Serial . print ( " | Y: " ) ;
Serial . println ( data . y ) ;
if ( data . y > 20 ) forward ( ) ;
else if ( data . y < - 20 ) backward ( ) ;
else if ( data . x > 20 ) right ( ) ;
else if ( data . x < - 20 ) left ( ) ;
else stopMotor ( ) ;
}
void setup ( ) {
Serial . begin ( 115200 ) ;
/* Motor pinleri */
pinMode ( IN1 , OUTPUT ) ;
pinMode ( IN2 , OUTPUT ) ;
pinMode ( IN3 , OUTPUT ) ;
pinMode ( IN4 , OUTPUT ) ;
stopMotor ( ) ;
/* WiFi + MAC Adresi */
WiFi . mode ( WIFI_STA ) ;
Serial . print ( "ALICI ESP32 MAC ADRESI: " ) ;
Serial . println ( WiFi . macAddress ( ) ) ;
/* ESP-NOW Başlat */
if ( esp_now_init ( ) != ESP_OK ) {
Serial . println ( "ESP-NOW baslatilamadi!" ) ;
return ;
}
esp_now_register_recv_cb ( onReceive ) ;
}
void loop ( ) {
}