Агуулгын хүснэгт:
Видео: Интернет хурд хэмжигч: 4 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Тойм
Энэхүү "Интернет хурд хэмжигч" нь танд сүлжээнийхээ хэрэглээг бодит цаг хугацаанд хянах боломжийг олгоно. Энэ мэдээлэл нь ихэнх гэрийн чиглүүлэгчийн вэб интерфэйс дээр байдаг. Гэсэн хэдий ч үүнд хандахын тулд одоо байгаа ажлаа зогсоох шаардлагатай байна.
Би энэ мэдээллийг одоогийн ажлаа тасалдуулалгүйгээр үзэх, хурдан хараад ойлгомжтой хэлбэрээр харуулах, мөн аль болох олон чиглүүлэгчтэй ажиллах боломжтой байдлаар мэдээлэл авахыг хүссэн юм. үүнийг бас ашиглах боломжтой.
Энэ нь зүйлийг хэрхэн хийдэг
Би чиглүүлэгчээс мэдээлэл авахын тулд SNMP (Энгийн сүлжээний менежментийн протокол) -ыг сонгохоор шийдсэн. SNMP нь сүлжээний тоног төхөөрөмжид өргөн хэрэглэгддэг бөгөөд хэрэв таны төхөөрөмж үүнийг анхдагчаар дэмждэггүй бол SNMP -ийг хэрэгжүүлэхийн тулд DDWRT (нээлттэй эхийн чиглүүлэгчийн програм хангамж) ашиглаж болно.
Мэдээллийг ойлгоход хялбар байдлаар харуулахын тулд би машинаас хэмжигч ашигласан. Автомашины хэмжигч нь анхаарал сарниулах, төөрөгдүүлэхгүйгээр мэдээлэл өгөх зориулалттай тул жолооч нүдээ зам дээр байлгаж чаддаг. Үүнээс гадна би жаахан хэвтэж байсан.
Энэ нь миний ширээн дээр байх тул би компьютерын дагалдах хэрэгсэл бүгд RGB байх ёстой тул арын гэрлийг RGB болгохоор шийдсэн. Зөв үү?
Сорилтууд
Надад байсан хэмжүүрүүд нь Air-Core хөдөлгүүрийг ашигладаг байсан. Энэ төслөөс өмнө би эдгээрийн талаар хэзээ ч сонсож байгаагүй.
Википедиагаас: Агаарын гол хэмжигч нь хөндий камерыг тойрсон бие даасан хоёр перпендикуляр ороомогоос бүрдэнэ. Зүү босоо ам тасалгаанд цухуйж, тэнхлэгт байнгын соронз наалддаг. Перпендикуляр ороомогоор гүйдэл гүйх үед тэдгээрийн соронзон орон давхцаж, соронз нь хосолсон талбаруудтай чөлөөтэй нийцдэг.
Менежерийн тохиргоонд SNMP -ийг дэмждэг Arduino -ийн номын сан олдсонгүй. SNMP нь агент ба менежер гэсэн хоёр үндсэн хэлбэртэй байдаг. Агентууд хүсэлтэд хариу өгч, менежерүүд агентууд руу хүсэлт илгээдэг. Би 0neblock -ийн үүсгэсэн Arduino_SNMP номын санг өөрчилж менежерийн функцийг ажиллуулж чадсан. Би C ++ дээр Arduino дээр LED анивчихаас өөр програмчилж байгаагүй, тиймээс хэрэв SNMP номын сантай холбоотой асуудал байвал надад мэдэгдээрэй, би тэдгээрийг засахыг хичээх болно, гэхдээ одоо ажиллаж байна.
Нэмж дурдахад SNMP нь бодит цаг хугацаанд үзэхэд зориулагдаагүй болно. Зориулалтын хэрэглээ нь статистикийг хянах, тасалдлыг илрүүлэхэд зориулагдсан болно. Үүний улмаас чиглүүлэгчийн мэдээллийг зөвхөн 5 секунд тутамд шинэчилдэг (таны төхөөрөмж өөр байж болно). Энэ нь хурдны шалгалтын дугаар болон зүүний хөдөлгөөний хоорондох хоцролтын шалтгаан юм.
Алхам 1: багаж хэрэгсэл, материал
Бидэнд 3 бүрэн H гүүр хэрэгтэй болно. Миний ашигласан загвар бол Dual TB6612FNGand Dual L298N юм.
Агаарын цөмийн идэвхжүүлэгч бүрт ороомогыг бие даан хянах шаардлагатай байдаг тул 2 бүрэн H гүүр шаардагдана.
Миний ашиглаж буй хэмжигчдийн нэг нь диод ба резистороор газардсан богино ороомогтой. Энэ шинжлэх ухааныг би сайн мэдэхгүй байна, гэхдээ энэ нь зөвхөн нэг ороомогтой 90 градус эргүүлэх боломжийг олгодог.
Би ESP32 -ийг асаахын тулд сонгосон L298N хавтангийн нэг хэсэг болох 12 -аас 5V хүртэлх зохицуулагчийг ашиглах болно.
Бүх LED хэлхээ нь заавал биш, мөн JST холбогч юм. Та утсыг ESP32 болон мотор драйвер руу шууд гагнах боломжтой.
Алхам 3: Кодын дизайн
Кодын тохиргоо
ESP32 хавтанг ашиглахын тулд бид Arduino -г тохируулах шаардлагатай болно. Энд ESP32 Arduino -ийн тохиргоог хийх сайн гарын авлага байна.
Танд энд байрлах Arduino_SNMP номын сан хэрэгтэй болно.
Кодыг тохируулахын тулд та зарим мэдээллийг цуглуулах шаардлагатай болно.
- Чиглүүлэгчийн IP
- Хамгийн их байршуулах хурд
- Татаж авах хамгийн дээд хурд
- Таны WiFi нэр, нууц үг
- OID нь таны чиглүүлэгчийн WAN интерфэйс дээр "орох" ба "гарах" гэсэн найман тоог агуулдаг
Бидний хүсч буй мэдээллийн стандарт OIDs (Object Identifiers) байдаг. MIB-2 стандартын дагуу бидний хүссэн тоонууд нь:
ifInOctets.1.3.6.1.2.1.2.2.1.16. X
ifOutOctets.1.3.6.1.2.1.2.2.1.10. X
Энд X бол статистик мэдээллийг авахыг хүсч буй интерфэйсэд өгсөн дугаар юм. Миний хувьд энэ тоо 3 байна. Энэ бол таны хувьд зөв OID гэдгийг батлахын тулд ямар интерфэйсийн дугаар ашиглах шаардлагатайг тодорхойлох нэг арга бол MIB Browser гэх мэт хэрэгслийг ашиглах явдал юм.
Хамгийн их хурдыг авахын тулд би SpeedTest.net -ийг ашигласан. Mbps хурдтай болсны дараа та энэ томъёог ашиглан октет болгон хөрвүүлэх шаардлагатай болно.
Секундэд октет = (Mbps * 1048576 дахь хурдны туршилтын үр дүн) / 8
Кодын функц
Код нь чиглүүлэгч рүү SNMP авах хүсэлтийг илгээдэг. Дараа нь чиглүүлэгч нь дугаараар хариулдаг бөгөөд энэ нь илгээсэн эсвэл хүлээн авсан октетуудын тоог илэрхийлдэг. Үүний зэрэгцээ бид Arduino ажиллаж эхэлснээс хойш хэдэн миллисекунд өнгөрч байгааг бүртгэдэг.
Энэ процесс дор хаяж хоёр удаа хийгдсэний дараа бид энэ кодыг ашиглан хамгийн их утгыг үндэслэн хэрэглээний хувийг тооцоолж болно
процентDown = ((float) (byteDown - byteDownLast)/(float) (maxDown * ((millis () - timeLast)/1000))) * 100;
Математик дараах байдлаар задардаг.
octetsDiff = snmp_result - Өмнөх_ snmp_result
timeFrame = currentTime - timeLast
MaxPosableOverTime = (timeFrame * Octets_per_second)/1000
Хувь = (octetsDiff / MaxPosableOverTime) * 100
Сүлжээний хэрэглээний хувь хэмжээ бидэнд байгаа тул үүнийг хэмжигч дээр бичихэд л хангалттай. Бид үүнийг 2 алхамаар хийдэг. Эхлээд бид updateDownloadGauge функцийг ашигладаг. Энэ функцэд бид "газрын зураг" -ыг ашиглан хувь хэмжээг хэмжигч дээрх радианы байрлалыг илэрхийлсэн тоо болгон хөрвүүлнэ. Дараа нь бид зүүг шинэ байрлалд шилжүүлэхийн тулд setMeterPosition функцэд энэ дугаарыг өгнө.
Алхам 4: Кейсийн дизайн
Бүх зүйлийг багтаахын тулд би fusion360 -д хаалт хийж 3D хэвлэсэн. Миний хийсэн загвар харьцангуй энгийн. Би халуун цавуугаар эд ангиудыг дотор талд нь бэхэлсэн бөгөөд хэмжигчийг урд болон арын хавтасны хооронд хавчих замаар бэхлэв. Кейс үүсгэхийн тулд 3D хэвлэх шаардлагагүй. Жишээлбэл, та модоор хайрцаг хийж болно, эсвэл хэмжигч орж ирсэн бүх зүйлийг анхны хайрцагт хийж болно.
Хэрэв та тэдгээрийг үзэхийг хүсч байвал миний STL файлууд олон зүйл дээр байдаг, гэхдээ хэрэв та миний ашиглаж байсан яг ижил хэмжигчийг авахгүй бол тэдгээр нь ажиллахгүй байх магадлалтай.
Хэргийн файлууд:
Уншсанд баярлалаа. Хэрэв танд асуулт байгаа бол надад мэдэгдээрэй, би хариулахын тулд чадах бүхнээ хийх болно.
Зөвлөмж болгож буй:
Интернет хурд хэмжигч: 9 алхам (зурагтай)
Интернет хурд хэмжигч: Энэтхэгт бүрэн түгжигдэх ажиллагаа явагдаж байгаатай холбогдуулан шуудангийн үйлчилгээ зэрэг бүх зүйл хаагдсан байна. ПХБ -ийн шинэ төслүүд, шинэ бүрэлдэхүүн хэсгүүд байхгүй, юу ч биш! Тиймээс уйтгартай байдлаа даван туулж, завгүй байхын тулд би өөр хэсгүүдээсээ ямар нэгэн зүйл хийхээр шийдсэн
Унадаг дугуйн хурд хэмжигч дэлгэц: 10 алхам (зурагтай)
Унадаг дугуйн хурд хэмжигч дэлгэц: Энэ юу вэ? Нэрээс нь харахад энэхүү төсөлд та дугуйныхаа хурд хэмжигч, одометрээс бүрдэх дэлгэцийг хэрхэн бүтээх талаар сурах болно. Бодит цагийн хурд, аялсан зайг заана. Энэ төслийн нийт өртөг бараг дуусч байна
GPS хурд хэмжигч: 4 алхам (зурагтай)
GPS -ийн хурд хэмжигч: Миний ердийн жолоодож явдаг миний компанийн машин "жижиг" гэсэн загвартай байдаг. Үе үе асуудал гардаг, хурд хэмжигч машин жолоодохдоо 0 км/цаг хүртэл унадаг (хэсэг хугацааны дараа дахин асдаг) .Ер нь машин жолоодохыг мэддэг бол энэ нь тийм ч том асуудал биш юм
Ажиллаж буй RC машины хурд хэмжигч: 4 алхам (зурагтай)
Ажиллаж буй RC машины хурд хэмжигч: Энэ бол би хөнгөн Land Rover -ийн RC -ийн томоохон бүтцийн нэг хэсэг болгон бүтээсэн богино төсөл юм. Би хяналтын самбар дээр ажиллаж байгаа хурд хэмжигчийг байрлуулахыг хүсч байна гэж шийдсэн боловч servo нь үүнийг огтлохгүй гэдгийг мэдэж байсан. Нэг л боломжийн сонголт байсан: d
DIY мөчлөгийн хурд хэмжигч: 6 алхам (зурагтай)
DIY мөчлөгийн хурд хэмжигч: Миний B.tech -ийн сэдэв болох MEM (Механик инженерийн хэмжилт) төслийг хийх үед энэ төсөл санаанд орлоо. Энэхүү санаа нь миний унадаг дугуйн дугуйны өнцгийн хурдыг хэмжих явдал юм. Тиймээс диаметр ба бүх цаг үеийн математикийн домгийг мэдэх нь