Оглавление:
- Запасы
- Шаг 1: Descripción Del Funcionamiento
- Шаг 2: схемы
- Шаг 3: Programación
- Шаг 4: выводы
- Шаг 5. Ссылки Y Lecturas Relacionados
Видео: Attiny85 Termómetro OLED: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
Este proyecto consiste en un termómetro pequeño y simple que muestra la temperatura actual, la humedad relativa y el índice de temperatura. Puede realizarse con un ATmega328p, pero lo interesante de esta versión es utilizar un ATtiny85 cuyo tamaño y consumo de batería convergen en un dispositivo pequeño y portátil.
Продолжение, описывающее функциональные возможности, основные этапы работы над схемами и финализацией с программами и согласованными алгоритмами в целом.
Запасы
1 х ATtiny85
1 x Arduino UNO / PRO / и т. Д. (Programador del ATtiny)
1 x 128x64 pantalla I2C OLED
1 x датчик температуры DHT22
1 x Resistencia 4,7 МОм (1/4 Вт)
1 x электролитический конденсатор 0,1 мкФ
1 x Fuente de 3.3V - 5V 10+ x перемычки
Шаг 1: Descripción Del Funcionamiento
El Objetivo del Proyecto es mostrar los tres valores anteriormente mencionados en la pantalla OLED, además, como objetivo secundario, e includes uso de la librería sleep.he interrupt.h para activar el termómetro manualmente y así reducir el consumida de la extender la extender la batería.
Nuestro programa se guiará por el siguiente processso: Leer temperatura -> Mostrar temperatura en pantalla -> Apagar ATtiny -> Reiniciar al presionar botón.
Para cada uno de estos pasos dejaremos la mayor parte del trabajo a las librerías ya existentes, por lo que no reinventaremos la rueda. Библиотека датчиков DHT для Adafruit (доступна в IDE) и Tiny4kOLED для данных, которые загружаются с Github, все, что вам нужно, это автор оригинальных данных, которые необходимо изменить и изменить.
El método de reinicio puede ser tanto un botón como dos placas metálicas que se tocan para encender el equipo. В личном плане он encontrado la opción de las placas metálicas más interactivo.
Шаг 2: схемы
Для начального изображения, необходимого для схемы, требующейся для программы ATtiny85. Примерьте эту программу на Arduino (конденсатор, который следует удалить) с эскизом ArduinoISP, который находится в архиве -> Ejemplos -> 11. ArduinoISP. У вас должен быть конденсатор, который нужно установить для каждого нового Arduino, установленного в программе ATtiny85.
El ATtiny является источником питания прямого доступа к Arduino. En caso de utilizar una fuente de poder como una batería es necesario conectar la masa (GND) del Arduino y el ATtiny85.
Colocar un botón entre el pin 13 del Arduino y el 2 del ATtiny puede fastenar el hacer pruebas ya que la pantalla no puede estar conectada cuando se programa al ATtiny.
Como se observa en las imágenes. Штырь SDA для ATyiny находится в 0 и в SCL / CLK как в 2. Nuestro DHT подключен к штифту 4.
Шаг 3: Programación
Пример, выберите "Arduino as ISP" для программы. Si aún no han instalado la placa para el ATtiny, Recomiendo instalar la placa ATtinyCore de Spence Konde. Esta placa no me generó ningún проблема compilación durante la realización del proyecto.
Эта платформа сконфигурирована для BOD с внутренней частотой 8 МГц и OptiBoot. При использовании 1MHz для связи через I2C нет стабильного и 16-мегагерцевого внешнего внешнего сигнала, достаточно большого количества энергии и значительного количества энергии.
Как удалить его из архива в библиотеке Tiny4kOLED. В архиве модифицируется "font8x16.h" и он cambiado la línea 117 por el siguiente código con el fin de cambiar el símbolo ~ por ° que usaremos en ° C.
0x00, 0x06, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
Продолжение создания эскиза, необходимого для проекта.
#include #include #include #include #define I_PINB PCINT3 #define I_PIN PB3 #define I_VECTOR PCINT0_vect #define adc_disable () (ADCSRA & = ~ (1 << aden)) disable = "" adc = "" converter #define 4 #define DHTTYPE DHT22 DHT dht (DHTPIN, DHTTYPE); const uint8_t width = 128; const uint8_t height = 64; volatile bool превратился = false; / * * * Обработчик прерывания * * / ISR (PCINT_VECTOR) {// прерывание всегда восстанавливается из спящего режима if (digitalRead (I_PIN) == HIGH) {Turn = true; // устанавливаем флаг для повторной перерисовки экрана}} void setup () {cli (); // выключить прерывания PCMSK | = (1 << I_PINB); ГИМСК | = (1 << PCIE); pinMode (I_PIN, ВХОД); sei (); // включаем прерывания adc_disable (); // экономия энергии выключением преобразователя set_sleep_mode (SLEEP_MODE_PWR_DOWN); // устанавливаем тип сна для глубокого сна oled.begin (width, height, sizeof (tiny4koled_init_128x64br), tiny4koled_init_128x64br); // запускаем oled-объект oled.setFont (FONT8X16); // этот шрифт выглядит лучше, чем другой drawScreen (); oled.on (); задержка (2000); dht.begin (); повернулся = правда; // флаг отрисовки экрана} void sleep () {sleep_enable (); sleep_cpu (); } void loop () {если (повернулся) {cli (); // отключение прерываний oled.on (); float h = dht.readHumidity (); // ложное чтение для сброса задержки кэша dht (2200); // ожидание загрузки dht h = dht.readHumidity (); float t = dht.readTemperature (); float i = dht.computeHeatIndex (t, h, false); oled.setCursor (55, 1); олед.принт (т); oled.print ("~ C"); oled.setCursor (55, 3); oled.print (h, 0); oled.print ("%"); oled.setCursor (55, 5); oled.print (i); oled.print ("~ C"); // символ ~ был изменен в библиотеке, чтобы он выглядел как задержка символа ° градусов (5000); // показывать 5 секунд oled.off (); повернулся = ложь; sei (); // снова присоединяем прерывания} sleep (); // всегда засыпаем в конце} void drawScreen () {// рисует фрейм и основной текст для (uint8_t y = 0; y <8; y ++) {oled.setCursor (0, y); oled.startData (); для (uint8_t x = 0; x <128; x + = 2) {oled.sendData (0b10101010); oled.sendData (0b01010101); } oled.endData (); } oled.setCursor (0, 0); oled.startData (); oled.sendData (0b11111111); oled.repeatData (0b00000101, ширина - 2); oled.sendData (0b11111111); oled.endData (); для (uint8_t y = 1; y <(высота - 8) / 8; y ++) {oled.setCursor (0, y); oled.startData (); oled.sendData (0b11111111); oled.repeatData (0b00000000, ширина - 2); oled.sendData (0b11111111); oled.endData (); } oled.setCursor (0, (высота - 8) / 8); oled.startData (); oled.sendData (0b11111111); oled.repeatData (0b10100000, ширина - 2); oled.sendData (0b11111111); oled.endData (); oled.setCursor (4, 1); oled.print ("Температура:"); oled.setCursor (4, 3); oled.print ("Гуд:"); oled.setCursor (4, 5); oled.print ("Сенс:"); }
Шаг 4: выводы
A pesar de su tamaño insignificante, el ATtiny85 ofrece una ampia gama de aplicaciones en las que podemos Implementar este controlador de bajo costo sin perder funcionalidad. Personalmente no esperaba que fuera posible include control de pantalla y de sleep juntos debido a las limitaciones de memoria. Dichozamente, el programa ha entrado en nuestro ATtiny
Существуют бесплатные библиотеки OLED. La librería GFX de Adafruit no me allowió compilar por lo que decidí buscar algo Precisamente para el ATtiny, pero existen otras librerías y soluciones que son interesantes de explorar
El consumo del dispositivo es muy bajo. Считая, что он постоянно используется, он оценивает качество заряда аккумулятора 3000 мАч (NiMH или LiIon) в течение 500 дней. El consumo podría reducirse aún más desconectando la pantalla y el sensor directamente desde un pin del ATtiny, pero no lo he considerado necesario
Según Technoblogy.com el ATtiny puede operar en un consumo tan bajo como el mostrado en la primera imageen, pero en este proyecto he obtenido un consumo mayor que соответствие al de la segunda images. El consumo de la batería Continúa siendo lo suficientemente bajo como para ser un proyecto factible
Шаг 5. Ссылки Y Lecturas Relacionados
www.technoblogy.com/show?KX0&fbclid=IwAR0qu…
github.com/SpenceKonde/ATTinyCore
www.electroschematics.com/am2302-dht22-dat…
ww1.microchip.com/downloads/en/DeviceDoc/A…
embeddedoughtts.com/2016/06/06/attiny85-i…
www.instructables.com/id/ATtiny85-Interrup…
www.technoblogy.com/show?WNM
www.technoblogy.com/show?2F5D
Рекомендуемые:
Снижение энергопотребления аккумулятора Digispark ATtiny85: 7 шагов
Снижение энергопотребления аккумулятора Digispark ATtiny85: или: запуск Arduino с монетоприемником 2032 в течение 2 лет. При использовании платы Digispark Arduino из коробки с программой Arduino она потребляет 20 мА при 5 В. С блоком питания на 5 В. 2000 мАч он будет работать только 4 дня
ATtiny85 Носимые часы с отслеживанием активности с вибрацией и программирование ATtiny85 с Arduino Uno: 4 шага (с изображениями)
ATtiny85 Носимые часы с отслеживанием активности с вибрацией и программирование ATtiny85 с Arduino Uno: как сделать носимые часы с отслеживанием активности? Это носимый гаджет, который вибрирует при обнаружении застоя. Вы проводите большую часть времени за компьютером, как я? Вы сидите часами, не осознавая этого? Тогда это устройство ф
Как использовать шаговый двигатель в качестве поворотного энкодера и OLED-дисплея для шагов: 6 шагов
Как использовать шаговый двигатель в качестве поворотного энкодера и OLED-дисплея для шагов: в этом руководстве мы узнаем, как отслеживать шаги шагового двигателя на OLED-дисплее. Посмотрите демонстрационное видео. Авторство оригинального руководства принадлежит пользователю youtube " sky4fly "
Flappy Bird на ATtiny85 и OLED-дисплее SSD1306: 6 шагов (с изображениями)
Flappy Bird на ATtiny85 и OLED-дисплее SSD1306: Привет всем, сегодня я собираюсь показать вам базовый клон flappy Bird, который я создал, и то, как вы можете создать подобную игру. По сути, я пробегу с вами свой код и объясню, как он работает на каждом этапе. Эта игра построена на ру
Визитная карточка / игровая консоль: ATtiny85 и OLED-экран: 5 шагов (с изображениями)
Визитная карточка / игровая консоль: ATtiny85 и OLED-экран: Всем привет! Сегодня я собираюсь показать вам, как вы можете создать свою собственную визитную карточку / игровую консоль / все, что вы можете себе представить, с OLED-дисплеем с подсветкой I2C и микропроцессором ATtiny85. В этом руководстве я расскажу вам, как печатная плата, которую я