Съдържание:

ESP32 ADXL345 ДАТАЛОГЕР С GPS_EXT RAM_EXT_RTC: 8 стъпки
ESP32 ADXL345 ДАТАЛОГЕР С GPS_EXT RAM_EXT_RTC: 8 стъпки

Видео: ESP32 ADXL345 ДАТАЛОГЕР С GPS_EXT RAM_EXT_RTC: 8 стъпки

Видео: ESP32 ADXL345 ДАТАЛОГЕР С GPS_EXT RAM_EXT_RTC: 8 стъпки
Видео: 13 Accelerometer (ADXL345) with ESP32 2024, Ноември
Anonim
ESP32 ADXL345 ДАТАЛОГЕР С GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 ДАТАЛОГЕР С GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 ДАТАЛОГЕР С GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 ДАТАЛОГЕР С GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 ДАТАЛОГЕР С GPS_EXT RAM_EXT_RTC
ESP32 ADXL345 ДАТАЛОГЕР С GPS_EXT RAM_EXT_RTC

За тези от вас, които играят с дъската Wemos 32 LOLIN, мислех, че ще започна да документирам някои мои констатации досега.

Текущият проект е да се свърже с акселерометър ADXL345 и както показва снимката по -горе, успешно го свързах с lolin и конфигурирах ADXL като сензор за удар.

Регистрите на ADXL са настроени като прикачен pdf и прекъсването, което съм конфигурирал в кода, за да изплюе кода на серийния порт, след като бъде открит шок.

Също така настроих регистъра за бездействие като прекъсване и след като проверя кое прекъсване е задействано, след това изплювам същите данни.

Използвам порта I2c на LOLIN и ще видите, че имам рутина да изплювам регистрите на ADXL, за да мога да проверя конфигурацията по време на отстраняване на грешки. Тази функция се изпълнява в функция за таймер, използвайки тикер библиотеката. Това е полезна функция за настройка за отстраняване на грешки и проверка на регистрите в случай, че напишете нещо там, което мистериозно кара данните да правят някои странни неща.

Нормализирах данните за комплимента на 2 в LOLIN и го форматирах, така че да може да се импортира в Excel.

Разгледайте прикачения PDF с някои данни, които съм импортирал и съм начертал в excel, показвайки някои докосвания на ADXL, които се задействат от прекъсване в регистъра на задействане, използвайки режим FIFO.

Режимът FIFO е полезна функция, която не свързва микросхемата и съхранява 32 проби при задействане. Отново погледнете моите изхвърляния на данни и можете да видите къде започваме на нула, а последната проба е на 9,8 мс или там около. Линията X на графиката показва времето в микросекунди, увеличаващо се отляво надясно.

ЗАБЕЛЕЖКА ИЗМЕНИХ ОТ ПОСЛЕДНИЯ ГРАФИК, ЗА ДА ПОКАЖВА ГРАФИК ОТ МИНУС 9800 микросекунди. Първото изскачане на FIFO е най -ранните данни, останалите са по -стари. Прегледът трябва да е отдясно наляво.

Обърнете внимание на трите проводника към ADXL платката. SDA/SCL и INT от INT 1. Отново, ако погледнете настройките на регистъра и препратите таблицата с данни, ще има смисъл.

Извадката от данни е с пълен наклон при 3200 проби, което дава 3125 секунди за използване между пробите. И предварително улавяне на 4 проби. Погледнете pdf файла с данните от устройството в excel и всяка от графиките, които съм начертал, показвайки как премествам прозореца на улавяне.

Ще пусна някакъв код на конфигурацията и прекъсва, ако някой се интересува.

За I2C използвам кабелната библиотека и написах някои функции около това.

Забележете малкия снифър на данни, който съм свързал към SDA/SDL и използвайки Sigrok i може да декодира I2C шината в реално време.

Следващата стъпка е да запишете на SAN диск, въпреки че вече доказах, че работи. След като това стане, ще се свържа с безжичната мрежа и ще кача на уебсайт.

Ще допълня това с разширяването на проекта.

ЗАБЕЛЕЖКА:

За наблюдателните там ще забележите голяма вдлъбнатина в кутията, предпазваща чипа esp, и джъмпер на печатната платка. Това се дължи на местния кокер шпаньол, който провери пощата и реши да дъвче дъската, преди да ми позволи достъп до нея. Мисля, че тя не е фен на espressif !.

Разбира се, както винаги съм готов за въпроси, така че моля попитайте.

Стъпка 1: SIGROK И PULSEVIEW

SIGROK И PULSEVIEW
SIGROK И PULSEVIEW
SIGROK И PULSEVIEW
SIGROK И PULSEVIEW

Само кратко споменаване на pulseview и sigrok.

Това е безплатен софтуер от мрежата, а малката интерфейсна платка с 8 логически входа е евтина от ebay и др. Ще забележите няколко изображения, които грабнах от шината, докато ADXL работеше и е толкова полезно отново за отстраняване на грешки, тъй като има вграден декодер за I2C.

Обхватът е чудесен за проверка на нивата на сигнала, но ръчното декодиране на I2c е досадно в най -добрия случай, въпреки че преди това съм настроил цикъл и ръчно отстранявам грешки. Трябва да оцените малко удара на ниво порт, което направих на много проекти за снимки, но отнема много време и е склонен към грешки … особено през нощта !!

Благодаря на момчетата, които са написали това приложение. Боже, изпрати за проекти в i2c, Обърнете внимание на линията D4, която следи линията на прекъсване от ADXL.

Стъпка 2: Добавяне към сензора за удар

Добавяне към сензора за удар
Добавяне към сензора за удар
Добавяне към сензора за удар
Добавяне към сензора за удар
Добавяне към сензора за удар
Добавяне към сензора за удар
Добавяне към сензора за удар
Добавяне към сензора за удар

Добре тук добавих някои периферни устройства към сензора за удар за доказателство на концепцията.

Извинете гнездото на плъховете засега, след като работи, ще проектирам печатната платка, която свързва всички компоненти и ще я сложа в красива кутия. Всички приложени елементи, освен SD картата, работят на i2c, който е на spi шината.

Остава да се прикачи GPS модулът, който е WIP, но се надявам да имам решение до края на тази седмица.

Така че настоящият проект се състои от:

ESP32 LOLIN платка с безжична връзка.

PCF часовник в реално време. Последва текущата дата и час. Имам грубо запояване върху стара дъска за проектиране, която преди това съм гравирал.

Външна светкавица. Съдържа данни за настройка за акселерометър, наред с други неща. Капацитет 132k и може да изхвърли някои уеб данни върху него, за да улесни менютата и т.н.

SPI SD карта за съхраняване на файлови акселерометрични данни и регистрационни файлове. 8 GB, но може да се разшири.

OLED дисплей за показване на менюта и няколко други неща.

Ето какво [в крайна сметка] ще направи

Наблюдавайте шоковете и активността, които надвишават фона.

Регистрирайте ударите на SD картата с час и дата от вградения часовник.

Печатайте местоположението от GPS на SD карта, ако има такава

Използвайки точка за достъп, качете данните на уеб сървър, за да анализирате данните … това може да е мобилен телефон.

| Сканирането за точки за достъп е способност на LOLIN32, тъй като хоства уеб сървър за команди и след това се свързва като клиент с облачния уеб сървър. Винаги можете просто да изключите SD картата и да я качите!

Има още много работа, но продължаваме.

Стъпка 3: ADXL АДРЕСИРАНЕ

ADXL АДРЕС
ADXL АДРЕС

Ето едно смешно нещо. Купих чипа ADXL 345 като малка дъска, защото беше по -евтино от самия доставчик на чип … … как работи това? Така или иначе след това се заех да го свържа към i2c шината и установих, че имам сблъсък с eeprom с адреси, които ефективно започват от 0x53, което се превежда като запис в A6 и четене в A7.

Така че, като прочетете глупостта, се оказва, че ако вземете SDO/ALT ADDRESS HIGH, можете да го принудите да бъде 1D

Оказа се, че моята малка дъска е заземена на щифт 12 на ADXL въпреки щифта SDO, който изглежда сякаш можете да го издърпате високо. Не опитвайте това вкъщи без ограничено захранване … за щастие имах, което ме накара да извадя мултицета и да проверя щифта към земята. [Dead short], което означава, че трябва да отрежете пистата и джъмпера 12 до 3.3v. Това работи и ще ви извади от сблъсъка на абитуриентските балове. За щастие те не направиха късото под чипа, иначе щях да бъда измъкнат и трябваше да премахна чипа от дъската. EEprom, който е резервен, който имах, е подреден като две страници от 64k като адрес 0x52 и 53. След като направих това, проблемът ми беше решен.

Четейки отново уеб страницата, тя казва, че е зададена на 0x53, но е с дребен шрифт, така че внимавайте!

Стъпка 4: Схематични печатни платки

Ето един бърз преглед на схемата и компонентите. Това е много моят дизайн и все още WIP [Работа в процес на изпълнение] Схемата е проектирана и след това преведена в произведенията на изкуството за песните. Проверих всички компоненти, както се очаква, използвайки подходът на моето плъхово гнездо се приближава и сега се сглобявам на дъска, която ще се побере в малка кутия [Подробности за следване]

Позовавайки се на shocker.pdf.

Платката се състои от 8 основни компонента

  1. СЪХРАНЕНИЕ НА SD КАРТА
  2. ADXL АКСЕЛЕРОМЕТЪР
  3. ДИСПЛЕЙ OLED
  4. 3.3 V REG
  5. МОДУЛ GPS1
  6. EEPROM
  7. ТАЙМЕР RTC
  8. ESP32 LOLIN CHIP С РЪЧЕН БЕЗЖИЧЕН ИНТЕРФЕЙС

Всичко зависи от акселерометъра.

ADXL е настроен да прекъсва процесора на INT1, който е насочен към щифт 14. Кодът в микрото е настроен да прихваща това прекъсване и да задава флаг, по който се действа в основната рутина. Ще добавя кода очертавайки регистрирането на рутината за прекъсване и функцията за обратно повикване по -късно.

ADXL поддържа прекъсвания в различни състояния, като шок или бездействие плюс няколко други. Можете да маскирате тези, които гъделичкат вашата фантазия въз основа на това, което се опитвате да направите. ADXL се работи в режим FIFO, така че съхранява 32 проби за да уловите шоковото събитие като XYZ [96 стойности]

Дисплеите ADXL RTC и EEPROM се управляват от I2C. SD CARD е свързана към SPI I/O, а GPS модулът е свързан към серийните портове на LOLIN с маркировка X12 X11.

Последователността е следната. Постоянно вземете 232 данни от GPS модула и филтъра. Докато имате валидно време за GPS, актуализирайте RTC на зададени интервали. При прекъсване съхранявайте променливи на SD карта, като например време/Lat_Lng/Скорост/Надморска височина/Съхранявайте ADXL регистрите в комплимент в необработен формат 2. и допълване на не 2. Всички данни са разделени със запетая.

Ще отбележите също, че има щифт за нулиране, който е свързан към щифт 13. Този щифт ще стартира вградения уеб сървър, който ви позволява да се свържете с конфигуратора, за да настроите точка за достъп, която се съхранява в EEPROM. При рестартиране процесорът ще се свърже с точката за достъп и ще осъществи достъп до интернет, за да качи файлове от SD картата. програмата [ShockerView.exe] [WIP] На сървъра данните се съхраняват в SQL база данни и се показват [WIP]

Печатните платки са прикрепени отгоре и отдолу.

Стъпка 5: Прототип за гравиране на произведения на изкуството

Прототип на гравиране на произведения на изкуството
Прототип на гравиране на произведения на изкуството
Прототип на гравиране на произведения на изкуството
Прототип на гравиране на произведения на изкуството
Прототип на гравиране на произведения на изкуството
Прототип на гравиране на произведения на изкуството

Ето как произвеждам прототипните си дъски

Отпечатайте произведението на изкуството върху тежка проследяваща хартия. Използвам 63 GSM от ковачи, евтини и весели. Принтерът е ключов тук. Искате възможно най -непрозрачен и възможно най -чист. Моят лазерен принтер започва да работи, но е добър за отпечатване до 10 хиляди, по -малко от това, че имате нужда от специална екипировка, тъй като зърното на калката започва да ви пречи. Можете да си купите специализирана хартия, но хей, това е прекалено добре за мен. Ако имате нужда от подходяща дъска, помолете експертите да го направят.

Обикновено прототипирам дъските си в секции и след това произвеждам финал с гербери, които да произвежда интернет компания. Прототипът сортира всички тези грешки и пропуски, преди да извърши реални пари.

След като отпечатате изображенията на два отделни листа за проследяване в формат А4, ги изрежете така, че да ги наслагвате и да ги поставяте на място. оставете достатъчно място, за да може вашата двустранна дъска да се притисне между слоевете и се уверете, че отпечатаната страна е срещу печатната платка. Направете няколко прореза, за да можете да плъзнете дъските навътре и да ги залепите временно. Ако внимавате, можете да припокриете село лентата, за да можете да я премахнете, без да унищожите проследяващото изображение.

Поставете дъската с едната страна надолу във вашата UV кутия. Забележка: Направих моя, използвайки четири нови 13W UV лампи и някои стари устройства за управление и направих кутия с прозрачен стъклен панел. Разстоянието беше експериментално. Капакът се закопчава надолу и изстисква пяната върху задната част на дъската, принуждавайки маската да стъпи. Ако не успеете да направите това, светлината ще подкопае съпротивлението за гравиране. Включете и изложете дъската за 1 минута 40 секунди на страна. Използвайте часовника си. Всъщност трябва да променя това с таймер върху него … о, няма друг проект … може би ще си купя такъв … знаете, че няма да! Платките, които купувам от Mega Electronics, са евтините прототипни платки с гравиране. Отпечатването на ецване понякога е малко неравномерно, но имам няколко дъски, които имам от четири години и те все още произвеждат добри дъски за прототипиране !!

Внимавайте, докато обръщате дъската, не я оставяйте да се изплъзне или ще имате някакви боклуци.

Сега подгответе своя разработчик. Използвам 2 капачки при 18: 1, така че това са две капачки на проявител и 36 капачки чиста, неподправена вода от чешмата. Разработчикът се предлага под формата на бутилка или прах и бутилката обикновено ми издържа около 6 години !!. Смесете го в контейнер за сладолед И НОСЕТЕ РЪКАВИЦИ. Не слагайте пръсти в него, в противен случай мазнината ще го повлияе. Температурата може да бъде проблем през зимата. Дръжте водата на 20 градуса или около нея, това не е критично, но ако е студено, резултатите могат да бъдат непредсказуеми. Направих това през януари в гаража си с чайник, за да можете да компенсирате.

Внимателно преместете контейнера от едната страна на другата, след като поставите дъската си в него. Ако сте го направили правилно, ще видите как пурпурен поток от гравиране се съпротивлява да бъде отстранен от медта, разкривайки прекрасна лъскава мед между коловозите. Обърнете го, като използвате ръкавиците си, за да проверите другата страна. Този процес обикновено отнема около минута, така че когато приключи, извадете дъската и изплакнете обилно с топла вода. Ако тя е скучна, тогава шансовете са неуспешни.

Имал съм това няколко пъти, но обикновено това е така, защото не успях да нося ръкавици или температурата беше твърде ниска или обърках времето на експозиция поради някакво разсейване … защо правят това в средата на нещо критично….

Покажи ми офортите си

Добре, така че сега имате дъска с красиви зелени песни, защитени от ецване, и сега трябва да съставите железния хлорид. Сега използвам същия контейнер за сладолед, за да сведем до минимум отпадъците и разбъркам до бележките на опаковката. Купувам железен хлорид в пакетчета топки, които претегляте и разтваряте в разтвор. Направете достатъчно, за да напълните ваната за сладолед на около 1/3 от пътя нагоре. Ако сте достатъчно за работа, можете да излеете в пластмасов контейнер и той ще се задържи за дълго време.

ТРЯБВА ДА НОСИТЕ РЪКАВИЦИ … не заради мазнини и т.н., а защото ако не ги правите, ръцете ви ще са ярко оранжеви за две седмици. Веднъж направих това преди важна среща в Лондон и изглеждаше, че съм бил танго, но имайте предвид, че тези неща са гадни около всичко медно … и всичко наистина. Носете стари дрехи, защото ако попаднат върху тях, те се изхвърлят. Прикрепя се към мивки от неръждаема стомана и като цяло оцветява всичко. Направете това навън или в външно помещение, далеч от всичко. Не изливайте остатъците по канализацията, той е чудесен за убиване на бактерии, което не е това, което водният орган би искал да насърчи в своите септични ями. За някои власти това също е незаконно, така че не го правете.

Когато за първи път потопите дъската си в разтвора, тя ще придобие прекрасен червен бронзов цвят, когато медта е атакувана. Ако това не стане, все още може да имате слой от гравиране, който пречи на офорта да работи или решението ви е грешно. Ако е така, тогава се опасявам обратно към чертожната дъска, но е малко вероятно вашият офорт да е грешен, ако сте следвали разрушенията.

Така или иначе, ако всичко е наред, имате някои перфектни песни, защитени от etchist.

Обикновено в този момент професионалистът ще използва набор от маски, за да се развие около отворите и подложките и да произведе медната чрез плюс, да използва копринен екран за боядисване на номера на компоненти и т.н. използвайки малко медна тел от слой на слой … очевидно многослойността е не не по този метод. Ако съм в настроение, ще добавя старателно номерата на компонентите към слоя за печат, така че да гравирате и номерата на компонентите. Това може да спести известно време при сглобяването, но зависи от това колко е натоварена дъската.

Сега излагам песните за още около 2 минути на всяка страна и потапям в разработчика, за да премахна всички съпротивления за гравиране.

Сега пробивам виасите и всякакви проходни отвори и калайдисвам всички следи и проверявам непрекъснатостта с мултицет. Тази част е болка в топката и обикновено не бихте го направили за професионално произведена дъска с истински виа, но си струва да се направи, за да се избегне свързващия проводник да бъдеш запоен само от едната страна … се случи толкова много пъти!

Стъпка 6: Сглобяване на борда

Сглобяване на борда
Сглобяване на борда
Сглобяване на борда
Сглобяване на борда
Сглобяване на борда
Сглобяване на борда

Добре, така че сега имам готова дъска и съм пробил всички проходи и отвори.

Навийте всички проходи с тел и запойте от двете страни. обичам да калайдисвам всички следи като защита не е нужно да го правя, но спира окисляването на медта.

Прикачих SD картата, която е повърхностен монтаж, и добавих две земя, за да получим спойка върху нея, плюс тя има няколко щифта отдолу, за да я закотви.

След това добавих ADXL EEPROM и др.

Мощно планът е да вземете 5V от USB или външен Bat и да го подадете през 3.3V reg на платката. Имам малък reg, който купих от Ebay, който е сглобен като модул и е оценен на 800mA … това е 300 gretaer отколкото USB може да осигури. Все още не съм направил никакви измервания на мощността, тъй като може да променя софтуера …..може да използва прекъсване на НЕАКТИВНОСТ от ADXL за справяне. [WIP]

… трябва да добавяте снимки с напредването на изграждането.

Стъпка 7: КОДИРАНЕ

ОК, няма да премина през всички настройки на arduino, тъй като някой друг е свършил много по -добра работа на друго място.

Просто ще избера съответните битове, докато вървим, които могат да бъдат използвани в собствен проект.

Това все още се работи, що се отнася до качването на уебсайта, но позволява да преминем през част от кода.

Идеята е, че нормалната функционалност е в устройствата, които се състоят от GPS /дисплей /SD карта /часовник в реално време /ext_flashmemory и акселерометър.

След това влизаме в цикъл, който чака да види дали е натиснат клавиша за прекъсване sw. Ако е, след това преминете към менюто на конфигуратора, за да конфигурирате wifi мрежата за автоматично влизане в устройство, посочено като вход за конфигуратора на уеб страницата. Първо сканира всички устройства за ssid и след това ви позволява да изберете едно и да го запишете, за да мига с флаг, който показва, че при следващо зареждане заредете настройките от флаш. Винаги можете да отмените това, като въведете ipaddress и напишете /killbill, за да инициирате изчистване на флаш и заредете по подразбиране.

тук е функцията за прекъсване, дефинирана в кода за акселерометъра adxl и преминаването към конфигуратора на два отделни пина. Използваме ADXL прекъсване, за да прекъсваме SHOCK събитие. За двете прекъсвания задаваме флаг, който се нулира в основния "цикъл". ето как изглежда:

вижте прикачения код

Стъпка 8: Намиране на SDA SCL щифтове

използвайте този код:

Serial.println (SDA);

Serial.println (SCL);

отпечатва щифтовете, конфигурирани в момента в ESP за SDL и SCL

Има файл, който се използва за картографиране на щифтове към функции като серийни портове в ESP32

Препоръчано: