目前我在一个学校的项目中工作,目前的目标是使ESP的超声波传感器能够与Raspberry pi 3B +通信。因此,目标是当Sensor检测到对象时,应向树莓派发出信号。
当Raspberry收到信号后,他会制作一张照片并将其本地保存在Raspberry上。
首先,我尝试过Raspberry用不同的名称保存每个图像。在我向这个小组寻求帮助后,它可以工作。其次,我尝试使用GPIO作为ESP与Raspberry之间的通信。当然,我的ESP代码已经完成,但是它们之间的通信不起作用。
import time
import os
from picamera import PiCamera
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN)
if __name__=='__main__':
while True:
if(GPIO.input(18) == GPIO.HIGH):
cam = PiCamera()
os.chdir('/home/pi/Desktop/image/')
images = [i for i in os.listdir(os.getcwd()) if i.lower().startswith('image')]
if images:
newest = max(images, key=os.path.getmtime)
else:
newest = 'image0.jpg'
number = int(''.join([i for i in newest if i.isdigit()]))
newimagen = 'image'+str(number+1)+'.jpg'
cam.resolution = (2592,1944)
cam.capture('/home/pi/Desktop/image/'+newimagen)
#define trigPin 12
#define echoPin 13
#define ledPin 14
long duration;
int distance;
boolean triggered = false;
double activateDistance = 10;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
if (distance <= activateDistance)
{
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
else
{
digitalWrite(ledPin, LOW);
}
}
正如我所说,我希望当传感器检测到物体时,Raspberry会拍照。 我认为,重要的是,esp借助我连接在Esp引脚和Raspberry引脚上的电缆来发出信号。