Mundarija:

Ochiq kodli ma'lumotlar yozuvchisi (OPENSDL): 5 qadam (rasmlar bilan)
Ochiq kodli ma'lumotlar yozuvchisi (OPENSDL): 5 qadam (rasmlar bilan)

Video: Ochiq kodli ma'lumotlar yozuvchisi (OPENSDL): 5 qadam (rasmlar bilan)

Video: Ochiq kodli ma'lumotlar yozuvchisi (OPENSDL): 5 qadam (rasmlar bilan)
Video: Shifrlash va ochiq kalitlar | Internet | Informatika 2024, Noyabr
Anonim
Ochiq kodli ma'lumotlar yozuvchisi (OPENSDL)
Ochiq kodli ma'lumotlar yozuvchisi (OPENSDL)
Ochiq kodli ma'lumotlar yozuvchisi (OPENSDL)
Ochiq kodli ma'lumotlar yozuvchisi (OPENSDL)
Ochiq kodli ma'lumotlar yozuvchisi (OPENSDL)
Ochiq kodli ma'lumotlar yozuvchisi (OPENSDL)

Loyihaning maqsadi-hech bo'lmaganda harorat, nisbiy namlik, yoritishni o'z ichiga olgan va qo'shimcha sensorlar uchun kengaytiriladigan binolarning ishlashini baholash uchun arzon narxlardagi o'lchov tizimini loyihalash, qurish va sinovdan o'tkazish va ushbu qurilmalarning prototipini ishlab chiqish..

Natijada, manfaatdor tomonlarga bir vaqtning o'zida bir nechta atrof -muhit parametrlarini hisobga olish orqali ishlashni baholash uchun zarur bo'lgan o'lchovlarni samarali va arzon narxlarda o'tkazishga imkon beradigan moslashtirilgan va arzon tizim yaratiladi. Ochiq kodli ma'lumotlar yozuvchisi (OPENSDL) HOBO U12-012 ma'lumot yozuvchisi bilan taqqoslandi. Tijoratda mavjud bo'lgan analog tizim 3 parametrni o'lchashi mumkin, ya'ni harorat, RH, yorug'lik va boshqa turdagi sensorlar uchun bitta tashqi kanal. Boshqa parametrlarni o'lchash uchun boshqa sezgich qurilmasi kerak bo'ladi. O'lchanishi kerak bo'lgan parametrlarning xarakteristikasi maxsus apparat va dasturiy ta'minot bilan chegaralanadi, bu tizimni aniq aniqlik bilan ma'lum parametrlarni o'lchashni cheklaydi. HOBO U12-012 narxi taxminan 13000 evro (185 AQSh dollari), OPENSDL esa 4605 (66 AQSh dollari) turadi, bu tijorat hamkasblarining deyarli uchdan bir qismini tashkil qiladi.

Arduino Uno yordamida harorat, RH va yorug'lik darajasini (yorug'lik) kuzatish uchun ochiq manbali ma'lumotlarni qayd qilish vositasi - bu OPENSDL ma'lumot yozish moslamasini ishlab chiqish uchun DIY.

Vaqt talab qilinadi: lehim uchun 2-3 soat, qadoqlash uchun 5 soat (4 soat - 3D bosib chiqarish va lazer bilan kesish uchun 1 soat) Kerakli ko'nikmalar: Lehimlash, dasturlash va elektronika sohasida hech qanday bilim yoki umuman yo'q

Kerakli qismlar:

  1. Kabel bilan Arduino Uno
  2. Ma'lumotlarni yozish qalqoni
  3. CR1220 tanga batareyasi
  4. BME280 harorat namlik bosimi sensori sindiruvchi taxtasi
  5. TSL2561 yorug'lik sensori sindirish taxtasi
  6. ESP01-8266 Wi-Fi moduli
  7. RJ-9 erkak va ayol ulagichi
  8. Arduino uchun qalqon yig'ish sarlavhalari
  9. SD xotira kartasi (har qanday sig'im)
  10. Vektorli taxta (26 x 18 teshik)
  11. 8 ta AA batareyasi Batareya ushlagichi

Kerakli asboblar:

  • Lehimlash temir (35W)
  • Lehim sim
  • Tel kesuvchi
  • Crimper vositasi
  • Multimetr

Kerakli dasturiy ta'minot: Arduino IDE (1.0.5 yoki undan yuqori)

Arduino kutubxonalari ishlatilgan:

  • Tel kutubxona
  • SparkFun TSL2561 kutubxonasi
  • Cactus BME280 multisensor kutubxonasi
  • SD -karta kutubxonasi
  • SPI kutubxonasi
  • RTC kutubxonasi

Eslatma: BME280 sensori Boschdan kelgan juda aniq, harorat, nisbiy namlik va bosim sensori. Xuddi shunday, DS1307 - bu Maksimning aniq real vaqtda soati va TSL2561 - aniq yorug'lik sensori. Bu mahsulotlar uchun arzonroq va aniqroq alternativalar bor, lekin bu qo'llanma yuqori aniqlik va aniqlikni talab qiladigan ish faoliyatini baholash va qurilish monitoringi dasturlari uchun ma'lumot to'plashga qiziqqan odamlarga mo'ljallangan edi. Bu shuni anglatadiki, har qanday maxsus uskuna va dasturiy ta'minotni sozlash (kutubxonalar, dastur kodlari) faqat ko'rsatilgan mahsulotlar uchun mo'ljallangan.

1 -qadam: yig'ish

O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish

Ma'lumotlarni yozish qalqoni Arduino Uno taxtasi ustiga osongina yig'ilishi mumkin. Bu qalqon ma'lumotlarni yozib olish imkoniyatlarini beradi (vaqtni saqlash va ma'lumotlarni saqlash). Qalqonni bir -biriga yopishtirish kerak edi. CR1220 tanga batareyasi Arduino o'chirilgan bo'lsa ham soatning ishlashi uchun dumaloq uyaga joylashtirilishi kerak edi. SD xotira kartasi o'rnatilgan karta uyasiga joylashtirilgan bo'lishi kerak. Noyob moslashtirilgan qalqon RJ-9 konnektorli ayol pinlari va Arduino qalqoni yig'ish sarlavhalari yordamida ishlab chiqilgan. Tegishli sarlavhalar tegishli joylarda lehimlangan, shunda qalqon Arduino kartasiga to'liq mos keladi. Arduino -ning bir tomonida 18 ta, boshqa tomonida 14 ta pin bor. Bir xil miqdordagi pinli sarlavhalar Arduino -da bo'lgani kabi bir xil masofada (bir -biridan 18 pinli) ishlatilgan. Sarlavhalarga ulashgan qolgan bo'sh joy RJ-9 ulagichini joylashtirish uchun ishlatilgan.

Sarlavhalar kerakli pimlarni ishlatishning eng yaxshi usuli edi, shu bilan birga ularni boshqa komponentalarga ishlatishga imkon berdi. Ishlatiladigan sensorlar I2C aloqa protokoliga amal qiladi, buning uchun Arduino -dan 4 ta pin kerak bo'ladi: SDA (A4 formatida ham mavjud), SCL (A5 sifatida ham mavjud), 3.3V va GND. RJ-9 ulagichidan chiqadigan to'rtta sim, bu to'rtta bosh pimiga lehimlangan. RJ-9 ulagichlarining soni sensorlar soniga bog'liq. Ushbu loyihada 3 ta RJ-9 ulagichi ishlatilgan (ikkitasi BME280 va bittasi TSL2561 uchun). RJ-9 ulagichidan chiqadigan to'rtta simlar rangli kodlangan va har bir rangli sim barcha RJ-9 ulagichlari uchun maxsus pin bilan belgilangan. Shuni ta'kidlash kerakki, rang kodi har xil RJ-9 qismlarida farq qilishi mumkin. Bunday holda, ulagichdagi simning joylashishini ta'kidlash kerak. RJ-9 ulagichi lehimlangandan so'ng, u Feviqwik yordamida vektorli taxtaga yopishib olindi, shunda u sirtga o'rnatiladi. Bu ulanishlarni multimetrdagi uzluksizlik rejimi yordamida tekshirish mumkin. Uzluksiz rejimda multimetr nol qarshilik ko'rsatishi kerak. Multimetr problaridan birini lehimli pinga, ikkinchisini esa RJ-9 ulagichi ichidagi pinga ulang. Multimetr ohang chiqarishi kerak, ya'ni lehim bo'g'inlari to'g'ri va ulanishlar to'g'ri qilingan. Agar ohang chiqmasa, lehim bo'g'inlarini tekshiring. Xuddi shunday, RJ-9 ulagichini xuddi shu simlar bilan sensorlar uzilib qolgan taxtalarda, ya'ni A4, A5, 3.3V & GND. BME280 sensori ikkita I2C manzilini qo'llab -quvvatlaydi, ya'ni ikkita BME280 sensori bir vaqtning o'zida bitta kontrollerga ulanishi mumkin. Shu bilan birga, datchiklardan birining manzilini sensordagi lehim yostiqchalari orqali o'zgartirish kerak. ESP-01 simsiz ulanish chipi Arduino bilan quyidagi ulanishlarni talab qildi.

ESP-01 --------- Arduino Uno

10 -------------------- TX

11 -------------------- RX

Vcc ---------------- CH_PD

Vcc ------------------- Vcc

GND ----------------- GND

Eslatma:- Arduino Uno-dagi bir nechta LEDlar batareyaning ishlash muddatini yaxshilash uchun olib tashlandi. Quvvat ko'rsatkichi LED, RX va TX LEDlari lehim bo'g'inlarini qizdirish va LEDni forseps bilan itarish orqali olib tashlandi.

2 -qadam: IDE va kutubxonalarni sozlash

Har qanday dasturlashdan oldin Arduino IDE (Integrated Development Environment) ni yuklab olish kerak. Dasturlash ushbu platformada amalga oshirildi. Turli kutubxonalar OPENSDLning turli komponentalari bilan o'zaro aloqada bo'lishlari kerak edi. Berilgan komponentalar uchun quyidagi kutubxonalar ishlatilgan.

Komponent ------------------------------------------------- -------------- kutubxona

BME280 harorat va RH sensori -------------------------------- Cactus_io_BME280_I2C.h

Nur sensori ------------------------------------------------ ---------------- SparkFun TSL2561.h

Haqiqiy vaqt soati ----------------------------------------------- ------------ RTClib.h

SD-karta uyasi ----------------------------------------------- ------------- SD.h

I2C ulanishi ------------------------------------------------ ------------- Tel.h

ESP01 bilan aloqa qilish uchun alohida kutubxona talab qilinmaydi, chunki Arduino-ga yuklangan kodda ATSP buyruqlari mavjud bo'lib, ular ketma-ket monitorga yuboriladi, u erdan ESP-01 ko'rsatmalarni oladi. Shunday qilib, asosan, ESP01 ishlaydigan AT buyruqlari ketma-ket monitorda chop etiladi, ular ESP-01 kirish buyrug'i sifatida qabul qilinadi. Ushbu kutubxonalarni o'rnatish uchun, ularni yuklab olgandan so'ng, Arduino IDE -ni oching, Sketch -> Kutubxonani qo'shish -> Zip kutubxonasini qo'shish -ga o'ting va yuklab olingan kutubxonalarni tanlang.

3 -qadam: tizimni dasturlash

Tizimni dasturlash
Tizimni dasturlash

OPENSDL -ni dasturlashdan oldin Arduino -ni noutbukga ulang. Ulanishdan so'ng, Tools -> Port -ga o'ting va OPENSDL ulangan COM portini tanlang. Shuningdek, asboblar -> taxtalar ostida Arduino Uno tanlanganligiga ishonch hosil qiling.

OPENSDL 2 rejimda ishlash uchun ishlab chiqilgan. Birinchi rejimda, u ma'lumotlarni yozish qalqonida SD -kartadagi ma'lumotlarni saqlaydi. Ikkinchi rejimda, u Internet orqali ma'lumotlarni ESP-01 Wi-Fi chipi yordamida veb-saytga yuboradi. Ikkala rejim uchun ham dastur boshqacha. Ushbu kod satrlarini to'g'ridan -to'g'ri Arduino IDE tahrirlovchisiga ko'chirish va joylashtirish va to'g'ridan -to'g'ri ishlatish mumkin. Kodni kiritgandan so'ng, biz o'z ehtiyojlarimizga qarab bir nechta sozlashlarni amalga oshirishimiz kerak:

  1. Jurnal vaqtini o'zgartirish uchun kod oxirida kechikish (1000) qiymatini qo'lda o'zgartiring. 1000 qiymati millisekundlarda intervalni ifodalaydi.
  2. MySensorData = SD.open ("Logged01.csv", FILE_WRITE) yoziladigan kod qatorini tahrir qiling; va Logged01 -ni kerakli fayl nomining fayl nomi bilan almashtiring. Fayl nomidan keyin.csv kengaytmasini o'zgartirish orqali fayl kengaytmasini o'zgartirish mumkin.
  3. Master/mos yozuvlar sensori va BME280 o'rtasidagi bog'liqlikni topish orqali erishilgan kalibrlash tenglamasi har bir sensordan farq qiladi. Ushbu kod qatorini sensorlarni kalibrlash tenglamasi bilan almashtiring: Serial.print ((1.0533*t2) -2.2374)-standart manzilga ega sensorlar uchun (0x77), bu erda t2-harorat sensori orqali o'qiladigan qiymat.

OPENSDL -ning ikkinchi mavjud rejimini, ya'ni simsiz tizimni dasturlash uchun alohida dastur ajratilgan. ESP-01 2-bosqichda aytilganidek, ulanishlar bo'yicha OPENSDL ga ulangan bo'lishi kerak. Ulanishlarni tugatgandan so'ng, Arduino -ni noutbukga ulang va Arduino -ga bo'sh eskizni yuklang. ESP-01-ni yangilash rejimiga o'tkazing va dasturiy ta'minotni so'nggi yangilanishlarga yangilang. Yangilashdan so'ng, Arduino yuklash moslamasini chetlab o'tadigan Arduino -ning tiklash pinini 3.3V -ga ulang.

4 -qadam: ishlab chiqarish

Ishlab chiqarish
Ishlab chiqarish
Ishlab chiqarish
Ishlab chiqarish
Ishlab chiqarish
Ishlab chiqarish

OPENSDL muhofazasi va estetikasini yaxshilash uchun korpus yaratilgan. Qoplamalar PLA materialidan foydalangan holda 3D bosib chiqarish usulida ishlab chiqilgan, va mikrokontrolder uchun korpus MDF qatlamini lazer bilan kesish va bo'laklarni yopishtirish orqali ishlab chiqilgan. 3D bosma modellar SketchUp dasturi yordamida ishlab chiqilgan va lazer bilan kesish uchun 2D dxf chizmalar AutoCAD yordamida yaratilgan.

3D bosib chiqarish uchun SketchUp yordamida ishlab chiqarilgan STL fayllari Ultimaker Cura 3.2.1 dasturida ochilgan va tekshirilgan. PLA materiali ishlatilganligiga ishonch hosil qiling va printerning uchi 0,4 mm bosib chiqarishga mo'ljallangan. 3D printerning plastinkasi 3D bosilgan ob'ektni yopishtirish uchun elim talab qilishi mumkin. Ammo bosib chiqarish tugagandan so'ng, elim bosilgan buyum va qurilish plitasi o'rtasida kuchli yopishqoqlikni hosil qiladi.

5 -qadam: kod

Kod (.ino fayllari) Arduino IDE dasturida ishlash uchun yaratilgan. Bu erda kod va boshqa tafsilotlar uchun mening Github sahifamga havola.

github.com/arihant93/OPENSDL

Iltimos, loyiha haqida savollar berishdan tortinmang.

Rahmat.

Tavsiya: