Мазмұны:
- 1 -қадам: Жоспар
- 2 -қадам: Сізге қажет нәрселер
- 3-қадам: Толық масштабтағы ауытқу тогын есептеу
- 4 -қадам: SNMP GET сұрауын жасау
- 5 -қадам: GET Response түсіну
- 6 -қадам: аналогты сандық түрлендіргіш (DAC)
- 7 -қадам: Ассамблея
- 8 -қадам: кодтау уақыты
- 9 -қадам: ләззат алыңыз
Бейне: Интернет -спидометр: 9 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Үндістанда толық құлыптау жүріп жатқанда, пошта қызметтерін қосқанда барлығы жабылды. ПХД жаңа жобалары жоқ, жаңа компоненттер жоқ, ештеңе жоқ! Сондықтан мен шаршауды жеңу үшін және өзімді бос ұстау үшін үйде бар бөлшектерден бірдеңе жасауды шештім. Мен электронды үйінділерден іздей бастадым, ескі, сынған аналогты мультиметрді таптым. Мен «метрлік қозғалысты» құтқардым және қандай да бір ақпаратты көрсетуге шешім қабылдадым, бірақ не екенін білмедім. Біріншіден, мен COVID-19 статистикасын көрсетуді ойладым, бірақ Интернетте әлдеқайда жақсы жобалар бар. Сонымен қатар, деректер бірнеше сағаттан кейін жаңартылады және есептегіштің көрсеткіші скучно болады. Мен әр секунд сайын өзгеретін деректерді алғым келді. Мен инстаграмда ұсыныстар сұрадым, ал менің ізбасарларым Интернет спидометрімен жауап берді. Бұл қызықты естілді және оны жасауға шешім қабылдадым!
Бұл нұсқаулықта мен сізге WiFi маршрутизаторынан SNMP көмегімен деректерді қалай алғанымды және есептегіште жүктеу мен жүктеу жылдамдығын қалай көрсеткенімді көрсетемін.
Бастайық
1 -қадам: Жоспар
Әдеттегідей, жобаны бастамас бұрын мен интернетте біраз зерттедім. Мен осы тақырыпқа байланысты бірнеше жобаларды таптым. Олар екі түрлі болды. WiFi сигналының «күшін» өлшеу арқылы интернет жылдамдығын көрсеткен. Мен сетевой маман емеспін, бірақ бұл дұрыс емес сияқты. Қалғандары кідірісті өлшеді және жылдамдықты баяу, орташа немесе жылдам деп бөлді. Кідіріс - бұл сұрау жіберу мен жауап алу арасындағы уақыт аралығы, сондықтан ол интернет жылдамдығының нақты көрінісі бола алмайды. Біз оны желінің жауап беру жылдамдығы деп атай аламыз! Содан кейін кейбір деректерді жүктеуге кететін уақытты өлшейтін және соның негізінде интернет жылдамдығын есептейтін заңды жобалар болды.
Бірақ дәл осы жобада (Alistair) мен қарапайым желіні басқару протоколы немесе SNMP туралы білдім. SNMP көмегімен біз WiFi маршрутизаторымен байланыса аламыз және одан қажетті деректерді тікелей аламыз. Оңай, иә? Шындығында, жоқ! Wi -Fi маршрутизаторларының әр түрлі модельдері әр түрлі параметрлерге ие және сіз нәтижені алғанға дейін көптеген сынақтар мен қателіктерді қажет етеді. Қорықпа. Мен SNMP туралы білгенімді және алдағы қадамдарда кездесетін қиындықтарды қысқаша түсіндіремін.
Сондықтан WiFi маршрутизаторына қосылу үшін NodeMCU пайдалану жоспарда бар. Бұл соңғы нәтижеге жету үшін қажет қадамдар:
- Маршрутизаторға қажетті деректерді сұрауды жіберіңіз
- Маршрутизатордан жауап алыңыз
- Жауапты талдаңыз және одан қажетті деректерді талдаңыз
- «Шикі» деректерді түсінікті ақпаратқа айналдырыңыз
- Есептегіш үшін интернет жылдамдығына пропорционалды кернеу жасаңыз
- Қайталау
Есептегішті басқару үшін мен DAC немесе Digital to Analog Converter қолданамын.
2 -қадам: Сізге қажет нәрселер
1x NodeMCU
1x аналогты метр қозғалысы
1x MPU4725 DAC
1x SPDT қосқышы
1х 10 к потенциометр
1x резистор
3-қадам: Толық масштабтағы ауытқу тогын есептеу
Ескерту: Нақты құрастыру үшін 7 -қадамға өтіңіз!
Егер сіз есептегіштің толық ауытқу тогын білсеңіз, бұл қадамды өткізіп жіберіңіз. Менің есептегішімде бұл туралы ештеңе айтылмаған, сондықтан мен есептеуге тура келді. Алдымен, мұндай қозғалыс қалай жұмыс істейтінін тез көрейік. Ол магнит өрісінде ілінген катушкадан тұрады. Катушка арқылы ток өткенде, Фарадей заңы бойынша, ол күшке ұшырайды. Катушка магнит өрісінде еркін айналуға рұқсат етіледі, сонымен қатар катушкаға бекітілген көрсеткіш. Көрсеткішті «шкала соңында» жылжытатын ток шамасы толық ауқымды ауытқу тогы деп аталады. Бұл сонымен қатар катушка арқылы өтуге рұқсат етілуі керек максималды ток.
Көп нәрсе болады, бірақ бұл біздің істеп жатқан ісімізге жеткілікті. Бізде қазір қозғалыс бар. Оны вольтметр ретінде қатарға жоғары қарсылықты қосу арқылы немесе оған параллель шағын қарсылықты қосу арқылы амперметр ретінде пайдалануға болады. Біз оны Интернет жылдамдығына пропорционалды кернеуді көрсету үшін вольтметр ретінде қолданатын боламыз. Сонымен, біз тізбектей қосылатын қарсылықты есептеуіміз керек. Ол үшін алдымен толық ауқымды ауытқу токын есептеу керек.
- Жоғары қарсылық мәнін таңдаңыз (мысалы,> 100k)
- Оны қозғалыспен тізбектей қосыңыз және кастрюль арқылы айнымалы кернеуді қолданыңыз.
- Көрсеткіш шкаланың соңына жеткенше кернеуді баяу арттыра беріңіз.
- Мультиметр көмегімен ағып жатқан токты өлшеңіз. Бұл толық ауқымды ауытқу тогы. (Менің жағдайда I = 150uA)
Біз 0 -ден VCC -ге дейінгі кернеу диапазонына ие DAC қолданамыз (NodeMCU арқасында 3.3В). Бұл өлшегішке 3.3В қолданылған кезде ол шкаланың соңына бағытталуы керек дегенді білдіреді. Бұл толық ауытқу тогы 3.3В қосылған кезде тізбек арқылы өтетін кезде болуы мүмкін. Ом заңын қолдана отырып, 3.3/(толық ауқымды ауытқу тогы) тізбектей салынатын қарсылық мәнін береді.
4 -қадам: SNMP GET сұрауын жасау
Қарапайым желіні басқару протоколы (SNMP) - бұл IP желілерінде басқарылатын құрылғылар туралы ақпаратты жинауға және реттеуге арналған және Интернеттің стандартты хаттамасы, бұл ақпаратты құрылғының мінез -құлқын өзгерту үшін өзгертуге арналған. Әдетте SNMP қолдайтын құрылғыларға кабельдік модемдер, маршрутизаторлар, қосқыштар, серверлер, жұмыс станциялары, принтерлер және т.б. Бұл құрастыру үшін біз WiFi маршрутизаторымен SNMP көмегімен байланысып, қажетті деректерді аламыз.
Алдымен, біз маршрутизаторға «GET Request» деп аталатын сұранысты жіберуіміз керек, ол үшін біз қажетті мәліметтер туралы мәліметтерді көрсетеміз. GET Request форматы суретте көрсетілген. Өтініш әр түрлі бөлімдерден тұрады. Мен сіз өзгерткіңіз келетін байттарды бөлдім.
Назар аударыңыз, бәрі он алтылық жүйеде.
SNMP хабарламасы -Менің жағдайда, барлық хабарламаның ұзындығы 40 (сұр түс), он алтылыққа ауыстырылғанда 0x28.
SNMP қауымдастық жолы - 'PUBLIC' мәні он алтылық жүйеде '70 75 62 6C 69 63 'түрінде жазылады, оның ұзындығы 6 (сары).
SNMP PDU түрі - Менің жағдайда, хабарламаның ұзындығы 27 (көк), яғни 0x1B.
Varbind тізімінің түрі - Менің жағдайда, хабарламаның ұзындығы 16 (жасыл), яғни 0x10.
Varbind түрі - Менің жағдайда, хабарламаның ұзындығы 14 (қызғылт), яғни 0x0E.
Объект идентификаторы -
Жоғарыда айтылғандай, SNMP қосылған желілік құрылғылар (мысалы, маршрутизаторлар, коммутаторлар және т.б.) OID арқылы анықталған объектілер ретінде жүйенің күйі, қолжетімділігі мен өнімділігі туралы мәліметтер базасын жүргізеді. Пакеттерді жүктеу және жүктеу үшін маршрутизатордың OID кодын анықтау қажет. Мұны ақысыз MIB шолушысы арқылы жасауға болады.
Мекенжайды 192.168.1.1 және OID.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) немесе.1.3.6.1.2.1.2.2.1.16.x ретінде енгізу. (ifOutOctets). Алынған операцияны таңдап, Өту түймесін басыңыз. Сіз OID -ті, оның мәні мен түрін көруіңіз керек.
Менің жағдайда, хабарламаның ұзындығы 10 (қызыл), яғни 0x0A. OID мәнін ауыстырыңыз. Бұл жағдайда '2B 06 01 02 01 02 02 01 01 10 10'
Міне бітті! Сіздің сұраныс хабарыңыз дайын. Қалған байттарды сол күйінде сақтаңыз.
Маршрутизаторда SNMP қосу:
- WiFi маршрутизаторының бетіне әдепкі шлюз арқылы кіріңіз. Браузерге 192.168.1.1 теріңіз және enter пернесін басыңыз. Әдепкі бойынша, пайдаланушы аты мен құпия сөз «әкімші» болуы керек.
- Мен TP-LINK (TD-W8961N) маршрутизаторын қолданамын. Бұл маршрутизатор үшін қатынауды басқару> SNMP тармағына өтіп, «Белсендірілген» тармағын таңдау керек.
- GET қауымдастығы: жалпыға қолжетімді
- Қақпа хост: 0.0.0.0
5 -қадам: GET Response түсіну
Сіз бұл қадамды өткізіп жібере аласыз, бірақ ақауларды жою қажет екенін білу жақсы.
Сіз кодты жүктеп, іске қосқаннан кейін, жауапты сериялық монитор арқылы қарай аласыз. Ол суретте көрсетілгендей болуы керек. Сіз іздеген бірнеше байт бар, мен оларды бөлектедім.
0 -ден бастап, 15 байт PDU түрін айтады - 0xA2 бұл GetResponse екенін білдіреді.
48 -ші байт деректер түрін айтады - 0x41 - бұл деректер түрі Counter.
49 -шы байт мәліметтердің ұзындығын айтады - 0x04 - бұл деректердің ұзындығы 4 байт.
50, 51, 52, 53 байт деректерді қамтиды.
6 -қадам: аналогты сандық түрлендіргіш (DAC)
Микроконтроллер - бұл аналогты кернеуді тікелей түсінбейтін сандық құрылғылар. Мен кіріс ретінде айнымалы кернеуді қажет ететін аналогты есептегішті қолданамын. Бірақ микроконтроллер тек HIGH (NodeMCU жағдайында 3.3V) және LOW (0V) шығара алады. Енді сіз PWM -ді неге пайдаланбайсыз деп айта аласыз. Бұл жұмыс істемейді, себебі метр тек орташа мәнді көрсетеді.
Мен айнымалы кернеуді алу үшін MCP4725 DAC қолданамын. Бұл 12-разрядты DAC, яғни қарапайым түрде ол 0-ден 3,3В-қа дейін 4096 (= 2^12) бөлікке бөледі. Ажыратымдылық 3,3/4096 = 0,8056мВ болады. Бұл 0 0В сәйкес келеді, 1 0.8056мВ сәйкес келеді, 2 1.6112мВ сәйкес келеді,….., 4095 3.3В сәйкес келеді.
Интернет жылдамдығы «0 -ден 7 мбит / с» -ке дейін «0 -ден 4095» -ке дейін «картаға» қойылады, содан кейін бұл жылдамдық кернеуді шығару үшін DAC -ге беріледі, ол интернет жылдамдығына пропорционалды болады.
7 -қадам: Ассамблея
Қосылымдар өте қарапайым. Схема осында бекітілген.
Мен таразыны жасап шығардым. Жоғарғы жүктеу жылдамдығына, ал төменгісі жүктеу жылдамдығына арналған. Мен жаңа таразыны ескінің үстіне жапсырдым.
Мен мультиметрден барлық ескі заттарды алып тастадым және ондағы барлық заттарды жинадым. Бұл тығыз орналасу болды. Мен жүктеу мен жүктеу жылдамдығын таңдау үшін пайдаланылатын қосқышты бекіту үшін алдыңғы жағында тесік бұрғылауым керек болды.
8 -қадам: кодтау уақыты
Код осында бекітілген. Оны Arduino IDE -де жүктеңіз және ашыңыз. Adafruit MCP4725 кітапханасын орнатыңыз.
Жүктеу алдында:
- WiFi SSID мен құпия сөзді енгізіңіз
- Шкалада көрсетілген жүктеу мен жүктеудің максималды жылдамдығын енгізіңіз.
- Жүктеу және пакеттерді жүктеу үшін сұраныс массивіне қажетті өзгерістер енгізіңіз.
- Жауапты сериялық мониторда қарау үшін 165 жолына түсініктеме бермеңіз.
Жүктеуді басыңыз!
9 -қадам: ләззат алыңыз
Қуатты қосыңыз және Интернетті аралап жүргенде иненің билеп тұрғанын тамашалаңыз!
Соңына дейін ұстағаныңыз үшін рахмет. Барлығыңызға бұл жоба ұнады деп үміттенемін және бүгін жаңа нәрсе білдіңіз деп үміттенемін. Егер сіз оны өзіңіз үшін жасайтын болсаңыз, маған хабарлаңыз. Басқа да осындай жобалар үшін менің YouTube каналыма жазылыңыз.
Ұсынылған:
BOSEBerry Pi Интернет радиосы: 4 қадам (суреттермен)
BOSEBerry Pi Интернет радиосы: Мен радио тыңдағанды жақсы көремін! Мен өз үйімде DAB радиосын қолдандым, бірақ қабылдаудың біркелкі еместігін және дыбыс үзіліп бара жатқанын байқадым, сондықтан мен өз интернет радиомды құруды шештім. Менде үйдің айналасында күшті Wi -Fi сигналы бар және сандық ағасы
DIY ИНТЕРНЕТ БАҚЫЛАНҒАН SMART LED MATRIX (ADAFRUIT + ESP8266 + WS2812): 8 қадам (суреттермен)
DIY ИНТЕРНЕТ БАҚЫЛАНҒАН SMART LED MATRIX (ADAFRUIT + ESP8266 + WS2812): Міне, мен сізге көрсетуге қуаныштымын жобаға 2 -ші авансым. Бұл DIY Smart Smart Matrix матрицасы туралы, оны көрсетуге мүмкіндік береді, мысалы YouTube статистикасы, Smart Home статистикасы, температура, ылғалдылық қарапайым сағат немесе жай ғана көрсете алады
Raspberry Pi арқылы жұмыс істейтін интернет радио: 5 қадам (суреттермен)
Raspberry Pi-мен жұмыс істейтін Интернет-радио: Ескі радиодағыдай, теру мен түймелерді басудың қанағаттанарлық бір жері бар. Өкінішке орай, бұл радиолардың көбі істен шыққан немесе станциялар тыныштықта қалған. Бақытымызға орай, кез келген радионы интернет -радиоға жаңарту қиын емес
1964 Dansette Pi Интернет радиосы: 6 қадам (суреттермен)
1964 Dansette Pi интернет-радиосы: 1960-жылдардың ортасындағы бұл сәнді Dansette портативті радиосы қазір 21-ші ғасырдың ең жақсы интернет радиостанцияларын жақсы жаңартудың арқасында ойнап жатыр. Барлық бастапқы басқару элементтері қайта қолданылды, және сіз бұл конверсия екенін ешқашан білмейсіз - сіз оны қосқанша
Roberts RM33 Raspberry Pi интернет -радиосы (тағы бір ): 8 қадам (суреттермен)
Roberts RM33 Raspberry Pi интернет -радиосы (тағы бір …): Иә, бұл Raspberry Pi интернет -радиосының басқа қондырғысы, мен де бірінші емес. Мен бұл құрылыстың неге соншалықты танымал екеніне сенімді емеспін, бірақ мен оны әлі де ұнатамын және бұл мен үшін соңғы болады деп айта алмаймын. Маған Роберттың келбеті қатты ұнайды