Мазмуну:
- 1 -кадам: Электр менен камсыздоо
- 2 -кадам: Санарип киргизүү
- 3 -кадам: Санарип жыйынтыктар
- 4 -кадам: Микро контроллер осциллятору
- 5 -кадам: LED көрсөткүчтөрү
- 6 -кадам: Микро процессордун баштапкы абалга келүү схемасы
- 7 -кадам: SIM800L модулу
- 8 -кадам: Микро контролер
- 9 -кадам: SRAM эс тутумун оптималдаштыруу
- 10 -кадам: Программалык камсыздоонун сериялык буферинин өлчөмү
- 11 -кадам: PC тактасын жасоо
- 12 -кадам: ЖК Башкармасынын Ассамблеясы
- 13 -кадам: AtMega328p программалоо
- 14 -кадам: Бирдикти туташтыруу
- 15 -кадам: Алгачкы орнотуу
- 16 -кадам: SMS буйруктары
Video: Arduino негизделген GSM/SMS алыстан башкаруу бирдиги: 16 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
! ! ! N O T I C E!
Жергиликтүү уюлдук телефон мунарасы менин аймагында жаңыртылгандыктан, мен бул GSM модулун колдоно албай калдым. Жаңы мунара мындан ары 2G түзмөктөрүн колдобойт. Ошондуктан, мен мындан ары бул долбоорго эч кандай колдоо көрсөтө албайм.
Хоббист үчүн GSM модулдарынын кеңири диапазону бар болгондуктан, көбүбүз аны сатып алууну токтоттук. Мен SIM800L модулун жергиликтүү түрдө сатып алдым жана модулдун ар кандай буйруктары менен ойноп бүттүм.
Arduino Uno жана Arduino IDEди колдонуу менен мен өз ойлорумду чындыкка айланта алдым. Бул оңой келген жок, анткени БИР ЭҢ ЧОН МАСЕЛЕ болгону 2KB SRAM менен чектелген. Интернетте жана ар кандай форумдарда көп изилдөөлөрдөн кийин, мен бул чектөөнү жеңе алдым.
Программалоонун ар кандай ыкмалары, Arduino компиляторун жакшыраак түшүнүү жана кошумча эстутум үчүн SIM картаны жана EEPROMду колдонуу бул долбоорду сактап калды. Кодго бир аз өзгөртүүлөр киргизилгенден кийин, бир жуманын ичинде туруктуу прототип түзүлүп, сыналган.
Чектелген SRAMдын бир кемчилиги - бул дисплей жана колдонуучу ачкычтары менен жабдылган эмес. Бул кодду толугу менен кайра жазууга алып келди. Колдонуучу интерфейси жок болгондуктан, долбоорду улантуунун бирден -бир варианты - бирдикти, ошондой эле колдонуучуларды конфигурациялоо үчүн SMS билдирүүлөрдү колдонуу.
Бул кызыктуу долбоор болуп чыкты жана өнүгүү улантылган сайын дагы келечектер кошулду.
Менин негизги максатым Arduino Uno, же бул учурда ATMEGA328p менен биригүү жана бетине орнотуучу компоненттерди колдонбоо болчу. Бул жалпыга бирдикти көчүрүү жана курууну жеңилдетет.
Бирдиктин өзгөчөлүгү:
- Бирдикте эң көп 250 колдонуучу программаланышы мүмкүн
- Төрт санарип чыгаруу
- Төрт санарип киргизүү
- Ар бир чыгаруу PULSE же ON/OFF чыгаруу катары конфигурацияланат
- Чыгуу импульсунун узактыгын 0,5.. 10 секунддун ортосунда коюуга болот
- Ар бир киргизүүнү ӨЧҮРҮП күйгүзүү үчүн конфигурациялоого болот.
- Ар бир киргизүүнү ON күйгүзүүнү OFF күйгүзүү үчүн конфигурациялоого болот
- Ар бир киргизүү кечигүү убактысын 0 секунддан 1 саатка чейин коюуга болот
- Киргизүүлөрдөгү өзгөртүүлөр үчүн SMS билдирүүлөр 5 башка колдонуучуга жөнөтүлүшү мүмкүн
- Ар бир киргизүү үчүн аттар жана статус текст колдонуучу тарабынан коюлушу мүмкүн
- Ар бир чыгаруу үчүн аттар жана статус тексттери колдонуучу тарабынан коюлушу мүмкүн
- Бирдик USSD билдирүү аркылуу SIM картанын балансы тууралуу билдирүүлөрдү алуу үчүн конфигурацияланышы мүмкүн.
- Бардык колдонуучулар бирдиктин I/O статусун жаңыртуусун талап кыла алышат
- Бардык колдонуучулар жеке билдирүүлөрдү SMS билдирүүлөрү аркылуу көзөмөлдөй алышат
- Бардык колдонуучулар бирдикке чалуу менен жеке чыгууларды көзөмөлдөй алышат
Коопсуздук өзгөчөлүктөрү
- Баштапкы орнотуу бирдикте турганда гана жасалышы мүмкүн.
- Баштапкы орнотууну MASTER USER гана аткара алат
- Баштапкы орнотуу буйруктары он мүнөттөн кийин автоматтык түрдө өчүрүлөт.
- Белгилүү колдонуучулардан келген чалуулар жана SMS гана блокту башкара алат
- Колдонуучулар MASTER USER тарабынан дайындалган чыгымдарды гана иштете алышат
Башка өзгөчөлүктөр
- Бул бөлүмгө чалуулар бекер, анткени чалуу эч качан жооп бербейт.
- Аппарат чакырылганда, чалуу 2 секунддан кийин гана түшөт. Бул чалууга бирдиктин чалууга жооп бергенин ырастоо.
- Эгерде SIM карта тейлөөчүсү USSD билдирүүлөрдү колдосо, балансты сурап билүү MASTER USER тарабынан жүргүзүлүшү мүмкүн. Баланс камтылган USSD билдирүүсү MASTER USERге жөнөтүлөт.
1 -кадам: Электр менен камсыздоо
Бирдик стандарттык коопсуздук тутумдарына (сигнализация системалары, электр гараж эшиктери, электр дарбазаларынын моторлору) туташтырылышы үчүн, блок мындай системаларда кадимкидей жеткиликтүү болгон 12В туруктуу токтон иштейт.
Power 12V IN жана 0V терминалдарда колдонулат, жана 1A сактандыргыч менен корголгон. Кошумча 12V OUT терминалдары бар, ошондой эле сактандыруучу менен корголгон.
Диод D1 бирдигин 12V линияларындагы тескери полярдык туташуулардан коргойт.
C1 жана C2 конденсаторлору 12В берүү линияларында болгон ызы -чууну чыпкалайт. 12В камсыздоо агрегаттын релесин иштетүү үчүн колдонулат.
5V камсыздоо LM7805L чыңалуу жөндөгүчүнөн турат жана SIM800L GSM модулуна, ошондой эле микро процессорго керектүү туруктуу +5V чыгарат. C3 жана C4 конденсаторлору +5V камсыздоо линиясында болушу мүмкүн болгон ар кандай ызы -чууну чыпкалайт. Салыштырмалуу чоң көлөмдөгү электролит конденсаторлору колдонулган, анткени SIM800L GSM модулу өткөрүүдө бир аз күч колдонот.
Чыңалуу жөндөгүчүнө жылуулук берүүчү керек эмес.
2 -кадам: Санарип киргизүү
Санариптик кирүү сигналдарынын бардыгы 12В, алар 5В микро контроллери менен туташуусу керек. Бул үчүн, оптикалык кошкучтар 5В системасынан 12В сигналдарды изоляциялоо үчүн колдонулат.
1K киргизүү каршылыгы 10mA тегерегиндеги opto кошкучка киргизүү агымын чектейт.
Улам мейкиндик чектелгендиктен, 5В тартылуу каршылыгы үчүн ПК тактасында бош орун жок болчу. Микроконтроллер кирүү казыктарын алсыз тартууну иштетүү үчүн орнотулган.
Opto кошкучтун киришинде (LOW) эч кандай сигнал жок болсо, opto coupler LED аркылуу эч кандай ток өтпөйт. Ошентип, opto кошкуч транзистору өчүрүлөт. Микроконтроллердин алсыз тартылышы коллекторду дээрлик 5В чейин көтөрөт жана микро контроллер тарабынан ЖОГОРКУ логика катары каралат.
Opto кошкучтун киришине 12V (HIGH) колдонулганда, 10mA тегерегинде опто кошкуч LED аркылуу агат. Ошентип, opto кошкуч транзистору күйгүзүлөт. Бул коллекторду дээрлик 0Вге түшүрөт жана микро контролер тарабынан LOW логика катары каралат.
Микроконтроллер көргөн кирүү 12V киришине салыштырмалуу тескери экенин эске алыңыз.
Кирүү пинин окуу үчүн кадимки код төмөнкүдөй көрүнөт:
логикалык Киргизүү = digitalRead (inputpin);
Тескери сигналды оңдоо үчүн төмөнкү кодду колдонуңуз:
логикалык Киргизүү =! digitalRead (inputpin); // Кетүү ! окуу алдында
Эми, микро контролер көргөн кириш 12В киришиндеги кирүүгө туура келет.
Акыркы киргизүү схемасы 4 санариптик кирүүдөн турат. Ар бир киргизүү PC тактасындагы терминалдарга туташтырылган.
3 -кадам: Санарип жыйынтыктар
Адатта, бир реле минималдуу гана рулду башкаргандыктан, эң жакшы ыкма транзистор драйверинин схемасын көрсөтүлгөндөй колдонуу. Бул жөнөкөй, арзан жана натыйжалуу.
Резисторлор жерге түшүүнү жана транзистордук базанын токту чектөөсүн камсыз кылат. Транзистор релени айдоо үчүн жеткиликтүү токту көбөйтүү үчүн колдонулат. Микроконтролдоочу пинден 1мА гана тартылганда, транзистор 100мА жүктү алмаштыра алат. Реленин көпчүлүк түрлөрү үчүн жетиштүү. Диод-бул релени которуу учурунда схеманы жогорку чыңалуудан коргоочу, артка чегинүүчү диод. Бул схеманы колдонуунун кошумча артыкчылыгы реленин иштөө чыңалуусу микро контроллердин чыңалуусунан айырмаланышы мүмкүн. Ошентип, 5В релесин колдонуунун ордуна, 48Вга чейин каалаган DC чыңалуусун колдонсо болот.
ULN2803 менен тааныштыруу
Долбоорго канчалык көп реле керек болсо, компоненттердин саны ошончолук жогору болот. Бул PCB дизайнын татаалдаштырат жана баалуу PCB мейкиндигин колдонушу мүмкүн. Бирок ULN2803 сыяктуу транзистор массивин колдонуу PCB өлчөмүн кичине сактоого жардам берет. ULN2803 микро контролердун 3.3V жана 5V кириштери үчүн идеалдуу келет жана 48В DCге чейин релелерди башкара алат. Бул ULN2803дө 8 жеке транзистордук схемалар бар, ар бир схема релени алмаштыруу үчүн зарыл болгон бардык компоненттер менен жабдылган.
Акыркы чыгаруу схемасы ULN3803 турат, 4 12V DC чыгаруу релесин айдайт. Эстафетанын ар бир байланышы PC Board терминалдарында жеткиликтүү.
4 -кадам: Микро контроллер осциллятору
Осциллятордук схема
Микроконтроллердин туура иштеши үчүн осциллятор керек. Arduino Uno дизайнын сактоо үчүн, схема 16 МГц стандарттуу осцилляторун колдонот. Эки вариант бар:
Кристалл
Бул ыкма эки жүктөөчү конденсаторго туташкан кристаллды колдонот. Бул эң кеңири таралган вариант.
Резонатор
Резонатор негизинен кристалл жана эки жүктөөчү конденсаторлор болуп саналат. Бул компоненттердин көлөмүн азайтат жана ЖК тактасында бош орунду көбөйтөт.
Компоненттердин санын мүмкүн болушунча аз кармоо үчүн мен 16 МГц резонаторун колдонууну чечтим.
5 -кадам: LED көрсөткүчтөрү
Кээ бир светодиодсуз кандай схема болот? Жөндөө 3мм диоддор үчүн PC тактасында жүргүзүлгөн.
1K резисторлор 5мАдан азыраак LED аркылуу токту чектөө үчүн колдонулат, 3мм бийик жаркыраган диоддорду колдонгондо, жарыктуулугу эң сонун.
Жарык диоддорун оңой чечмелөө үчүн эки түс колдонулат. Жарык берүүчү индикаторлор менен эки LEDди бириктирүү менен, бир гана эки LEDдан бир топ маалыматты алууга болот.
Кызыл LED
Кызыл LED мүчүлүштүктөрдүн шарттарын, узакка созулушун, туура эмес буйруктарды көрсөтүү үчүн колдонулат.
Жашыл LED
Жашыл LED дени сак жана/же туура киргизүүлөрдү жана буйруктарды көрсөтүү үчүн колдонулат.
6 -кадам: Микро процессордун баштапкы абалга келүү схемасы
Коопсуздук максатында, бирдиктин кээ бир функциялары блокту иштеткенден кийин алгачкы 10 мүнөттө гана жеткиликтүү.
Баштапкы абалга келтирүү баскычы менен, бирдикти баштапкы абалга келтирүү үчүн бирдиктин кубаттуулугун өчүрүүнүн кажети жок.
Бул кантип иштейт
10K каршылыгы RESET линиясын 5Вга жакын сактайт. Кнопка басылганда, RESET линиясы 0Vга тартылат, ошентип микро контроллерди баштапкы абалга келтирет. Кнопка бошотулганда, RESET линиясы микро контроллерди артка кайтарып, %vге кайтат.
7 -кадам: SIM800L модулу
Бирдиктин жүрөгү SIM800L GSM модулу. Бул модуль микро контроллерде 3 гана I/O казыгын колдонот.
Модул стандарттык сериялык порт аркылуу микро контроллерге интерфейс кылат.
- Бирдикке бардык буйруктар стандарттык AT командаларын колдонуу менен сериялык порт аркылуу жөнөтүлөт.
- Кирүүчү чалууда же SMS келгенде маалымат ASCII текстин колдонуу менен сериялык порт аркылуу микро контролерге жөнөтүлөт.
Орунду үнөмдөө үчүн GSM модулу 7-пин баш аркылуу PC Boardго туташтырылган. Бул GSM модулун алып салууну жеңилдетет. Бул колдонуучуга модулдун астындагы SIM картаны оңой эле салып/алып салууга мүмкүнчүлүк берет.
Активдүү SIM -карта талап кылынат, жана SIM -карта SMS билдирүүлөрдү жөнөтүүгө жана кабыл алууга жөндөмдүү болушу керек.
SIM800L GSM модулун орнотуу
Бөлүктү иштеткенде, GSM модулун баштапкы абалга келтирүүчү пин бир секундага төмөн тартылат. Бул GSM модулу электр менен камсыздоо турукташкандан кийин гана ишке киришин камсыздайт. GSM модулу кайра жүктөө үчүн бир нече секунд талап кылынат, андыктан модулга AT буйруктарын жөнөтүүдөн мурун 5 секунд күтө туруңуз.
GSM модулу микро контролер менен туура байланышууга конфигурацияланганын камсыз кылуу үчүн, ишке киргизүүдө төмөнкү AT буйруктары колдонулат:
AT
GSM модулунун бар же жок экендигин аныктоо үчүн колдонулат
AT+CREG?
Бул буйрукту GSM модулу уюлдук байланыш тармагында катталганга чейин сурамжылоо
AT+CMGF = 1
SMS билдирүү режимин ASCIIге коюңуз
AT+CNMI = 1, 2, 0, 0, 0
SMS жеткиликтүү болсо, GSM модулунун сериялык портуна SMS маалыматын жөнөтүңүз
AT+CMGD = 1, 4
SIM картада сакталган SMS билдирүүлөрдү жок кылыңыз
AT+CPBS = / "SM
GSM модулунун телефон китебин SIM картага коюңуз
AT+COPS = 2, андан кийин AT+CLTS = 1, андан кийин AT+COPS = 0
GSM модулунун убактысын уюлдук телефон тармагына коюңуз
Убакыт коюлганга чейин 5 секунд күтө туруңуз
AT+CUSD = 1
USSD билдирүү функциясын иштетүү
8 -кадам: Микро контролер
Микроконтроллер - бул стандарттык AtMega328p, Arduino Unoдо колдонулат. Ошентип, код экөө менен салыштырылат. Борттогу оңой программалоого мүмкүндүк берүү үчүн, 6-пин программалоо башы PC тактасында жеткиликтүү.
Бирдиктин ар кандай бөлүмдөрү микро процессорго туташкан жана төмөнкүлөрдү камтыйт:
- Төрт санарип киргизүү
- Төрт санарип чыгаруу
- Осциллятор
- Эки көрсөткүчтүү LED
- Режимди кайра коюу
- SIM800L GSM модулу
GSM модулуна жана андан бардык байланыш SoftwareSerial () функциясын колдонуу менен жүзөгө ашырылат. Бул ыкма иштеп чыгуу баскычында Arduino IDE үчүн негизги сериялык портту бошотуу үчүн колдонулган.
2KB SRAM жана 1KB EEPROM менен бирдикке байланыштырыла турган бир нече колдонуучуну сактоо үчүн жетиштүү эстутум жок. SRAMди бошотуу үчүн колдонуучунун бардык маалыматы GSM модулундагы SIM картада сакталат. Бул түзүлүш менен бирдик 250гө чейин ар кандай колдонуучуларды тейлей алат.
Бирдиктин конфигурация маалыматтары EEPROMда сакталат, ошону менен колдонуучу маалыматтарын жана тутум маалыматтарын бири -биринен ажыратат.
Дагы бир нече запастык I/O казыктары бар, бирок, LCD дисплейди жана/же клавиатураны кошуу мүмкүнчүлүгү SoftWareSerial () буферлерди кабыл алуу жана берүү SRAMдын чоң көлөмүнөн улам мүмкүн болгон жок, Бирдикте эч кандай колдонуучу интерфейси жок болгондуктан, бардык орнотуулар жана колдонуучулар SMS билдирүүлөрдү колдонуу менен программаланышат.
9 -кадам: SRAM эс тутумун оптималдаштыруу
Иштеп чыгуу стадиясында, Arduino IDE кодду түзүүдө SRAM эс тутуму төмөн экенин билдирди. Муну жеңүү үчүн бир нече ыкмалар колдонулган.
Сериялык портко алынган маалыматтарды чектөө
GSM модулу бардык билдирүүлөрдү микро контролерге сериялык портко кабарлайт. Кээ бир SMS билдирүүлөрдү алганда, алынган билдирүүнүн жалпы узундугу 200 белгиден ашышы мүмкүн. Бул тез эле AtMega чипинде жеткиликтүү болгон SRAMдын бардыгын керектей алат жана туруктуулук көйгөйлөрүн жаратат.
Мунун алдын алуу үчүн GSM модулунан келген КАНДАЙ билдирүүнүн биринчи 200 белгиси гана колдонулат. Төмөндөгү мисал, бул Counter өзгөрмөсүндө алынган символдорду эсептөө аркылуу кантип жасаларын көрсөтөт.
// программалык камсыздоонун сериялык портунан маалыматтарды издөө
// ----------------------------------------------- RxString = ""; Counter = 0; while (SSerial.available ()) {delay (1); // буферде жаңы маалыматтын жайгашуусуна убакыт берүү үчүн кыска кечигүү // жаңы мүнөзгө ээ болуу RxChar = char (SSerial.read ()); // сапка биринчи 200 белгини кошуу, эгерде (Counter <200) {RxString.concat (RxChar); Counter = Counter + 1; }}
Serial.print () кодун азайтуу
Иштеп чыгуу учурунда ыңгайлуу болсо да, Arduino Serial Monitor көптөгөн SRAMди колдоно алат. Код Serial.print () кодун мүмкүн болушунча аз колдонуу менен иштелип чыккан. Коддун бир бөлүмү иштөө үчүн сыналган, бардык Serial.print () коду коддун ошол бөлүгүнөн алынып салынган.
Serial.print (F (("")) кодун колдонуу
Сүрөттөмөлөр кошулганда, адатта, Arduino Serial Monitorдо көрсөтүлүүчү көп маалымат мааниге ээ болот. Төмөнкү мисалды алыңыз:
Serial.println ("Конкреттүү аракеттер күтүлүүдө");
"Конкреттүү аракеттерди күтүүдө" сабы оңдолгон жана өзгөртө албайт.
Кодду түзүү учурунда компилятор FLASH эс тутумуна "Конкреттүү аракеттерди күтүү" сабын киргизет.
Кошумча катары, компилятор саптын "Serial.print" же "Serial.println" көрсөтмөсү тарабынан колдонулганын көрөт. Микро жүктөө учурунда бул туруктуу SRAM эс тутумуна да коюлат.
Serial.print () функцияларындагы "F" префиксин колдонуу менен, ал компиляторго бул сап FLASH эс тутумунда гана бар экенин айтат. Бул мисал үчүн, сап 28 белгиден турат. Бул SRAMда бошотулуучу 28 байт.
Serial.println (F ("Конкреттүү аракеттерди күтүүдө"));
Бул ыкма SoftwareSerial.print () буйруктарына да тиешелүү. GSM модулу AT буйруктарында иштегендиктен, коддо көптөгөн SoftwareSerial.print ("xxxx") буйруктары бар. "F" префиксин колдонуу SRAMдын дээрлик 300 байтын бошотту.
Аппараттык сериялык портту колдонбоңуз
Кодду мүчүлүштүктөрдү оңдоодон кийин, ALL Serial.print () буйруктарын алып салуу менен аппараттык сериялык порт өчүрүлдү. Бул SRAMдын бир нече кошумча байтын бошотту.
Коддо калган Serial.print () буйруктары жок, кошумча 128 байт SRAM жеткиликтүү болду. Бул аппараттык сериялык портту коддон алып салуу менен жасалды. Бул 64 байт берүү жана 64 байт алуу буферин күчөтөт.
// Serial.begin (9600); // аппараттык сериялык порт өчүрүлгөн
Саптар үчүн EEPROM колдонуу
Ар бир киргизүү жана чыгаруу үчүн үч сап сакталууга тийиш. Алар каналдын аты, канал күйүп турганда жана канал өчкөндө сап.
Жалпысынан 8 I/O каналы менен, алардын болот
- Ар бир 10 белгиден турган канал аттарын камтыган 8 сап
- Арнеги 10 символдон турган 8 сап
- Арнасы 10 белгиден турган, каналдын сыпаттамасы камтылган 8 сап
Бул SRAMдын 240 байтына чейин жарнамалайт. Бул саптарды SRAMда сактоонун ордуна, алар EEPROMде сакталат. Бул кошумча 240 байт SRAM бошотту.
Туура узундуктагы декларациялоочу жип
Өзгөрмөлөр адатта коддун башында жарыяланат. Саптын өзгөрмөсүн жарыялоодо кеңири таралган ката, биз сапты символдордун туура саны менен жарыя кылбайбыз.
String GSM_Nr = "";
String GSM_Name = ""; String GSM_Msg = "";
Иштетүү учурунда микро контроллер SRAMда бул өзгөрмөлөр үчүн эстутум бөлбөйт. Бул кийинчерээк бул саптар колдонулганда туруксуздукка алып келиши мүмкүн.
Мунун алдын алуу үчүн, сап программалык камсыздоодо колдонула турган символдордун туура санын жарыялаңыз.
GSM_Nr сапы "1000000000";
GSM_Name сабы = "2000000000"; GSM_Msg сабы = "3000000000";
Ошол эле белгилер менен саптарды кантип жарыя кылбаганымды байкаңыз. Эгерде сиз бул саптардын бардыгын "1234567890" деп билдирсеңиз, анда компилятор үч өзгөрмөнүн бир эле сабын көрөт жана саптардын бирине SRAMда жетиштүү эс бөлөт.
10 -кадам: Программалык камсыздоонун сериялык буферинин өлчөмү
Төмөнкү коддо программалык камсыздоонун сериялык портунан 200 белгиге чейин окууга болорун байкайсыз.
// программалык камсыздоонун сериялык портунан маалыматтарды издөө
// ----------------------------------------------- RxString = ""; Counter = 0; while (SSerial.available ()) {delay (1); // буферге жаңы маалыматтарды жайгаштыруу үчүн убакыт берүү үчүн кыска кечигүү // жаңы белгини алуу RxChar = char (SSerial.read ()); // сапка биринчи 200 белгини кошуу, эгерде (Counter <200) {RxString.concat (RxChar); Counter = Counter + 1; }}
Бул программалык камсыздоонун сериялык порту үчүн 200 байттан кем эмес буферди талап кылат. демейки боюнча, программалык камсыздоонун сериялык портунун буфери болгону 64 байт. Бул буферди көбөйтүү үчүн төмөнкү файлды издеңиз:
SoftwareSerial.h
Файлды текст редактору менен ачыңыз жана буфердин өлчөмүн 200гө өзгөртүңүз.
/******************************************************************************
*Аныктамалар ********************************************** ******************************/ #ifndef _SS_MAX_RX_BUFF #define _SS_MAX_RX_BUFF 200 // RX буфер өлчөмү #endif
11 -кадам: PC тактасын жасоо
PC Board Cadsoft Eagle акысыз версиясын колдонуу менен иштелип чыккан (менимче, аты өзгөрдү).
- PC Board - бул бир жактуу дизайн.
- Эч кандай бетке орнотуучу компоненттер колдонулбайт.
- Бардык компоненттер SIM800L модулун кошкондо, PC тактасына орнотулган.
- Эч кандай тышкы компоненттер же туташуулар талап кылынбайт
- Зым секиргичтер таза көрүнүш үчүн компоненттердин астына катылган.
Мен компьютер такталарын жасоо үчүн төмөнкү ыкманы колдоном:
- PC Board сүрөтү лазердик принтердин жардамы менен Press-n-Peelге басылат.
- Press-n-Peel андан кийин PC Boardтун таза бөлүгүнүн үстүнө жайгаштырылат жана кандайдыр бир скотч менен бекитилет.
- PC Board сүрөтү андан кийин Press-n-Peelден бош ПК тактасына ламинатор аркылуу тактаны өткөрүп берүү менен өткөрүлөт. Мен үчүн 10 өтмөк эң жакшы иштейт.
- PC Board бөлмө температурасына чейин муздагандан кийин, Press-n-Peel акырындык менен коллегиядан көтөрүлөт.
- PC Board анда ысык сууда эриген аммоний персульфатынын кристаллдарын колдонуу менен чегилген.
- Чөгүп кеткенден кийин көк Пресс-н-Пил жана кара тонер чегилген ПК тактасын ацетон менен тазалоо аркылуу алынып салынат.
- Такта Dremel менен өлчөмүнө чейин кесилет
- Бардык тешик компоненттери үчүн тешиктер 1мм бургулоочу тешиктин жардамы менен тешилет.
- Терминалдын бурама туташтыргычтары 1.2 мм бургулоочу тешиктин жардамы менен тешилет.
12 -кадам: ЖК Башкармасынын Ассамблеясы
Чогуу эң кичине компоненттерди кошуу менен жана эң чоң компоненттерге чейин иштөө менен жасалат.
SIM800 модулун кошпогондо, ушул Нускамада колдонулган бардык компоненттер менин жергиликтүү провайдеримден алынган. Алар дайыма запасы бар деп ойлойт. Сураныч, алардын Түштүк Африка вебсайтын карап көрүңүз:
www.shop.rabtron.co.za/catalog/index.php
ЭСКЕРТҮҮ! Адегенде ATMEGA328p IC астында жайгашкан эки секиргичти ширетүү
Тартип төмөнкүчө:
- Резисторлор жана диод
- Кайра коюу баскычы
- IC Sockets
- Чыңалуу жөндөгүчү
- Башкы төөнөгүчтөр
- Чакан конденсаторлор
- LED
- Сактандыргыч кармагыч
- Терминалдык блоктор
- Реле
- Электролиттик конденсаторлор
IC'лерди киргизүүдөн мурун, бирдигин 12Vга туташтырып, бардык чыңалуулардын туура экенин текшериңиз.
Акыр -аягы, ачык -айкын лакты колдонуп, аны коргоо үчүн ЖК тактасынын жез жагын жабыңыз.
Лак кургатылганда, ICлерди киргизиңиз, бирок GSM модулун AtMega программаланганга чейин калтырыңыз.
13 -кадам: AtMega328p программалоо
# # Программалык камсыздоону 3.02 версиясына жогорулатуу # #
Түзмөккө кубат калыбына келгенде, MASTER USERге SMS жөнөтүү иштетилди
Мен аппаратты программалоо үчүн программалоо калканы бар Arduino Uno колдонуп жатам. Arduino Uno программисти катары кантип колдонуу керектиги жөнүндө көбүрөөк маалымат алуу үчүн бул Нускамага кайрылыңыз:
Arduino UNO AtMega328P программисти катары
GSM модулун программалоо башына кирүү үчүн ЖК тактасынан алып салуу керек. GSM модулун алып жатканда антенна зымына зыян келтирбөө үчүн этият болуңуз.
Программист менен блоктун ортосундагы программалоо кабелин PC тактасындагы программалоо башын колдонуп туташтырыңыз.
Тышкы 12В жабдууну программалоо үчүн кереги жок. PC Board Ардуинодон программалоо кабели аркылуу иштейт.
Тиркелген файлды Arduino IDEде ачыңыз жана аны бирдикке программалаңыз.
Программалоодон кийин программалоо кабелин алып, GSM модулун салыңыз.
Агрегат азыр колдонууга даяр.
14 -кадам: Бирдикти туташтыруу
Бирдикке бардык туташуулар бурама терминалдар аркылуу жүргүзүлөт.
Бирдикти иштетүү
GSM модулуна катталган SIM -картаны киргизгениңизди жана SIM -карта SMS билдирүүлөрдү жөнөтүүгө жана кабыл алууга жөндөмдүү экенин текшериңиз.
12V DC кубаттуулугун 12V IN жана 0V терминалдарынын бирине туташтырыңыз. Күйгүзүлгөндөн кийин, PC тактасындагы кызыл LED күйөт. Болжол менен бир мүнөттүн ичинде GSM модулу уюлдук байланыш тармагына туташышы керек. Кызыл LED өчөт, ал эми GSM модулундагы кызыл LED тез жаркырайт.
Бул этапка жеткенден кийин, аппарат конфигурациялоого даяр.
Киргизүү байланыштары
Санариптик кирүүлөр 12В иштейт. Киргизүүнү күйгүзүү үчүн, кирүүгө 12В колдонуу керек. 12В алып салуу кирүүнү өчүрөт.
Чыгуу байланыштары
Ар бир чыгаруу өзгөрүү байланышынан турат. Ар бир байланышты керектүү түрдө өткөрүңүз.
15 -кадам: Алгачкы орнотуу
Бирдиктин баштапкы орнотуулары бардык параметрлердин заводдук демейки абалга келтирилишин камсыз кылуу үчүн жана SIM карта колдонуучунун маалыматын туура форматта кабыл алуу үчүн конфигурацияланган болушу керек.
Бардык буйруктар SMSке негизделгендиктен, орнотууну ишке ашыруу үчүн сизге башка телефон керек болот.
Баштапкы орнотуу үчүн, сиз бирдикте болушуңуз керек.
MASTER USER телефон номерин коюңуз
Бирдикти MASTER USER гана конфигурациялай алгандыктан, бул кадам биринчи аткарылышы керек.
- Агрегат кубатталууга тийиш.
- Reset баскычын басып, кое бериңиз жана ЖК тактасындагы кызыл LED өчкөнчө күтө туруңуз.
- GSM модулундагы NET LED тез жаркырайт.
- Бирдик азыр баштапкы орнотуу буйруктарын кабыл алууга даяр. Бул 10 мүнөттүн ичинде аткарылышы керек.
- MASTER камтылган SMS билдирүүсүн жөнөтүңүз, бирдиктин телефон номерине.
- Кабыл алынса, ЖК тактасындагы жашыл LED эки жолу жаркырайт.
- MASTER USER азыр программаланган.
Аппаратты заводдук демейки абалына кайтарыңыз
МАСТЕР КОЛДОНУУЧУ программалангандан кийин, агрегаттын жөндөөлөрү заводдун демейки абалына коюлушу керек.
- Бирдиктин телефон номерине бир гана CLEARALL менен SMS билдирүү жөнөтүңүз.
- Эгерде кабыл алынса, ЖК тактасындагы жашыл жана кызыл LED секундасына бир жолу жаркырап күйөт. Аппарат демейки жөндөөлөрү менен калыбына келтирилди.
- Бардык орнотуулар заводдун баштапкы абалына кайтарылды.
- Кайра жүктөө баскычын басып, коё бериңиз.
SIM картаны форматтоо
Акыркы кадам - SIM картада сакталган бардык маалыматты өчүрүү жана аны ушул блокто колдонуу үчүн конфигурациялоо.
- Reset баскычын басып, кое бериңиз жана ЖК тактасындагы кызыл LED өчкөнчө күтө туруңуз.
- GSM модулундагы NET LED тез жаркырайт.
- Бирдик азыр баштапкы орнотуу буйруктарын кабыл алууга даяр. Бул 10 мүнөттүн ичинде аткарылышы керек.
- Бирдиктин телефон номерине бир гана ERASESIM менен SMS билдирүү жөнөтүңүз.
- Эгерде кабыл алынса, ЖК тактасындагы жашыл LED дарактардын убактысын күйгүзөт.
Азыр бирдик конфигурацияланды жана колдонууга даяр.
16 -кадам: SMS буйруктары
Бирдик колдонгон үч түрдүү буйрук бар. Бардык буйруктар SMS аркылуу жөнөтүлөт жана бардыгы төмөнкү форматта:
БУЙРУК,,,,,,
- NORMAL USER командаларынан башка бардык буйруктар чоң -кичине сезгич.
- Параметрлер чоң -кичине сезгич эмес.
Баштапкы орнотуу буйруктары
MASTER, аты
SMS жөнөтүүчүнүн телефон номери MASTER USER телефон номери катары колдонулат. бирдиктин сүрөттөмөсүн бул жерге кошсо болот.
CLEARALL
Аппаратты заводдук демейки абалга келтирүү
CLEARSIM
SIM картадан бардык маалыматтарды тазалоо
КАЛПЫНА КЕЛТИРҮҮ
Бирдигин кайра жүктөңүз
MASTER USER Бирдикти конфигурациялоо үчүн буйруктар
OUTMODE, c, m, t ЭСКЕРТҮҮ! ! ! ЭМЕС КОЛДОНУЛГАН
Конкреттүү каналдарды PULSED, TIMED же LATCHING чыгууларын коюңуз. t - TIMED чыгаруу үчүн мүнөттөрдөгү убакыт узактыгы
PULSE, cccc
Конкреттүү каналдарды PULSED чыгууларга коюңуз. Эгер коюлбаса, каналдар LATCHING чыгышы катары коюлат.
PULSETIME, t Импульстуу чыгаруунун узактыгын секундада коет (0.. 10s)
INPUTON, cccc
Тургула турган каналдарды орнотуңуз жана абал ӨЧҮКТөн КҮЙҮККӨ өзгөргөндө SMS билдирүүсүн жөнөтүңүз
INPUTOFF, cccc
Күйгүзүлүүчү каналдарды орнотуңуз жана абал ON (ӨЧҮК) абалынан ӨЧҮКкө өзгөргөндө SMS билдирүү жөнөтүңүз
INTIME, c, t
Статус өзгөрүүлөрүн секундада аныктоо үчүн киргизүү кечигүү убакытын белгилейт
INTEXT, ch, аты, күйүк, өчүк
Текстке жана өчүрүү текстине ар бир кирүүчү каналдын атын коюңуз
OUTTEXT, ch, аты, күйгүзүү, өчүрүү
Текстке жана өчүрүү текстине ар бир чыгаруу каналынын атын коюңуз
Кошуу, жайгашкан жери, номери, Билдирүүлөр, SMS чыгуулары, киргизүүлөр
Колдонуучуга чыгуучу жана кирүүчү каналдар дайындалып, "жайгашкан жери" боюнча SIM картага колдонуучуну кошуңуз
Дел, жайгашкан жери
Колдонуучуну SIM картанын эстутумунан "жайгашкан жеринен" жок кылуу
ChannelName
ChannelName аты менен импульс чыгарат
ChannelName, onText же ChannelName, offText
Чыгарууну ChannelName жана onText/offText аты менен күйгүзүп/өчүрөт
Кадимки Колдонуучу бирдигин көзөмөлдөө үчүн
???? I/O статусун жаңыртууну сурануу. Статус SMS оригинаторго жөнөтүлөт.
ChannelName
ChannelName аты менен импульс чыгарат
ChannelName, onText
Чыгууну ChannelName аты менен жана тексттин статусун күйгүзөт
ChannelName, offText Чыгарууну ChannelName аты менен өчүрөт жана тексттин текстин өчүрөт
Командалардын кеңири сүрөттөлүшү үчүн тиркелген PDF документине кайрылыңыз.
Сунушталууда:
Arduino браузерине негизделген алыстан башкаруу (linux): 9 кадам (сүрөттөр менен)
Arduino браузерине негизделген алыстан башкаруу (linux): Бизде балдар бар. Мен аларды жакшы көрөм, бирок алар балдардын каналдарын кошкондо спутниктин жана сыналгынын пультун жашырышат. Бул бир нече жыл бою күн сайын болуп өткөндөн кийин, жана менин сүйүктүү аялым мага уруксат бергенден кийин
LoRa негизделген алыстан башкаруу - Чоң аралыктан башкаруу шаймандары: 8 кадам
LoRa негизделген алыстан башкаруу | Түзмөктөр чоң аралыктан: Эй, эмне болду, балдар! Akarsh бул жерде CETechтен. Бул долбоордо биз светодиоддор, моторлор сыяктуу ар кандай приборлорду көзөмөлдөө үчүн колдонула турган алыстан башкаруу пультун түзөбүз же эгерде биз күнүмдүк жашообуз жөнүндө айтсак, биз өзүбүздүн үй колдонуучубузду башкара алабыз
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу - Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу - Rc Helicopter - Rc учагы Arduino колдонуу: 5 кадам (сүрөттөр менен)
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу | Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу | Rc Helicopter | Arduino менен Rc учагы: Rc машинасын иштетүү | Quadcopter | Дрон | RC учагы | RC кайыгы, бизге дайыма рецептор жана өткөргүч керек, RC QUADCOPTER үчүн бизге 6 каналдуу өткөргүч жана кабыл алгыч керек деп ойлойбуз жана TX менен RXтин бул түрү өтө кымбат, ошондуктан биз аны өзүбүздө жасайбыз
Arduino GSM негизделген мотор башкаруу (GSM модулу жок): 3 кадам
Arduino GSM негизиндеги мотор көзөмөлү (GSM модулу жок): Бул долбоордо мен сизге реленин жардамы менен эч нерсени күйгүзүү жана өчүрүү үчүн негизги, бирок уникалдуу ыкманы көрсөтөм. Бул идея мындай долбоорлорду ишке ашырган бир нече кишиден келип чыккан, бирок алар көйгөйгө туш болушкан, алар чалуудагы мобилдик телефондун жүрүм -турумуна көз каранды болгон. Мен жөнөкөй
Eskate же Hydrofoil үчүн Arduino негизделген алыстан башкаруу: 5 кадам (сүрөттөр менен)
Eskate же Hydrofoil үчүн Arduino негизделген алыстан башкаруу: Бул көрсөтмө сизге керектүү бардык коддорду жана жабдууларды камтыган эскейт же электр гидрофоль менен колдонуу үчүн физикалык алыстан кантип курууну көрсөтөт. Көп ширетүү иштери бар, бирок аны жасоо да кызыктуу. Алыстан башкаруучу эмне кыла алат? Ко