Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:laboratory_iot_c:exp44 [2024/12/02 12:01] – [Эксперимент 44. Загрузка файлов в микроконтроллер] labuser30products:laboratory_iot_c:exp44 [2024/12/12 11:04] (текущий) – [Эксперимент 44. Загрузка файлов в микроконтроллер] labuser30
Строка 1: Строка 1:
 ===== Эксперимент 44. Загрузка файлов в микроконтроллер ===== ===== Эксперимент 44. Загрузка файлов в микроконтроллер =====
  
-Давайте научимся загружать файлы в микроконтроллер и читать их. Считанные данные выведем на LCD дисплей. Для этого нам потребуется специальный плагин (расширение для Arduino IDE.Файл плагина можно скачать с нашего с сайта или сайта разработчика [[https://github.com/earlephilhower/arduino-littlefs-upload/releases|Подробнее об операторе if]].+Давайте научимся загружать файлы в микроконтроллер и читать их. Считанные данные выведем на LCD дисплей. Для этого нам потребуется специальный плагин (расширение для Arduino IDE). Файл плагина можно скачать с нашего с сайта или  [[https://github.com/earlephilhower/arduino-littlefs-upload/releases|сайта разработчика]].
 <WRAP center round download 60%> <WRAP center round download 60%>
 {{ :products:laboratory_iot_c:arduino-littlefs-upload-1.5.0.rar |}} {{ :products:laboratory_iot_c:arduino-littlefs-upload-1.5.0.rar |}}
 </WRAP> </WRAP>
 +Теперь нужно найти папку ".arduinoIDE" по следующему пути C:\Users\<user>\.arduinoIDE (<user> это имя твоей учетной записи на компьютере). В папке создай ".arduinoIDE" новую папку с именем "plugins" и помести в нее ранее скачанный файл плагина "arduino-littlefs-upload-1.5.0.vsix"  
  
-Подключим LCD дисплей+Перезапусти Arduino IDE, создай новый скетч с кодом приведенным ниже и сохрани его. Попробуй загрузить на контроллер, на дисплее появится надпись "Failed to open file for reading" означающая, что не удалось открыть файл. Все правильно ведь мы его еще не загрузили. 
 + 
 +Теперь создадим файл для загрузки на микроконтроллер. Для этого открой папку в которой расположен скетч, это можно сделать с помощь меню Arduino IDE: 
 +  
 +<span menu> 
 +<span menu-item>Скетч</span> 
 +<span menu-item>Показать папку скетча</span> 
 +</span> 
 + 
 +В открывшейся папке создай новую папку с именем "data" и открой ее. Нажми правую кнопку мыши внутри папки и в открывшемся меню выбери   
 +<span menu> 
 +<span menu-item>Создать</span> 
 +<span menu-item>Текстовый файл</span> 
 +</span> 
 + 
 +Назови новый файл "for_lcd.txt", открой его с помощью "Блокнота", добавь текст "This text was read from file.", сохрани файл и закрой "Блокнот"
 + 
 +//Примечание. Рекомендуется текст в файле набрать в ручную, иначе могут возникнуть проблемы с его чтением. Кроме того можно использовать только английский алфавит.//  
 + 
 +Подготовительные операции закончены можно приступать к загрузки файла в микроконтроллер. Чтобы это сделать открой окно Arduino IDE и нажми на клавиатуре комбинацию клавиш **Ctrl + Shift + P**, в появившемся поле поиска набери "LittleFS". Под полем поиска появится плашка "Upload LittleFS to Pico/ESP8266/ESP32, нажми на нее. На контроллер должны загрузиться все файлы из папки "data". После загрузки в правом нижнем углу должно появится уведомление "LittleFS upload completed!"
 + 
 +//Примечание.// В момент загрузки вкладка "Монитор порта" должна быть закрыта. Если выдается ошибка о недоступности COM-порта, попробуй перезапустить Arduino IDE. 
 + 
 +Теперь нажми кнопку "Reset" на твоей лаборатории, на дисплее должен появится введенный тобой в файл "for_lcd.txt" текст.  
 + 
 +{{ :products:laboratory_iot_c:arduino_ide_exp44_1.png |}}
  
 ==== Схема эксперимента ==== ==== Схема эксперимента ====
Строка 13: Строка 39:
  
 ==== Программный код эксперимента ==== ==== Программный код эксперимента ====
-<file python Exp44.py[enable_line_numbers="2", start_line_numbers_at="1"]> +<file arduino Exp44.ino[enable_line_numbers="2", start_line_numbers_at="1"]> 
-from machine import Pin, I2C +#include <LCDI2C_Multilingual.h> 
-from esp8266_i2c_lcd import I2cLcd +#include <LittleFS.h>
-_init()+
  
 +#define DEFAULT_I2C_ADDR 0x3F // Или 0x27 в зависимости от твоей платы IoT
  
-DEFAULT_I2C_ADDR = 0x3F # Или 0x27 в зависимости от модели микросхемы на плате+LCDI2C_Generic lcd(DEFAULT_I2C_ADDR, 16, 2);
  
-i2c = I2C(scl=Pin(5), sda=Pin(4), freq=400000+void setup() { 
-lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, 2, 16+  Serial.begin(9600)
-lcd.backlight_on()+  Serial.println()
 +  lcd.init() 
 +  lcd.setBacklight(0); 
 +  lcd.clear();  
 +  LittleFS.begin();
  
-#Записываем в файл текст +  File file = LittleFS.open("/for_lcd.txt", "r"); 
-file = open("for_lcd.txt", 'w'+  // Проверяем удалось ли открыть файлесли нет выводим сообщение 
-written = file.write("The text was read from a file.") +  if(!file){ 
-file.close()+    Serial.println("Failed to open file for reading"); 
 +    lcd.print("Failed to open file for reading")
 +    return; 
 +  }
  
-lcd.clear() +  String text; 
-итаем из файла текст +  // Построчно читаем файл и добавлям строки в переменную text 
-file = open('for_lcd.txt', 'r'+  while(file.available()) { 
-text = file.read() +    String line = file.readStringUntil('\n')
-file.close()+    text += line; 
 +  } 
 +  file.close();
  
-lcd.putstr(text)+  lcd.print(text)
 +  Serial.println(text); 
 +
 + 
 +void loop() {}
 </file> </file>
  
-В этой программе мы сначала записали текст в файл, а потом прочитали его из файла и вывели на дисплей.+ 
 +В этой программе мы прочитали текст из файла и вывели его на дисплей.