Агуулгын хүснэгт:
- Алхам 1: Математик…
- Алхам 2: Практик байдал
- Алхам 3: Найрлага
- Алхам 4: Прототип (ба кодыг) турших
- Алхам 5: Борооны усны хэмжигч Ино ноорог
- Алхам 6: Arduino Pro Mini -д код ачаалах (USB холболтгүй)
- Алхам 7: Чуулган
- Алхам 8: Дууссан нийтлэл
- Алхам 9: Postscript - Зуун (ба тав) хувь?
- Алхам 10: Дараагийн бодол
Видео: Хэт авианы борооны усны савны багтаамжийн тоолуур: 10 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Хэрэв та надтай адилхан, байгаль орчны ухамсартай хүн бол (эсвэл зүгээр л хэдэн доллар хэмнэхийг хүсдэг арьс ширнийхэн бол би ч бас …), та борооны усны савтай байж магадгүй юм. Надад Австралид тохиолддог ховор бороо хураах сав байдаг, гэхдээ хүү минь, энд бороо ороход үнэхээр бороо орно! Миний танк 1.5 м орчим өндөртэй бөгөөд суурийн дэргэд байгаа бөгөөд энэ нь усны түвшинг шалгах алхамуудыг хийх шаардлагатай байна (эсвэл би маш залхуу учраас одоо шарсан махнаас авсан хуучин хийн савны дээгүүр тэнцвэржүүлнэ. савны дэргэдэх "алхам" болгон байнгын оршин суух газар).
Савны усны түвшинг шалгахын тулд би нэг гараараа ус зайлуулах хоолой дээр дүүжлэхгүйгээр ямар нэгэн аргаар (ямар аалзнууд байж болох вэ гэж санаа зовж байхдаа Австралийн аалзны талаар сонссон юм байна. … Тиймээс, электроникийн сонирхол, Хятадаас хямд үнэтэй Arduino клоныг ebay дээр худалдаж авах болсон тул би энэ ажлыг хийх виджет бүтээхээр шийдлээ.
Одоо миний "мөрөөдлийн" виджетийг саванд байнга суулгаж, нарны зайгаар цэнэглэдэг тэжээлийн эх үүсвэр ашиглах, гаражтаа алсын зайнаас унших боломжтой байх, эсвэл утаснаасаа шалгаж болох Bluetooth ашиглан утасгүй дамжуулагч, эсвэл магадгүй ESP төрлийн төхөөрөмж нь автоматаар шинэчлэгддэг вэб хуудсыг байрлуулдаг бөгөөд ингэснээр би танкныхаа усны түвшинг дэлхийн өнцөг булан бүрээс интернетээр шалгаж болно … гэхдээ үнэхээр надад яагаад энэ бүхэн хэрэгтэй байна вэ? Тиймээс би өөрийн агуу санаануудаа бага зэрэг буцааж (сайн, нэлээд) эргүүлж, уусмалын утасгүй байдал, байнгын суурилуулалт, нарны цэнэглэлт, танкныхаа түвшинг гадна талаас нь шалгах чадварыг арилгасан. Цаад зах нь WiFi боломжтой гэж үзвэл энэ нь …)
Үүсгэсэн төслийг дээр дурдсан гар төхөөрөмж болгон бууруулсан бөгөөд үүнийг танкны нээлхий дээр барьж, товчлуур дээр дарж идэвхжүүлж, дижитал уншилтыг газрын түвшнээс уншиж болно.
Алхам 1: Математик…
Усны түвшинг хэрхэн тодорхойлох талаар хэд хэдэн санаануудыг тоглосны дараа би хэт авианы дамжуулагч/хүлээн авагчийг виджетийнхээ үндэс болгож, Arduino ашиглан уншиж, бүх математикийг хийхээр шийдсэн. Мэдрэгчээс буцаасан уншилт нь хэт авианы мэдрэгчээс унасан гадаргуу хүртэл (усны гадаргуу - эсвэл савны ёроол, хэрэв хоосон байвал) зайгаар (шууд бус байдлаар) зай хэлбэрээр байдаг бөгөөд бидэнд дахин хэрэгтэй болно. танканд үлдсэн хувийг авахын тулд үүнтэй холбоотой хэд хэдэн зүйлийг хийх.
Тэмдэглэл: Үнэн хэрэгтээ мэдрэгчийн буцааж өгсөн утга нь ялгаруулагч талаас гарч, хүлээн авагч руу буцах цаг юм. Энэ нь микросекундэд байдаг боловч дууны хурдыг мэдэх нь см тутамд 29 микросекунд байдаг (Юу? Та үүнийг мэдээгүй юм уу? Pfft…) нь цаг хугацааны зайнаас зайны хэмжилт рүү хялбархан хөрвүүлдэг.
Нэгдүгээрт - мэдрэгчийг гадаргуугийн зайд хүргэхийн тулд бид зайг 2 -т хуваах хэрэгтэй. Дараа нь мэдрэгчийн усны хамгийн дээд гүн хүртэлх тогтмол зайг хасна уу. Үлдсэн утга нь ашигласан усны гүн юм. Дараа нь усны хамгийн их гүнээс энэ утгыг хасч, саванд үлдсэн усны гүнийг олоорой.
Энэ утга нь усны гүнийг хамгийн их гүний хувиар тооцоолох, эсвэл гүнийг тогтмол "гадаргуугийн талбай" -аар үржүүлж харуулах усны эзлэхүүнийг авах гэх мэт бусад тооцооны үндэс болно. литрээр (эсвэл галлон эсвэл бусад нэгжээр - хэрэв та үүнийг хийх математикийг мэддэг бол би энгийн байхын тулд тодорхой хувийг баримталдаг).
Алхам 2: Практик байдал
Төхөөрөмжийг гараар барьж болно, гэхдээ энэ нь төхөөрөмжийг нэг газар, нэг өнцөгт байрлуулахгүй бол бага зэрэг нарийвчлал багатай байх магадлалыг бий болгодог. Хэдийгээр энэ нь маш өчүүхэн алдаа байх болно, магадгүй бүр бүртгүүлэхгүй байсан ч энэ нь миний өөдөөс харсан зүйл байх болно.
Гэсэн хэдий ч гараар барих нь хараал идсэн зүйлийг танканд хаяж, дахин хэзээ ч харахгүй байх магадлал өндөр юм. Эдгээр боломжуудын аль алиныг нь багасгахын тулд модны уртаар бэхлээд дараа нь савны нээлхийн дээгүүр байрлуулна. танк, наад зах нь мод хөвөх болно).
Товчлуурын товчлуур нь төхөөрөмжийг идэвхжүүлдэг (ингэснээр асаах/унтраах хэрэгцээг арилгаж, батерейг санамсаргүйгээр хавтгайруулах боломжийг арилгадаг), Arduino дээрх ноорогыг асаадаг. Энэ нь HC-SR04-ээс олон тооны уншилт авдаг бөгөөд тэдгээрийн дунджийг (аливаа алдаатай уншилтыг багасгахын тулд) авдаг.
Би бас Arduino дижитал оролт/гаралтын аль нэг дээр өндөр эсвэл бага байгаа эсэхийг шалгахын тулд жаахан код оруулсан бөгөөд үүнийг ашиглан төхөөрөмжийг "Calibration" горимд оруулав. Энэ горимд дэлгэц нь мэдрэгчийн буцааж өгсөн бодит зайг (2 -т хуваасан) харуулдаг тул би түүний нарийвчлалыг соронзон хэмжүүрээр шалгаж болно.
Алхам 3: Найрлага
Энэхүү төхөөрөмж нь үндсэн гурван бүрэлдэхүүн хэсгээс бүрдэнэ …
- HC-SR04 хэт авианы дамжуулагч/хүлээн авах модуль
- Arduino Pro Mini микроконтроллер
- TM1637 гэх мэт 4 оронтой 7 сегментийн LED дэлгэц эсвэл дэлгэцийн 'модуль'
Дээр дурдсан бүх зүйлийг ebay дээрээс хялбархан олж авах боломжтой.
Энэ аппликешнд дэлгэц нь ердөө л 3 оронтой тоогоор 0-100 % буюу 4 оронтой тоог харуулахын тулд литрийн тоог харуулна (миний хувьд хамгийн ихдээ 2000), тиймээс 4 оронтой дэлгэцийг хийх болно. модуль нь аравтын бутархай эсвэл хоёр цэгтэй эсэх талаар санаа зов. Дэлгэцийн 'модуль' (LED нь интерфейсийн чиптэй, таслах самбар дээр суурилуулсан) нь илүү хялбар байдаг, учир нь энэ нь цөөн тооны зүү холболтыг ашигладаг боловч 12 зүү бүхий түүхий LED дэлгэцийг Arduino кодыг бага зэрэг өөрчилж болно. Үнэндээ миний анхны загвар энэ тохиргоонд суурилсан байсан). Түүхий LED дэлгэцийг ашиглахын тулд сегмент тус бүрийн гүйдлийг хязгаарлахын тулд 7 резистор шаардлагатай болохыг анхаарна уу. Надад TM1637 цаг харуулах модуль байсан тул үүнийг ашиглахаар шийдсэн.
Нэмэлт бит ба бобуудад 9в батерейны хавчаар (батерей нь мэдээжийн хэрэг), "дарж хийх" түр зуурын товчлуур, төслийн хайрцаг, толгойн зүү, холбох утас, 2 "x4" урттай мод орно. савны нээлтийн диаметр.
Нэмэлт бит, бобсыг (модны овоолгоос бусад) миний орон нутгийн хобби электроникийн сүлжээ дэлгүүрээс худалдаж авсан бөгөөд энэ нь Австралийн Жейкар юм. Их Британид Маплин бол ашигтай хувилбар байх болно гэж би бодож байна, АНУ -д Digikey, Mouser гэх мэт цөөн хэдэн хүмүүс байдаг гэж би бодож байна. Бусад улс орнуудын хувьд би мэдэхгүй гэж айж байна, гэхдээ хэрэв танай улсад тохиромжтой гудамжны гарц эсвэл онлайн ханган нийлүүлэгч байхгүй бол хятад ebay худалдагчид тантай хамт байх болно гэдэгт би итгэлтэй байна. Хүргэлтийг хэдэн долоо хоног хүлээх сэтгэл (хачирхалтай нь, бидний хамгийн ойрын хөршүүдийн нэг боловч 6 долоо хоног ба түүнээс дээш хугацаанд Австрали руу Хятадаас хүргэх нь ердийн зүйл биш юм!).
Төслийн хайрцгийг хангалттай том хэмжээтэй авч байгаа эсэхээ шалгаарай. Бүрэлдэхүүн хэсгүүдийг авахаасаа өмнө миний таамаглаж байсан бөгөөд энэ нь үнэхээр нягт шахалт юм - надад бага зай ашигладаг өөр товчлуур авах шаардлагатай болж магадгүй юм.
Дашрамд хэлэхэд, модны урт нь миний гаражийн буланд хадгалдаг хэдэн хог хаягдлаас үүдэлтэй байв (эдгээр олон сайхан аалзнуудын гэр болгон).
Схем ба функциональ байдлыг ойлгосны дараа та өөрийн хувилбарыг тохируулах, асаах/унтраах унтраалга оруулах, нарны зай, цэнэг хянагчтай 18650 Li-Ion тэжээлийн эх үүсвэрийг ашиглах боломжтой., эсвэл энгийн LED дэлгэцийг олон мөрт LCD эсвэл график OLED болгон өөрчилж болно, жишээ нь үлдсэн хувийг, литрийг харуулах гэх мэт дэлгэрэнгүй мэдээллийг харуулах боломжтой. Эсвэл та нарны цэнэгээр цэнэглэгддэг танканд байнга дуулдаг, бүжиглэдэг утасгүй IoT төхөөрөмж авах боломжтой. Таны өөрчлөлт, өөрчлөлтийн талаар сонсмоор байна.
Алхам 4: Прототип (ба кодыг) турших
HC-SR04-ийг ebay дээрээс хямд хятад эх сурвалжаас худалдаж авсны дараа би маш нарийвчлалтай нэгж авна гэж найдаж байгаагүй тул зайны залруулах кодыг оруулах шаардлагатай бол эхлээд талхны самбар дээр туршиж үзэхийг хүссэн юм. миний ноорог
Энэ үед би HC-SR04-ийг хэрхэн холбох, ашиглах талаархи үндсэн мэдээллийг хайж байсан бөгөөд jsvester-ийн зааварчилгаа "Энгийн Arduino ба HC-SR04 жишээ" -ийг хүлээн зөвшөөрөх ёстой. Түүний үлгэр жишээ, туршлага нь миний хувьд код бичиж эхлэх маш сайн эхлэл болсон юм.
Би HC-SR04-ийн функцүүдийн NewPing номын санг олсон бөгөөд үүнд дунджаар олон уншилтыг авах боломжийг олгодог бөгөөд ингэснээр миний кодыг илүү хялбар болгосон.
Би мөн TM1637 цаг харуулах модулийн номын санг олсон бөгөөд энэ нь тоог харуулахад илүү хялбар болгосон. Анхны код дээрээ (4 оронтой 7 сегментийн дэлгэцийн хувьд) би дугаарыг тус тусад нь цифр болгон хувааж, дараа нь аль сегментийг гэрэлтүүлэхээ мэдэж, дараа нь тоон дахь цифр тус бүрийг тойруулан эргүүлэх ёстой байв., мөн энэ дугаарыг зохих дэлгэцийн орон дээр байрлуулна. Энэ аргыг мултиплекс гэж нэрлэдэг бөгөөд нэг удаад нэг оронтой тоог үр дүнтэй харуулдаг боловч нэг цифрээс нөгөө рүү маш хурдан эргэлддэг бөгөөд хүний нүд анзаардаггүй бөгөөд таныг бүх цифрүүд асаалттай байгаа гэж итгэдэг. Үүний зэрэгцээ HC-SR04 номын сан нь хэмжих ажиллагааг хөнгөвчилдөгтэй адил энэхүү дэлгэцийн номын сан нь бүх мултиплекс, цифртэй харьцах ажлыг хариуцдаг. Дээр дурдсан Arduino лавлах хуудсууд зарим жишээг өгдөг бөгөөд мэдээж номын сан бүр маш сайн тус болох дээжийн кодтой ирдэг.
n
Дээрх зургууд нь миний туршилтын төхөөрөмжийг харуулав - би үүнийг Arduino Uno дээрээ энгийн байдлаар туршиж байна, учир нь энэ нь прототип хийх зориулалттай түр дахин ашиглах боломжтой холболт юм. Энэ төхөөрөмж нь 'Calibration' горимд ажиллаж байна (дижитал зүү 10 - цагаан утсыг газардуулгатай холбосон болохыг анхаарна уу). Энэ горимд би хэмжихээс өмнө жижиг "c" -г харуулдаг бөгөөд энэ нь ердийн хэмжилт биш гэдгийг л харуулдаг.
Vcc (5v) ба Ground -ээс гадна HC -SR04 нь гох (шараас 6 хүртэл зүү) ба цуурай (7 -оос ногоон хүртэл) гэсэн 2 өөр холболттой байх шаардлагатай. Дэлгэц нь Vcc (5v) ба Ground, мөн өөр 2 холболттой байх ёстой: цаг (цэнхэрээс 8 хүртэл зүү) ба DIO (нил яснаас 9 хүртэл). Өмнө дурьдсанчлан, ажлын горимыг 10 -р зүү (цагаан) дээр өндөр эсвэл бага хэмжээгээр удирддаг. Холболтууд нь Arduino Pro Mini дээрх ижил тээглүүрийг ашиглах боловч байнга гагнах болно. Үйлдлийн горимыг Vcc, pin 10, газард холбогдсон гурван толгойн хоёр зүү дээр холбогч ашиглан сонгох боломжтой.
HC -SR04 -ийн албан ёсны үзүүлэлтүүд нь хамгийн ихдээ 4 миллиметр хүртэлх хамгийн их ажиллах зай хүртэлх 3 миллиметрээс хэтрэхгүй алдаатай байдаг тул миний төхөөрөмж 2 метр хүртэл нарийвчлалтай байсан нь миний гайхширлыг төсөөлөөд үз дээ. Энэ нь надад хэрэгтэй байгаагаас хамаагүй илүү юм. Туршилтыг хурдан, бохир хийх боломж хязгаарлагдмал байгаа тул дамжуулагчаас цацраг туяа тархаж, илүү өргөн талбайг эзлэх тул миний туршилтын байснаас өөр гадаргуугаас туссан энэхүү туршилтын үр дүн эвдэрчээ. Гэхдээ 1.5 метр хүртэл сайн байвал энэ нь надад сайхан байх болно, маш их баярлалаа:-)
Алхам 5: Борооны усны хэмжигч Ино ноорог
Бүрэн кодыг хавсаргасан боловч би зарим алхмуудыг тайлбарлахын тулд доорх хэдэн ишлэлийг оруулах болно.
Юуны өмнө тохиргоо…
#оруулах
#include #include // pc for HC-SR04 #pinTrig 6 #deine pinEcho 7 NewPing sonar (pinTrig, pinEcho, 155); // HC-SR04-ийн хувьд хамгийн дээд хэмжээ нь 400см, савны хувьд 155см нь хамгийн их байна // LED модулийн холболтын зүү (Дижитал тээглүүр) #define CLK 8 #define DIO 9 TM1637 Дэлгэц (CLK, DIO); // Бусад тээглүүр #opMode 10 -ийг тодорхойлох
TM1637 болон NewPing номын сангаас гадна би "дугуйруулах" функцэд хандах боломжийг олгодог математикийн номын санг оруулсан болно. Би үүнийг зарим математикт ашигладаг бөгөөд жишээлбэл 5% -ийг нарийвчлалтайгаар харуулах боломжийг олгодог.
Дараа нь хоёр төхөөрөмжийн зүүг тодорхойлж, төхөөрөмжийг эхлүүлэв.
Эцэст нь би 10 -р зүүг ажлын горимд тодорхойлдог.
// бүх тоонуудын хувьд бүх сегментийг унтраах
uint8_t байт = {0x00, 0x00, 0x00, 0x00}; display.setSegments (байт);
Кодын энэ хэсэгт дэлгэцийн модулийг удирдах нэг аргыг харуулсан бөгөөд ингэснээр цифр бүрт сегмент тус бүрийг дангаар нь хянах боломжтой болно. Би массивын байт гэж нэрлэгддэг 4 элементийг бүгдийг нь тэг болгож тохируулсан. Энэ нь байт бүрийн бит тус бүр тэг байна гэсэн үг юм. 8 битийг 7 сегмент, аравтын бутархай тус бүрийг хянахад ашигладаг (эсвэл цагийн хэлбэрийн дэлгэц дээрх хоёр цэг). Тиймээс хэрэв бүх битүүд тэг бол сегментүүдийн аль нь ч асахгүй болно. SetSegments үйлдэл нь массивын агуулгыг дэлгэц рүү илгээдэг бөгөөд энэ тохиолдолд юу ч харуулдаггүй. Бүх сегментүүд унтарсан байна.
Байтын хамгийн чухал хэсэг нь АН -ыг хянадаг бөгөөд үлдсэн 7 бит нь G -аас A хүртэлх 7 сегментийг урвуу дарааллаар удирддаг. Жишээлбэл, 1 тоог харуулахын тулд B ба C сегментүүдийг шаарддаг тул хоёртын дүрслэл нь '0b00000110' байх болно. (Дээрх зургийг үзүүлсэн CircuitsToday.com сайтад баярлалаа).
// 10 удаа уншиж, дундаж хугацааг ашиглана уу.
int үргэлжлэх хугацаа = sonar.ping_median (10); // үргэлжлэх хугацаа нь микросекундэд байна, хэрэв (үргэлжлэх хугацаа == 0) // Хэмжих алдаа - тодорхой бус эсвэл цуурай байхгүй {uint8_t байт = {0x00, 0b01111001, 0b01010000, 0b01010000}; // "Err" гэж бичих сегментүүд display.setSegments (байт); }
Энд би HC-SR04-т 10 удаа уншиж, дундаж үр дүнг өгөхийг хэлж байна. Хэрэв ямар ч утга буцааж өгөхгүй бол нэгж хүрээний гадна байна. Дараа нь би дээр дурдсан техникийг ашиглан 4 оронтой тодорхой сегментүүдийг хянаж, үсэг (хоосон), E, r, r -ийг ялгаж бичнэ. Хоёртын тэмдэглэгээг ашиглах нь битүүдийг сегментүүдтэй холбоход арай хялбар болгодог.
Алхам 6: Arduino Pro Mini -д код ачаалах (USB холболтгүй)
Өмнө нь хэлсэнчлэн, хятадын ebay худалдагчдын бараа бүтээгдэхүүнийг ирэхэд 6 долоо хоног ба түүнээс дээш хугацаа шаардагддаг бөгөөд миний прототип бичих, код бичих ажлыг зарим бүрэлдэхүүн хэсгүүд ирэхийг хүлээж байхдаа хийдэг байсан - Arduino Pro Mini бол тэдний нэг юм.
Би захиалж дуустал Pro Mini -ийн талаар анзаараагүй нэг зүйл бол ноорог татаж авах USB порт байхгүй байна. Тиймээс, галзуурсан googling хийсний дараа энэ тохиолдолд ноорог ачаалах хоёр арга байгааг олж мэдэв - нэг нь таны компьютер дээрх USB -ээс Pro Mini дээрх 6 тусгай зүү хүртэл ажилладаг тусгай кабель шаарддаг. Энэхүү 6 зүү бүхий бүлгийг ISP (системийн програмист) зүү гэж нэрлэдэг бөгөөд хэрэв та хүсвэл энэ аргыг ямар ч Arduino дээр ашиглаж болно, гэхдээ USB интерфэйс нь бусад бүх Arduino хувилбаруудад байдаг (I гэж бодоорой), энэ сонголтыг ашиглах нь илүү хялбар байдаг. Нөгөө арга нь USB интерфэйстэй өөр Arduino-тэй байхыг шаарддаг бөгөөд энэ нь "завсрын" үүрэг гүйцэтгэдэг.
Аз болоход, миний Arduino Uno -той болсноор би доор тайлбарлах хоёрдахь аргыг ашиглаж болно гэсэн үг юм. Үүнийг "Arduino -ийг ISP болгон ашиглах" гэж нэрлэдэг. Товчхондоо, та Arduino-ийн хоорондох тусгай ноорогыг ачаалж, үүнийг Цуваа интерфэйс болгон хувиргадаг. Дараа нь бодит ноорогоо ачаална уу, гэхдээ ердийн байршуулах сонголтын оронд та IDE цэснээс "Arduino -ийг ISP болгон ашиглах" сонголтыг ашигладаг. Arduino нь "хоорондоо явах" нь таны бодит зургийг IDE-ээс аваад өөрийн санах ойд ачаалахаас илүүтэйгээр Pro Mini-ийн ISP зүү рүү дамжуулдаг. Толгойгоо хэрхэн яаж ажиллуулахыг олж мэдсэн тохиолдолд энэ нь тийм ч хэцүү биш боловч үүнээс зайлсхийхийг хүсч болох нарийн төвөгтэй байдлын нэмэлт давхарга юм. Хэрэв ийм зүйл тохиолдвол, эсвэл танд өөр хоорондоо холбогдож болох өөр Arduino байхгүй бол та USB интерфэйсийг багтаасан Arduino Nano эсвэл бусад жижиг хэлбэрийн факторуудын нэгийг худалдаж авахыг хүсч магадгүй юм. програмчлалыг илүү хялбар болгож байна.
Энэ үйл явцыг ойлгоход тустай хэд хэдэн эх сурвалжийг энд оруулав. Arduino лавлагаа нь зорилтот төхөөрөмж рүү шинэ ачаалагчийг шарах тухай тусгайлан хэлж байгаа боловч та ноорогоо яг ийм байдлаар хялбархан ачаалж болно. Жулиан Илеттийн видео нь ойлголтыг илүү ойлгомжтой болгодог болохыг олж мэдсэн боловч тэрээр Arduino -ийн лавлах хэсэгт хоёр Arduino -ийг хэрхэн холбохыг тайлбарласан хэсгийг алгасаад оронд нь талхны тавцан дээр нүцгэн чип програмчилжээ.
- Arduino лавлах гарын авлага - Arduino -ийг ISP болгон ашиглах
- Жулиан Илеттийн YouTube видео - Arduino -ийг ISP болгон ашиглах
Pro Mini нь 6 ISP -ийн зүүг хооронд нь эвтэйхэн бүлэглэх боломжгүй тул та дижитал тээглүүрүүдийн аль нь 4 програмчлалын зүүтэй хамааралтай болохыг тайлах хэрэгтэй (бусад хоёр холболт нь зөвхөн Vcc ба Gnd - маш энгийн). Таны аз болоход би үүнийг аль хэдийн туулсан бөгөөд мэдлэгээ та бүхэнтэй хуваалцахад бэлэн байна - би ямар өгөөмөр хүн бэ !!
Arduino Uno болон Arduino -ийн гэр бүлийн бусад олон хүмүүс 6 зүүг 3х2 хэмжээтэй блок хэлбэрээр байрлуулсан байдаг (www.arduino.cc -ээс авсан зураг).
Харамсалтай нь Pro Mini тийм биш. Доороос харж болно, тэдгээрийг тодорхойлоход маш хялбар бөгөөд 3 блоктой 2 блок хэлбэрээр байрлуулсан хэвээр байна. MOSI, MISO, SCK нь Pro Mini болон Arduino Uno хоёулангийнх нь дижитал тээглүүр 11, 12, 13 -тай адил бөгөөд ISP програмчлалын хувьд 11 -ээс 11, 12 -оос 12, 13 -аас 13 хүртэл холбоно уу. Mini's Reset pin нь Uno pin 10 -тэй, Pro Mini -ийн Vcc (5v)/Ground нь Arduino +5v/Ground -тэй холбогдсон байх ёстой. (Www.arduino.cc -аас авсан зураг)
Алхам 7: Чуулган
Өмнө дурьдсанчлан, би энэ хэрэгт анхаарал хандуулж, харамссан. Бүх бүрэлдэхүүн хэсгүүдийг багтаах нь жинхэнэ шахалт байв. Үнэндээ би түлхэх товчлуурын контактуудыг хажуу тийш нь нугалж, хайрцгийн гүнд багтахаар арай дээш өргөхийн тулд гадна талд нь баглаа боодол тавьж, тал бүрээс нь 2-3 мм зүлгэх шаардлагатай болсон. дэлгэцийн модулийн самбар нь бас таарах болно.
Би хэт авианы мэдрэгчийг нэвтрүүлэхийн тулд хайрцагт 2 цооног өрөмдсөн. Би нүхийг арай жижигхэн өрөмдөж, дараа нь жижиг эргэдэг нунтаглагч ашиглан аажмаар нэмэгдүүлж, ингэснээр би тэднийг сайн "түлхэх" болгож чадсан юм. Харамсалтай нь тэд хайрцгийн дотроос бутлуурыг ашиглахын тулд хажуу талдаа хэт ойрхон байсан бөгөөд үүнийг гаднаас хийх ёстой байсан тул олон зураас, тэшүүрийн толбо гулсаж, улмаар энэ нь доод талд байна. ямар ч байсан - хэнд хамаатай юм бэ?
Дараа нь би нэг үзүүрээр дэлгэцийг нэвтлэхэд тохиромжтой хэмжээтэй нүхийг хайчилж авлаа. Дахин хэлэхэд, хайрцагны хэмжээтэй холбоотой миний таамаглал намайг ар тал руу нь хазав, учир нь үүр нь дэлгэцийн дээр маш нарийхан хэсгийг үлдээсэн бөгөөд энэ нь намайг жигд бөглөх үед гарцаагүй эвдэрчээ. Өө, энэ бол супер цавууг бүтээсэн зүйл юм …
Эцэст нь бүх бүрэлдэхүүн хэсгүүдийг хайрцагт ойролцоогоор байрлуулсны дараа би тагны нүхийг хаана байрлуулахаа хэмжсэн бөгөөд ингэснээр товчлуурын бие нь эцсийн боломжтой орон зайд унах болно. Зүгээр !!!
Дараа нь би бүх эд ангиудыг гагнаж, нугалж, нунтаглаж, шүргэснийхээ дараа бүгдийг нь хайрцагт угсрахаас өмнө ажилласаар байгааг туршиж үзэв. Та дэлгэцийн модулийн доор байрлах холбогчийг Arduino (цагаан тугалга) дээр Gnd -тэй холбосон 10 -р холбогчийг харж болно, ингэснээр төхөөрөмжийг шалгалт тохируулгын горимд оруулна. Дэлгэц нь миний вандан сандал дээрээс 122см өндөрт уншдаг бөгөөд энэ нь цонхны хүрээний дээд талаас (тааз байхаар хэтэрхий бага) туссан дохиог авсан байх ёстой.
Дараа нь энэ нь халуун цавуу бууг эвдэж, бүх эд ангиудыг гутлаар нь хагалах явдал байв. Үүнийг хийсний дараа модулийг нааж дууссаны дараа дэлгэцийн модулийн дээд ба тагны хоорондох жижигхэн зай нь таг нь миний хүссэн шиг тийм ч таарахгүй байх болно.. Би нэг л өдөр энэ талаар ямар нэгэн зүйл хийхийг оролдож магадгүй, эсвэл магадгүй …
Алхам 8: Дууссан нийтлэл
Угсралтын дараах хэд хэдэн туршилт, модны гүнийг тооцоолохын тулд миний кодыг залруулсны дараа би төхөөрөмжийг боолттой болголоо (миний тооцоололд үүнийг огт анзаарсангүй - d'oh !!), энэ бүхэн боллоо.. Эцэст нь!
Угсарсан туршилт
Энэ төхөөрөмж миний вандан сандал дээр доошоо харсан байхад туссан дохио байхгүй нь ойлгомжтой тул төхөөрөмж алдааны нөхцөлийг зөв харуулав. Хамгийн ойрын тусгал гадаргуу нь тухайн төхөөрөмжийн хүрээнээс хол байвал мөн адил байх болно.
Миний вандан сандал дээрээс шал хүртэл 76см (сайн, 72см, 4см модны гүн).
Төхөөрөмжийн доод талд дамжуулагч ба хүлээн авагч модны хэсгийг овоолж байгааг харуулав - Би үүнийг модны хэсэг гэж нэрлэхээ үнэхээр болих ёстой - үүнийг цаашид хэмжигч тогтворжуулах, нарийвчлалтай байрлуулах платформ гэж нэрлэх болно! Аз болоход, энэ бол хамгийн сүүлд би дурдах болно;-)
Өө - та энэ бүх муухай зураас, тэшүүрийг эндээс харж болно …
… Энд миний бэлэн савны хүчин чадлыг 5%нарийвчлалтай хэмждэг ердийн ажлын горимд байрлуулсан бэлэн бүтээгдэхүүн байна. Ням гарагийн үдээс хойш маш бороотой байсан нь намайг энэ төслийг дуусгахад хүргэсэн бөгөөд ингэснээр нэгжийн борооны дуслууд, 90% нь маш тааламжтай уншсан.
Энэхүү зааварчилгааг унших нь танд таалагдсан гэж найдаж байна, мөн Arduino програмчлал, физик, дуу авианы/хэт авианы тусгал, төслийн төлөвлөлтөнд таамаглах таамаглалыг ашиглах талаар бага зэрэг сурч мэдсэн гэж найдаж байна. өөрийн борооны усны сав хэмжигч - дараа нь ашиглахын тулд борооны усны сав суурилуулж, байгаль орчинд бага зэрэг тусалж, усны төлбөрөө хэмнээрэй.
Дараагийн өдөр нь юу болсныг үргэлжлүүлэн уншина уу!
Алхам 9: Postscript - Зуун (ба тав) хувь?
Тиймээс, бороотой ням гарагийн дараа Даваа гарагт сав үнэхээр боломжтой байсан. Би үүнийг бүрэн дүүрэн харж байсан цөөхөн хэдэн тохиолдлын нэг тул хэмжигчийг жиших хамгийн тохиромжтой цаг гэж бодсон боловч энэ нь 105%гэж бүртгэгдсэн тул ямар нэг зүйл буруу байсан нь тодорхой байна.
Би саваа гаргаж ирээд усны хамгийн дээд гүн 140см, толгойны 16см (савны гаднаас хийсэн харааны таамаглал дээр үндэслэсэн) гэсэн анхны таамаглал нь бодит хэмжүүрээс арай өөр болохыг олж мэдэв. Миний 100% жишиг үзүүлэлтүүдийн бодит өгөгдлөөр зэвсэглэсэн тул би кодоо өөрчилж, Arduino -г дахин ачаалж чадсан.
Усны хамгийн дээд гүн нь 147см бөгөөд хэмжих цэг нь 160см бөгөөд толгойны 13см (савны доторх толгойны нийлбэр, савны хүзүүний өндөр, хоолойны хэсгийн гүн), үгүй, юу вэ? Би хэмжигч тогтворжуулах, нарийвчлалтай байрлуулах платформын гүнийг хэлж байна!).
MaxDepth болон headroom хувьсагчдыг зохих ёсоор зассны дараа sonar объектын хамгийн дээд хүрээг 160cm болгож тохируулсны дараа хурдан шалгалт хийсний дараа хэмжигчийг бага зэрэг өргөснөөр 95% болж буурсан байна. ус хэрэглэж байсан).
Ажлаа хийлээ!
PS - энэ бол зааварчилгаа өгөх анхны оролдлого юм. Хэрэв танд миний хэв маяг, хошин шогийн мэдрэмж, алдаагаа хүлээн зөвшөөрөх үнэнч байдал (хөөе, би төгс биш ч гэсэн …) гэх мэт зүйлс таалагддаг бол надад мэдэгдээрэй, энэ нь надад өөр нэг зүйлийг хийх түлхэц өгөх болно.
Алхам 10: Дараагийн бодол
Ашиглах хүчин чадал
Энэхүү зааварчилгааг хэвлэснээс хойш хэдэн долоо хоног өнгөрч байгаа бөгөөд би хариулахдаа олон сэтгэгдлүүд ирсэн бөгөөд зарим нь цахим болон гарын авлагын альтернатив механизмуудыг санал болгов. Гэхдээ энэ нь намайг бодоход хүргэсэн бөгөөд би эхэндээ онцлон хэлэх ёстой зүйл байсан байх.
- Миний танк нь газрын түвшинд суурилуулсан насостой бөгөөд савны ёроолоос арай доогуур байна. Шахуурга нь системийн хамгийн доод цэг бөгөөд насосны ус даралттай байдаг тул би савныхаа хүчин чадлыг бүрэн ашиглаж чадна.
- Гэсэн хэдий ч - хэрэв танк нь насосгүй бөгөөд хүндийн хүчний тэжээлд тулгуурладаг бол танкны үр ашигтай хүчин чадал нь цоргоны өндрөөр хязгаарлагддаг. Таны саванд үлдсэн ус цоргоноос доогуур байвал ус урсахгүй болно.
Тиймээс, та электрон хэмжигч, гарын авлагын харааны шил, хөвөх ба туг хэлбэрийн систем ашиглаж байгаа эсэхээс үл хамааран насосгүй бол танкны үр дүнтэй "суурь" нь танкны гаралтын өндөр эсвэл товших
Зөвлөмж болгож буй:
Хэт авианы борооны хэмжигч: Raspebbery Pi нээлттэй цаг уурын станц: 1 -р хэсэг: 6 алхам
Хэт авианы борооны хэмжигч: Raspebbery Pi нээлттэй цаг уурын станц: 1 -р хэсэг: Арилжааны зориулалттай IoT (Интернетийн зүйл) Цаг агаарын станцууд үнэтэй бөгөөд хаа сайгүй байдаггүй (Өмнөд Африк шиг). Цаг агаарын эрс тэс нөхцөл байдал бидэнд нөлөөлж байна. SA нь сүүлийн хэдэн арван жилийн хамгийн хүнд ган гачигийг туулж байна, дэлхий дулаарч, тариалан эрхэлж байна
Arduino Nano багтаамжийн тоолуур: 8 алхам (зурагтай)
Arduino Nano Capacitance Meter: Энэхүү төсөл нь 16X2 хэмжээтэй LCD дэлгэц, 10K потенциометр, Arduino Nano -ээс бүрдэх тул бусад хэсгүүд нь EasyEda програм хангамж, 1 X 40 HEADER, 0.1 " SPACING ба 1x6 FEMAL
Усны урсгалын тоолуур бүхий урсгалын хэмжилт (хэт авианы): 5 алхам (зурагтай)
Усны урсгалын тоолуурын тусламжтайгаар урсгалын хэмжилт (Хэт авианы): Ус бол манай гаригийн чухал нөөц бөгөөд хүн төрөлхтөнд өдөр бүр ус хэрэгтэй байдаг. Ус нь янз бүрийн үйлдвэрүүдэд зайлшгүй шаардлагатай бөгөөд хүн төрөлхтөн бидэнд өдөр бүр хэрэгтэй байдаг. Ус улам бүр үнэ цэнэтэй болж, хомсдохын хэрээр үр дүнтэй хяналт тавьж, хүн төрөлхтөнийг
Хэт авианы савны түвшин хэмжигч: 5 алхам (зурагтай)
Хэт авианы савны түвшин хэмжигч: Том диаметртэй худаг, танк эсвэл задгай саванд байгаа шингэний түвшинг хянах шаардлагатай юу? Энэхүү гарын авлагад хямд электрон төхөөрөмж ашиглан контактгүй шингэний түвшний тоолуурыг хэрхэн яаж хийхийг зааж өгөх болно
Хэт авианы мэдрэгч ба Funduino усны мэдрэгч ашиглан Arduino -ийн усны түвшинг тодорхойлох арга: 4 алхам
Хэт авианы мэдрэгч ба Funduino усны мэдрэгч ашиглан Arduino -ийн усны түвшинг тодорхойлох арга: Энэхүү төсөлд би хямд ус илрүүлэгчийг хоёр аргыг ашиглан хэрхэн бүтээхийг танд үзүүлэх болно: 1. Хэт авианы мэдрэгч (HC-SR04) .2. Funduino усны мэдрэгч