Затем я использую 2 микроконтроллера: один в качестве передатчика через лазер, а другой в качестве приемника через LDR. Коды Arduino и скрипт Python, которые я использовал для передачи, пока не работают.
- КОД PYTHON ДЛЯ ПРЕОБРАЗОВАНИЯ ИЗОБРАЖЕНИЯ В STRING :
def image_to_base64(image_path):
с открытым (путь_изображения, "rb") как img_file:
img_data = img_file.read()
base64_data = base64.b64encode(img_data)
base64_string = base64_data.decode("utf-8")
return base64_string
image_path = "blue.png" # Замените на путь к файлу изображения
base64_string = image_to_base64(image_path)
print(base64_string)
- КОД ARDUINO ДЛЯ ПЕРЕДАЧИ ИЗОБРАЖЕНИЯ :
#define PERIOD 15
символов *строка ="/9j/1/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBA gQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAOABEDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAAECAwQFBgcICQoL/8QA TRAAAgEDAwIEawUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDh IWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+ Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtRE AAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvaVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5 ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDzv4U6OPFd99mtWJu4iGaNI2YkbiCwD+nX0B ZfbPonjz4OzeGdFjmnZbKWeWMwRTSCOWfqSFRnJYgZPC9AeleY/Bvxi/wq8ZDxRa2K3awxTST WpfAkU5c4cg7W+RcNjjHIIyD+g3hr4AaP47tbP4t+Mtc1CbxH4n8GWuk3VtZOsGnWyytFcMYE KtID5igbnd+M8dAPwHNMBisuzb2lOXLGK5+nnePXTTe17Nddv1yXEcYYenGqtJKz031336Xv6 3sfBH/CCw/9BTVP+/En/wAVRXtP9hW/+x/37FFX/rtlP/Pyp9y/+RPX+pUv5fyP/9k=#";
int string_length;
void setup()
{
pinMode(LED_PIN, OUTPUT);
pinMode(3, INPUT);
digitalWrite(3,LOW) ;
string_length = strlen(string);
delay(5000);
if(digitalRead(3) == HIGH){
for(int я = 0; я ПОРОГ ? true: false;char get_byte()
{char ret = 0;
delay(PERIOD*1.5);
for(int i = 0; i < 8; i++ ){
ret = ret | get_ldr()
Подробнее здесь: https://stackoverflow.com/questions/792 ... sing-esp32