![Arduino негізіндегі GSM/SMS қашықтан басқару құралы: 16 қадам (суреттермен) Arduino негізіндегі GSM/SMS қашықтан басқару құралы: 16 қадам (суреттермен)](https://i.howwhatproduce.com/images/006/image-15162-15-j.webp)
Мазмұны:
- 1 -қадам: Қуат көзі
- 2 -қадам: Сандық кірістер
- 3 -қадам: Сандық шығыс
- 4 -қадам: микроконтроллер осцилляторы
- 5 -қадам: Жарықдиодты индикаторлар
- 6 -қадам: микро процессорды қалпына келтіру схемасы
- 7 -қадам: SIM800L модулі
- 8 -қадам: микроконтроллер
- 9 -қадам: SRAM жадын оңтайландыру
- 10 -қадам: Бағдарламалық қамтамасыз етудің сериялық буферінің өлшемі
- 11 -қадам: ДК тақтасын жасау
- 12 -қадам: ДК тақтасын жинау
- 13 -қадам: AtMega328p бағдарламалау
- 14 -қадам: құрылғыны қосу
- 15 -қадам: Алғашқы орнату
- 16 -қадам: SMS пәрмендері
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51
![Arduino негізіндегі GSM/SMS қашықтан басқару құралы Arduino негізіндегі GSM/SMS қашықтан басқару құралы](https://i.howwhatproduce.com/images/006/image-15162-16-j.webp)
! ! ! 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 күйіне ӨШІРУ күйіне өзгертуге конфигурациялауға болады
- Әр кіріс кідіріс уақытын 0 секундтан 1 сағатқа дейін орнатуға болады
- Кірістердегі өзгерістер туралы SMS хабарламаларды 5 түрлі пайдаланушыға жіберуге болады
- Әр енгізу үшін аттар мен күй мәтінін пайдаланушы орната алады
- Әр шығыс үшін аттар мен күй мәтінін пайдаланушы орната алады
- Құрылғыны USSD хабар алмасу арқылы SIM картасының баланстық хабарламаларын алуға конфигурациялауға болады.
- Барлық пайдаланушылар құрылғының енгізу -шығару күйін жаңартуды сұрай алады
- Барлық пайдаланушылар жеке хабарламаларды SMS хабарламалар арқылы басқара алады
- Барлық пайдаланушылар құрылғыны шақыру арқылы жеке шығуларды басқара алады
Қауіпсіздік ерекшеліктері
- Құрылғыны бастапқы орнатуды тек қондырғыда болғанда ғана жасауға болады.
- Бастапқы орнатуды MASTER USER ғана жасай алады
- Бастапқы орнату пәрмендері он минуттан кейін автоматты түрде өшіріледі.
- Белгілі пайдаланушылардан келген қоңыраулар мен SMS ғана құрылғыны басқара алады
- Пайдаланушылар MASTER USER тағайындаған шығуларды ғана қолдана алады
Басқа мүмкіндіктер
- Бұл қондырғыға қоңырау шалу ақысыз, себебі қоңырауға жауап берілмейді.
- Құрылғы шақырылған кезде қоңырау 2 секундтан кейін ғана төмендейді. Бұл қоңырау шалушыға қондырғының қоңырауға жауап бергенін растау.
- Егер SIM картасының провайдері USSD хабарламаларын қолдайтын болса, MASTER USER балансты сұрай алады. Баланс бар USSD хабарламасы MASTER USER -ге жіберіледі.
1 -қадам: Қуат көзі
![Нәр беруші Нәр беруші](https://i.howwhatproduce.com/images/006/image-15162-17-j.webp)
Құрылғыны стандартты қауіпсіздік жүйелеріне (дабыл жүйелері, электр гараж есіктері, электр қақпасы қозғалтқыштары) қосуға болатынын қамтамасыз ету үшін құрылғы әдетте осындай жүйелерде болатын 12В тұрақты токтан қуат алады.
Қуат 12В IN және 0V терминалдарында қолданылады және 1А сақтандырғышпен қорғалған. Қосымша 12V OUT терминалдары бар, сонымен қатар олар сақтандырғышпен қорғалған.
D1 диоды құрылғыны 12В желілеріндегі кері полярлық қосылыстардан қорғайды.
C1 және C2 конденсаторлары 12В желілерінде кез келген шуды сүзеді. 12В кернеуі қондырғы релесін қуаттандыру үшін қолданылады.
5В кернеуі LM7805L кернеу реттегішінен тұрады және SIM800L GSM модуліне, сондай -ақ микро процессорға керекті +5В тұрақты шығарады. C3 және C4 конденсаторлары +5В жеткізу желісінде болуы мүмкін кез келген шуды сүзеді. Салыстырмалы үлкен габаритті электролиттік конденсаторлар қолданылды, өйткені SIM800L GSM модулі тарату кезінде біршама қуатты пайдаланады.
Кернеу реттегішінде жылу қабылдағыш қажет емес.
2 -қадам: Сандық кірістер
![Сандық кірістер Сандық кірістер](https://i.howwhatproduce.com/images/006/image-15162-18-j.webp)
![Сандық кірістер Сандық кірістер](https://i.howwhatproduce.com/images/006/image-15162-19-j.webp)
Сандық кіріс сигналдарының барлығы 12В, олар 5В микроконтроллермен байланысуы керек. Ол үшін оптикалық қосқыштар 5В жүйесінен 12В сигналдарды оқшаулау үшін қолданылады.
1K кіріс резисторы оптикалық қосқышқа кіріс тогын шамамен 10мА шектейді.
Орын шектеулі болғандықтан, ДК тақтасында 5В тартылатын резисторлар үшін бос орын болмады. Микроконтроллер кіріс түйреуіштердің әлсіз тартылуын қосу үшін орнатылған.
Оптикалық қосқыштың кірісінде (LOW) ешқандай сигнал болмаған кезде, оптикалық қосқыштың жарық диоды арқылы ток өтпейді. Осылайша оптикалық қосқыш транзисторы ажыратылады. Микроконтроллердің әлсіз тартылуы коллекторды дерлік 5В-қа дейін тартады және микро контроллердің жоғары логикасы ретінде қарастырылады.
Оптикалық қосқыштың кірісіне 12 В (жоғары) қосылған кезде, оптикалық қосқыштың жарық диоды арқылы шамамен 10 мА өтеді. Осылайша оптикалық қосқыш транзистор қосылады. Бұл коллекторды 0В дерлік төмендетеді және микроконтроллер LOW логикасы ретінде көрінеді.
Микроконтроллер көретін кірістің 12 В кірісімен салыстырғанда керісінше екенін ескеріңіз.
Кіріс пинін оқу үшін қалыпты код келесідей көрінеді:
логикалық Input = digitalRead (inputpin);
Кері сигналды түзету үшін келесі кодты қолданыңыз:
логикалық Input =! digitalRead (inputpin); // ЕСКЕРТУ! оқудың алдында
Енді микроконтроллер көретін кіріс 12В кірісіндегі кіріске сәйкес болады.
Соңғы кіріс схемасы 4 цифрлық кірістен тұрады. Әрбір кіріс компьютер тақтасындағы терминалдарға қосылады.
3 -қадам: Сандық шығыс
![Сандық шығыс Сандық шығыс](https://i.howwhatproduce.com/images/006/image-15162-20-j.webp)
![Сандық шығыс Сандық шығыс](https://i.howwhatproduce.com/images/006/image-15162-21-j.webp)
![Сандық шығыс Сандық шығыс](https://i.howwhatproduce.com/images/006/image-15162-22-j.webp)
Әдетте, реле минималды санын ғана басқаратын тізбекте, ең жақсы әдіс - көрсетілгендей транзисторлық драйвер тізбегін қолдану. Бұл қарапайым, арзан және тиімді.
Резисторлар жерге түсуді және транзисторлық базалық токтың шектелуін қамтамасыз етеді. Транзистор релені басқаруға болатын ток күшін арттыру үшін қолданылады. Микроконтроллердің түйреуішінен тек 1мА тартылған кезде транзистор 100 мА жүктемені ауыстыра алады. Эстафетаның көптеген түрлері үшін жеткілікті. Диод-релелік ауысу кезінде тізбекті жоғары вольтты соққылардан қорғайтын, артқы диод. Бұл схеманы қолданудың тағы бір артықшылығы - релелік жұмыс кернеуі микро контроллердің кернеуінен өзгеше болуы мүмкін. Осылайша, 5В релесін пайдаланудың орнына 48В дейінгі кез келген тұрақты кернеуді қолдануға болады.
ULN2803 таныстыру
Жобаға неғұрлым көп реле қажет болса, компоненттердің саны соғұрлым жоғары болады. Бұл ПХД дизайнын қиындатады және ПХД кеңістігін пайдалануы мүмкін. ULN2803 сияқты транзисторлық массивті қолдану ПХД өлшемін азайтуға көмектеседі, ULN2803 микроконтроллерден 3,3 В және 5 В кірістері үшін өте қолайлы және тұрақты ток кернеуін 48 В дейін жеткізе алады. Бұл ULN2803 -те 8 жеке транзисторлық тізбек бар, олардың әрқайсысы реле ауыстыруға қажетті барлық компоненттермен жабдықталған.
Соңғы шығыс тізбегі ULN3803 -тен тұрады, 4 12В тұрақты ток шығатын реле. Эстафетаның әрбір контактісі ДК тақтасының терминалдарында бар.
4 -қадам: микроконтроллер осцилляторы
![Микроконтроллер осцилляторы Микроконтроллер осцилляторы](https://i.howwhatproduce.com/images/006/image-15162-23-j.webp)
![Микроконтроллер осцилляторы Микроконтроллер осцилляторы](https://i.howwhatproduce.com/images/006/image-15162-24-j.webp)
![Микроконтроллер осцилляторы Микроконтроллер осцилляторы](https://i.howwhatproduce.com/images/006/image-15162-25-j.webp)
Осциллятор тізбегі
Дұрыс жұмыс істеу үшін микроконтроллерге осциллятор қажет. Arduino Uno дизайнын сақтау үшін схема 16 МГц стандартты осцилляторды қолданады. Екі нұсқа қол жетімді:
Кристалл
Бұл әдіс екі жүктеу конденсаторына қосылған кристалды қолданады. Бұл ең кең таралған нұсқа.
Резонатор
Резонатор-бұл негізінен 3 істікшелі пакеттегі кристалл және екі жүктеу конденсаторы. Бұл компоненттердің санын азайтады және ДК тақтасындағы бос орынды арттырады.
Компоненттердің санын мүмкіндігінше төмендету үшін мен 16 МГц резонаторды қолдануды шештім.
5 -қадам: Жарықдиодты индикаторлар
![Жарықдиодты индикаторлар Жарықдиодты индикаторлар](https://i.howwhatproduce.com/images/006/image-15162-26-j.webp)
![Жарықдиодты индикаторлар Жарықдиодты индикаторлар](https://i.howwhatproduce.com/images/006/image-15162-27-j.webp)
Кейбір светодиодсыз кез келген тізбек қандай болады? ДК тақтасында 3 мм жарық диодты жарықтандыру қамтамасыз етілді.
1K резисторлар светодиод арқылы токты 5мА-дан кем шектеу үшін қолданылады, 3 мм жоғары жарық диодты жарықдиодты қолданған кезде жарықтық өте жақсы.
Жарықдиодты күйді оңай түсіндіру үшін екі түс қолданылады. Екі светодиодты жыпылықтайтын индикаторлармен біріктіру арқылы тек екі светодиодтан көп ақпарат алуға болады.
Қызыл жарық диоды
Қызыл жарық диоды ақаулық жағдайларын, ұзақ кідірістерді, қате командаларды көрсету үшін қолданылады.
Жасыл жарық диоды
Жасыл жарық диоды дұрыс және/немесе дұрыс енгізулер мен командаларды көрсету үшін қолданылады.
6 -қадам: микро процессорды қалпына келтіру схемасы
![Микро процессорды қалпына келтіру схемасы Микро процессорды қалпына келтіру схемасы](https://i.howwhatproduce.com/images/006/image-15162-28-j.webp)
Қауіпсіздік мақсатында құрылғының кейбір функциялары құрылғыны қосқаннан кейін алғашқы 10 минут ішінде ғана қол жетімді.
Қалпына келтіру түймесінің көмегімен құрылғыны қалпына келтіру үшін құрылғыға қуат беруді өшіру қажет емес.
Бұл қалай жұмыс істейді
10K резисторы RESET желісін 5В жақын ұстайды. Түйме басылғанда, RESET желісі 0В -қа дейін тартылады, осылайша микроконтроллерді бастапқы күйінде сақтайды. Түйме босатылғанда, RESET жолы микроконтроллерді қалпына келтіріп, %v -ге қайтады.
7 -қадам: SIM800L модулі
![SIM800L модулі SIM800L модулі](https://i.howwhatproduce.com/images/006/image-15162-29-j.webp)
![SIM800L модулі SIM800L модулі](https://i.howwhatproduce.com/images/006/image-15162-30-j.webp)
![SIM800L модулі SIM800L модулі](https://i.howwhatproduce.com/images/006/image-15162-31-j.webp)
Құрылғының жүрегі - SIM800L GSM модулі. Бұл модуль микроконтроллерде тек 3 енгізу -шығару түйреуішін пайдаланады.
Модуль микроконтроллерге стандартты сериялық порт арқылы қосылады.
- Құрылғыға барлық командалар стандартты AT командалары арқылы сериялық порт арқылы жіберіледі.
- Кіріс қоңырау кезінде немесе SMS келген кезде, ақпарат микроконтроллерге ASCII мәтіні арқылы сериялық порт арқылы жіберіледі.
Кеңістікті үнемдеу үшін GSM модулі ДК тақтасына 7 істікшелі тақырып арқылы қосылады. Бұл 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 қол жетімді болса, SMS мәліметтерін GSM модулінің сериялық портына жіберіңіз
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 -қадам: микроконтроллер
![Микроконтроллер Микроконтроллер](https://i.howwhatproduce.com/images/006/image-15162-32-j.webp)
![Микроконтроллер Микроконтроллер](https://i.howwhatproduce.com/images/006/image-15162-33-j.webp)
![Микроконтроллер Микроконтроллер](https://i.howwhatproduce.com/images/006/image-15162-34-j.webp)
Микроконтроллер - бұл Arduino Uno -да қолданылатын AtMega328p стандартты стандарты. Бұл кодты екеуімен де салыстыруға болады. Борттық бағдарламалауды жеңілдету үшін ДК тақтасында 6 істікшелі бағдарламалау тақырыбы бар.
Құрылғының әр түрлі бөліктері микро процессорға қосылған және оған мыналар кіреді:
- Төрт сандық кіріс
- Төрт сандық шығыс
- Осциллятор
- Екі көрсеткіш жарық диоды
- Схеманы қалпына келтіру
- SIM800L GSM модулі
GSM модуліне және одан барлық байланыс SoftwareSerial () функциясы арқылы жүзеге асады. Бұл әдіс әзірлеу кезеңінде Arduino IDE үшін негізгі сериялық портты босату үшін қолданылды.
Тек 2KB SRAM және 1KB EEPROM көмегімен құрылғыға байланыстыруға болатын бірнеше пайдаланушыны сақтау үшін жад жеткіліксіз. SRAM -ды босату үшін пайдаланушы туралы барлық ақпарат GSM модуліндегі SIM картасында сақталады. Бұл қондырғы арқылы қондырғы 250 адамға дейін қызмет көрсете алады.
Құрылғының конфигурациясы туралы мәліметтер EEPROM -де сақталады, осылайша пайдаланушы мен жүйелік деректерді бір -бірінен бөледі.
Әлі де бірнеше қосалқы енгізу -шығару түйреуіштері бар, дегенмен, SoftWareSerial () буферлерді қабылдау мен жіберуде SRAM үлкен көлемінің болуына байланысты СКД дисплейін және/немесе пернетақтаны қосу мүмкіндігі мүмкін болмады, Құрылғыда пайдаланушы интерфейсінің кез келген түрі болмағандықтан, барлық параметрлер мен пайдаланушылар SMS хабарламалар арқылы бағдарламаланған.
9 -қадам: SRAM жадын оңтайландыру
![SRAM жадын оңтайландыру SRAM жадын оңтайландыру](https://i.howwhatproduce.com/images/006/image-15162-35-j.webp)
Дамудың бастапқы кезеңінде Arduino IDE кодты құрастыру кезінде SRAM жадының төмендігі туралы хабарлады. Мұны жеңу үшін бірнеше әдістер қолданылды.
Сериялық портта алынған деректерді шектеңіз
GSM модулі барлық хабарларды микроконтроллерге сериялық портқа хабарлайды. Кейбір SMS хабарламаларды қабылдаған кезде алынған хабарламаның жалпы ұзындығы 200 таңбадан аспауы мүмкін. Бұл AtMega чипінде бар барлық SRAM -ды тез жоя алады және тұрақтылық проблемаларын тудырады.
Бұған жол бермеу үшін GSM модулінен алынған кез келген хабарламаның алғашқы 200 таңбасы ғана қолданылады. Төмендегі мысал Counter айнымалысында алынған таңбаларды санау арқылы қалай жасалатынын көрсетеді.
// бағдарламалық жасақтама портынан деректерді іздеу
// ----------------------------------------------- RxString = «»; Есептегіш = 0; while (SSerial.available ()) {delay (1); // жаңа деректерді буферге орналастыруға уақыт беру үшін қысқа кідіріс // жаңа таңбаны алу RxChar = char (SSerial.read ()); // жолға бірінші 200 таңбаны қосыңыз, егер (Counter <200) {RxString.concat (RxChar); Есептегіш = Есептегіш + 1; }}
Serial.print () кодын азайту
Әзірлеу кезінде ыңғайлы болғанымен, Arduino Serial Monitor көптеген SRAM -ды қолдана алады. Код мүмкіндігінше аз Serial.print () кодын қолдану арқылы жасалды. Кодтың бір бөлімі жұмыс істеу үшін сыналды, барлық Serial.print () коды кодтың сол бөлігінен жойылды.
Serial.print (F ((«»)) кодын қолдану
Әдетте Arduino сериялық мониторында көрсетілетін көптеген ақпарат сипаттамалар қосылған кезде мағыналы болады. Келесі мысалды алыңыз:
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» префиксін қолдану 300 байтқа жуық SRAM босатты.
Жабдықтың сериялық портын пайдаланбаңыз
Кодты жөндеуден кейін, ALL Serial.print () пәрмендерін жою арқылы аппараттық сериялық порт өшірілді. Бұл қосымша SRAM байтын босатты.
Кодта қалған Serial.print () командалары болмаса, қосымша 128 байт SRAM қол жетімді болды. Бұл аппараттық сериялық портты кодтан алып тастау арқылы жасалды. Бұл 64 байтты беру мен 64 байтты қабылдау буферлерін күшейтеді.
// Serial.begin (9600); // аппараттық сериялық порт өшірілген
Жолдар үшін EEPROM пайдалану
Әр кіріс пен шығыс үшін үш жолды сақтау қажет болды. Олар арна атауы, арна қосылған кездегі жол және арна өшірулі кездегі жол.
Барлығы 8 енгізу -шығару арналары болса, олар болады
- Әрқайсысы 10 таңбадан тұратын арна атаулары бар 8 жол
- Сипаттамада арнасы бар 8 жол, әрқайсысы 10 таңбадан тұрады
- Сипаттамасы өшірілген арна бар 8 жол, әрқайсысы 10 таңбадан тұрады
Бұл 240 байтқа дейін SRAM жарнамасын береді. Бұл жолдарды SRAM -да сақтаудың орнына олар EEPROM -де сақталады. Бұл қосымша 240 байт SRAM босатты.
Дұрыс ұзындықтары бар жолды жариялау
Әдетте айнымалы кодтың басында жарияланады. Жолдық айнымалыны жариялауда жиі кездесетін қате - бұл таңбалардың дұрыс саны бар жолды жарияламау.
GSM_Nr жолы «» «;
GSM_Name жолы = «»; GSM_Msg жолы = «»;
Іске қосу кезінде микроконтроллер SRAM жүйесінде бұл айнымалылар үшін жад бөлмейді. Бұл жолдар қолданылған кезде бұл тұрақсыздықты тудыруы мүмкін.
Бұған жол бермеу үшін бағдарламалық жасақтамада қолданылатын символдардың дұрыс саны бар жолдарды жариялаңыз.
GSM_Nr жолы = «1000000000»;
GSM_Name жолы = «2000000000»; GSM_Msg жолы = «3000000000»;
Бірдей таңбалары бар жолдарды қалай жарияламағанымды байқаңыз. Егер сіз бұл жолдардың барлығын «1234567890» деп жарияласаңыз, компилятор үш айнымалыда сол жолды көреді және SRAM -да жолдардың біреуі үшін жеткілікті жад бөледі.
10 -қадам: Бағдарламалық қамтамасыз етудің сериялық буферінің өлшемі
![Бағдарламалық қамтамасыз етудің сериялық буферінің өлшемі Бағдарламалық қамтамасыз етудің сериялық буферінің өлшемі](https://i.howwhatproduce.com/images/006/image-15162-36-j.webp)
Келесі кодта сіз бағдарламалық қамтамасыз етудің сериялық портынан 200 символға дейін оқуға болатынын байқайсыз.
// бағдарламалық жасақтама портынан деректерді іздеу
// ----------------------------------------------- RxString = «»; Есептегіш = 0; while (SSerial.available ()) {delay (1); // буферде жаңа деректерді орналастыруға уақыт беру үшін қысқа кідіріс // жаңа таңбаны алу RxChar = char (SSerial.read ()); // жолға бірінші 200 таңбаны қосыңыз, егер (Counter <200) {RxString.concat (RxChar); Есептегіш = Есептегіш + 1; }}
Бұл бағдарламалық жасақтама портына кемінде 200 байт буферді қажет етеді. әдепкі бойынша, бағдарламалық қамтамасыз етудің сериялық порт буфері тек 64 байтты құрайды. Бұл буферді ұлғайту үшін келесі файлды іздеңіз:
SoftwareSerial.h
Файлды мәтіндік редактормен ашыңыз және буферлік өлшемді 200 -ге өзгертіңіз.
/******************************************************************************
*Анықтамалар ********************************************** ******************************/ #ifndef _SS_MAX_RX_BUFF #define _SS_MAX_RX_BUFF 200 // RX буферлік өлшемі #endif
11 -қадам: ДК тақтасын жасау
![ДК тақтасын жасау ДК тақтасын жасау](https://i.howwhatproduce.com/images/006/image-15162-37-j.webp)
ДК тақтасы Cadsoft Eagle -дің ақысыз нұсқасы арқылы жасалды (менің ойымша, аты өзгерді).
- ДК тақтасы - бұл бір жақты дизайн.
- Бетті бекітуге арналған компоненттер қолданылмайды.
- SIM800L модулін қоса алғанда, барлық компоненттер ДК тақтасына бекітілген.
- Сыртқы компоненттер немесе қосылымдар қажет емес
- Сым секіргіштері таза көріну үшін компоненттердің астында жасырылған.
Мен компьютерлік тақталарды жасау үшін келесі әдісті қолданамын:
- ДК тақтасының суреті лазерлік принтер көмегімен Press-n-Peel басылады.
- Содан кейін Press-n-Peel компьютерлік тақтаның таза бөлігінің үстіне қойылады және бірнеше таспамен бекітіледі.
- ДК тақтасының суреті тақтаны ламинатордан өткізу арқылы Press-n-Peel-ден бос компьютерлік тақтаға тасымалданады. Мен үшін 10 өту жақсы жұмыс істейді.
- ДК тақтасы бөлме температурасына дейін салқындағаннан кейін, Press-n-Peel тақтадан баяу көтеріледі.
- Компьютерлік тақта ыстық суда еріген аммоний персульфаты кристалдарының көмегімен өңделеді.
- Кесілгеннен кейін көк түсті Press-n-Peel және қара тонер тазартылған ДК тақтасын ацетонмен тазалайды.
- Содан кейін тақта Dremel көмегімен өлшеміне қарай кесіледі
- Барлық тесіктерге арналған тесіктер 1 мм бұрғылау көмегімен бұрғыланады.
- Терминалды бұрандалы қосқыштар 1,2 мм бұрғылау көмегімен бұрғыланады.
12 -қадам: ДК тақтасын жинау
![ДК тақтасын құрастыру ДК тақтасын құрастыру](https://i.howwhatproduce.com/images/006/image-15162-38-j.webp)
![ДК тақтасын құрастыру ДК тақтасын құрастыру](https://i.howwhatproduce.com/images/006/image-15162-39-j.webp)
![ДК тақтасын құрастыру ДК тақтасын құрастыру](https://i.howwhatproduce.com/images/006/image-15162-40-j.webp)
![ДК тақтасын құрастыру ДК тақтасын құрастыру](https://i.howwhatproduce.com/images/006/image-15162-41-j.webp)
Жинау алдымен ең кіші компоненттерді қосу арқылы және ең үлкен компоненттерге дейін жүру арқылы жүзеге асады.
Осы нұсқаулықта SIM800 модулін қоспағанда қолданылатын барлық компоненттер жергілікті жеткізушіден алынған. Олар үнемі қоры бар деп ойлайды. Олардың Оңтүстік Африка веб -сайтына назар аударыңыз:
www.shop.rabtron.co.za/catalog/index.php
ЕСКЕРТУ! Алдымен ATMEGA328p IC астында орналасқан екі секіргішті дәнекерлеу
Тапсырыс келесідей:
- Резисторлар мен диод
- Қалпына келтіру түймесі
- IC розеткалары
- Кернеу реттегіші
- Тақырып түйреуіштері
- Шағын конденсаторлар
- Жарық диодтары
- Сақтандырғыш ұстағыш
- Терминалды блоктар
- Эстафеталар
- Электролиттік конденсаторлар
IC орнатпас бұрын, құрылғыны 12 В кернеуіне қосыңыз және барлық кернеулердің дұрыстығын тексеріңіз.
Ақырында, мөлдір лак қолданып, оны компьютерлік тақтаның мыс жағын жабыңыз, оны сыртқы әсерлерден қорғау үшін.
Лак кептірілген кезде, IC -ді салыңыз, бірақ GSM модулін AtMega бағдарламаланғанша қалдырыңыз.
13 -қадам: AtMega328p бағдарламалау
![AtMega328p бағдарламалау AtMega328p бағдарламалау](https://i.howwhatproduce.com/images/006/image-15162-42-j.webp)
![AtMega328p бағдарламалау AtMega328p бағдарламалау](https://i.howwhatproduce.com/images/006/image-15162-43-j.webp)
![AtMega328p бағдарламалау AtMega328p бағдарламалау](https://i.howwhatproduce.com/images/006/image-15162-44-j.webp)
# # Микробағдарламаны 3.02 нұсқасына жаңарту # #
Құрылғыға қуат қосылған кезде MASTER USER -ге SMS жіберу қосылды
Мен құрылғыны бағдарламалау үшін бағдарламалау қалқаны бар Arduino Uno қолданамын. Arduino Uno бағдарламашысы ретінде пайдалану туралы қосымша ақпарат алу үшін осы нұсқаулықты қараңыз:
Arduino UNO AtMega328P бағдарламашы ретінде
Бағдарламалау тақырыбына қол жеткізу үшін GSM модулін компьютер тақтасынан алып тастау қажет. GSM модулін алу кезінде антенна сымына зақым келтірмеу үшін абай болыңыз.
Бағдарламалау кабелін компьютер тақтасындағы бағдарламалау тақырыбын пайдаланып бағдарламашы мен құрылғы арасында жалғаңыз.
Құрылғыны бағдарламалау үшін сыртқы 12В кернеуі қажет емес. ДК тақтасы Arduino -дан бағдарламалау кабелі арқылы қуатталады.
Қосылған файлды Arduino IDE -де ашыңыз және оны құрылғыға бағдарламалаңыз.
Бағдарламалағаннан кейін бағдарламалау кабелін алып тастап, GSM модулін салыңыз.
Құрылғы енді пайдалануға дайын.
14 -қадам: құрылғыны қосу
![Құрылғыны қосу Құрылғыны қосу](https://i.howwhatproduce.com/images/006/image-15162-45-j.webp)
![Құрылғыны қосу Құрылғыны қосу](https://i.howwhatproduce.com/images/006/image-15162-46-j.webp)
![Құрылғыны қосу Құрылғыны қосу](https://i.howwhatproduce.com/images/006/image-15162-47-j.webp)
Құрылғыға барлық қосылыстар бұрандалы қысқыштар арқылы жүзеге асады.
Құрылғыны қуаттандыру
GSM модуліне тіркелген SIM картасын салғаныңызға және SIM картаның SMS хабарламаларын жіберуге және қабылдауға болатынына көз жеткізіңіз.
12 В тұрақты кернеуді 12 В IN және 0 В кез келген терминалға қосыңыз. Қосылғаннан кейін компьютер тақтасындағы қызыл жарық диоды қосылады. Шамамен бір минут ішінде GSM модулі ұялы байланыс желісіне қосылуы керек. Қызыл жарық диоды өшеді, ал GSM модуліндегі қызыл жарық диоды тез жыпылықтайды.
Бұл кезеңге жеткеннен кейін құрылғы конфигурациялауға дайын болады.
Кіріс қосылымдары
Цифрлық кірістер 12В жұмыс істейді. Кірісті қосу үшін кіріске 12В кернеу қажет. 12В кернеуді алып тастау кірісті өшіреді.
Шығу қосылымдары
Әрбір шығыс ауыспалы контактіден тұрады. Қажет болса, әр контактіні қосыңыз.
15 -қадам: Алғашқы орнату
![Бастапқы орнату Бастапқы орнату](https://i.howwhatproduce.com/images/006/image-15162-48-j.webp)
Құрылғының бастапқы баптауы барлық параметрлер зауыттық параметрлерге орнатылғанына және SIM картасы пайдаланушы ақпаратын дұрыс форматта қабылдауға конфигурацияланғанына көз жеткізу үшін жасалуы керек.
Барлық командалар SMS -ке негізделгендіктен, сізге басқа телефон қажет болады.
Алғашқы орнату үшін құрылғыда болу керек.
MASTER USER телефон нөмірін орнатыңыз
Құрылғыны тек MASTER USER ғана конфигурациялай алатындықтан, бұл қадам алдымен орындалуы керек.
- Құрылғы электрмен жабдықталуы керек.
- Қалпына келтіру түймесін басып, босатыңыз және ДК тақтасындағы қызыл жарық диоды өшкенше күтіңіз.
- GSM модуліндегі NET жарық диоды тез жыпылықтайды.
- Енді құрылғы бастапқы орнату пәрмендерін қабылдауға дайын. Бұл 10 минут ішінде орындалуы керек.
- Құрылғының телефон нөміріне MASTER, сипаттамасы бар SMS хабарлама жіберіңіз.
- Егер алынған болса, ДК тақтасындағы жасыл жарық диоды екі рет жыпылықтайды.
- MASTER USER енді бағдарламаланған.
Құрылғыны зауыттық параметрлерге қайтарыңыз
MASTER USER бағдарламаланған соң, қондырғының параметрлері зауыттық параметрлерге орнатылуы керек.
- Құрылғының телефон нөміріне тек CLEARALL SMS хабарламасын жіберіңіз.
- Егер алынған болса, ДК тақтасындағы жасыл және қызыл жарық диодтары секундына бір рет жыпылықтайды. Құрылғы зауыттық әдепкі параметрлермен қалпына келтірілді.
- Барлық параметрлер зауыттық әдепкі бойынша қалпына келтірілді.
- Құрылғыны қайта жүктеу үшін Reset түймесін басып, жіберіңіз.
SIM картасын пішімдеу
Соңғы қадам - SIM картасында сақталған барлық ақпаратты өшіру және оны осы құрылғыда пайдалану үшін конфигурациялау.
- Қалпына келтіру түймесін басып, босатыңыз және ДК тақтасындағы қызыл жарық диоды өшкенше күтіңіз.
- GSM модуліндегі NET жарық диоды тез жыпылықтайды.
- Енді құрылғы бастапқы орнату пәрмендерін қабылдауға дайын. Бұл 10 минут ішінде орындалуы керек.
- Құрылғының телефон нөміріне тек ERASESIM бар SMS хабарлама жіберіңіз.
- Егер алынған болса, ДК тақтасындағы жасыл жарықдиодты ағаштар жыпылықтайды.
Құрылғы қазір конфигурацияланған және пайдалануға дайын.
16 -қадам: SMS пәрмендері
![SMS пәрмендері SMS пәрмендері](https://i.howwhatproduce.com/images/006/image-15162-49-j.webp)
Құрылғыда үш түрлі командалар қолданылады. Барлық командалар SMS арқылы жіберіледі және олардың барлығы келесі форматта:
НҰСҚА,,,,,,
- NORMAL USER командаларынан басқа барлық командалар регистрді ескереді.
- Параметрлер регистрге сезімтал емес.
Орнатудың бастапқы командалары
MASTER, аты -жөні
SMS жіберушінің телефон нөмірі MASTER USER телефон нөмірі ретінде пайдаланылады. a қондырғы сипаттамасын осында қосуға болады.
ӨШІРУ
Құрылғыны зауыттық параметрлерге қайтарыңыз
ТАЗА
SIM картасындағы барлық деректерді өшіріңіз
ҚАЛПЫНА КЕЛТІРУ
Құрылғыны қайта жүктеңіз
MASTER USER Құрылғыны конфигурациялауға арналған командалар
OUTMODE, c, m, t ЕСКЕРТУ! ! ! ӘРІ ЖҮРГІЗІЛМЕЙДІ
Арнайы арналарды PULSED, TIMED немесе LATCHING шығуына орнатыңыз. t - TIMED шығысының минутпен есептелетін уақыты
PULSE, cccc
Нақты арналарды PULSED шығысына қойыңыз. Егер орнатылмаса, арналар LATCHING шығысы ретінде орнатылады.
PULSETIME, t Импульсті шығудың ұзақтығын секундпен орнатады (0.. 10с)
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 атауымен шығуды қосады және onText күй мәтінін қосады
ChannelName, offText шығуды ChannelName атымен өшіреді және мәтін мәтін күйін өшіреді
Пәрмендердің толық сипаттамасын алу үшін қоса берілген PDF құжатын қараңыз.
Ұсынылған:
LoRa негізіндегі қашықтан басқару құралы - Құрылғылар үлкен қашықтықтан: 8 қадам
![LoRa негізіндегі қашықтан басқару құралы - Құрылғылар үлкен қашықтықтан: 8 қадам LoRa негізіндегі қашықтан басқару құралы - Құрылғылар үлкен қашықтықтан: 8 қадам](https://i.howwhatproduce.com/images/001/image-1557-37-j.webp)
LoRa негізіндегі қашықтан басқару құралы | Құрылғыларды үлкен қашықтықтан басқару: Эй, не болды, балалар! Akarsh мұнда CETech-тен. Бұл жобада біз светодиодтар, қозғалтқыштар сияқты түрлі құралдарды басқаруға болатын қашықтан басқару пультін жасамақпыз немесе егер біз күнделікті өміріміз туралы айтатын болсақ, біз үйдегі қосымшаны басқара аламыз
Сенімді, қауіпсіз, теңшелетін SMS қашықтан басқару құралы (Arduino/pfodApp) - кодтау қажет емес: 4 қадам
![Сенімді, қауіпсіз, теңшелетін SMS қашықтан басқару құралы (Arduino/pfodApp) - кодтау қажет емес: 4 қадам Сенімді, қауіпсіз, теңшелетін SMS қашықтан басқару құралы (Arduino/pfodApp) - кодтау қажет емес: 4 қадам](https://i.howwhatproduce.com/images/010/image-28896-j.webp)
Сенімді, қауіпсіз, теңшелетін SMS қашықтан басқару құралы (Arduino/pfodApp) - кодтау қажет емес: 2018 жылдың 6 шілдесінде жаңарту: SIM5320 көмегімен осы жобаның 3G/2G нұсқасы қол жетімді Жаңартылған: 19 мамыр 2015 ж.: PfodParser кітапханасының 2.5 нұсқасын қолданыңыз. жоғары Ол қалқанға қосылуға жеткілікті уақыт бермеу туралы хабарланған мәселені шешеді
ESP8266 RGB LED STRIP WIFI басқару - NODEMCU Wifi арқылы басқарылатын жарықдиодты жолақ үшін IR қашықтан басқару құралы ретінде - RGB LED STRIP смартфонды басқару: 4 қадам
![ESP8266 RGB LED STRIP WIFI басқару - NODEMCU Wifi арқылы басқарылатын жарықдиодты жолақ үшін IR қашықтан басқару құралы ретінде - RGB LED STRIP смартфонды басқару: 4 қадам ESP8266 RGB LED STRIP WIFI басқару - NODEMCU Wifi арқылы басқарылатын жарықдиодты жолақ үшін IR қашықтан басқару құралы ретінде - RGB LED STRIP смартфонды басқару: 4 қадам](https://i.howwhatproduce.com/images/001/image-2218-28-j.webp)
ESP8266 RGB LED STRIP WIFI басқару | NODEMCU Wifi арқылы басқарылатын жарықдиодты жолақ үшін IR қашықтан басқару құралы ретінде | Смартфонды RGB LED STRIP басқару: Сәлеметсіздер ме, балалар, бұл оқулықта біз nodemcu немесе esp8266 -ды RGB жарықдиодты жолағын басқару үшін инфрақызыл қашықтан басқару құралы ретінде қолдануды үйренеміз, ал Nodemcu смартфон Wi -Fi арқылы басқарылады. Негізінде сіз RGB LED STRIP -ті смартфонмен басқара аласыз
Eskate немесе hydrofoil үшін Arduino негізіндегі қашықтан басқару құралы: 5 қадам (суреттермен)
![Eskate немесе hydrofoil үшін Arduino негізіндегі қашықтан басқару құралы: 5 қадам (суреттермен) Eskate немесе hydrofoil үшін Arduino негізіндегі қашықтан басқару құралы: 5 қадам (суреттермен)](https://i.howwhatproduce.com/images/003/image-6047-31-j.webp)
Eskate немесе Hydrofoil үшін Arduino негізіндегі қашықтан басқару пульті: Бұл нұсқаулық сізге барлық код пен аппаратураны қамтитын эскейтпен немесе электрлі гидроқабықпен пайдалану үшін физикалық қашықтан басқару құралын қалай құруға болатынын көрсетеді. Көптеген дәнекерлеу бар, бірақ оны жасау өте қызықты. Қашықтан басқару құралы не істей алады? Бірлескен
IR қашықтан басқару пультін RF қашықтан басқару пультіне түрлендіру: 9 қадам (суреттермен)
![IR қашықтан басқару пультін RF қашықтан басқару пультіне түрлендіру: 9 қадам (суреттермен) IR қашықтан басқару пультін RF қашықтан басқару пультіне түрлендіру: 9 қадам (суреттермен)](https://i.howwhatproduce.com/images/001/image-2740-94-j.webp)
IR қашықтан басқару пультін RF қашықтан басқару пультіне түрлендіріңіз: бүгінгі нұсқаулықта мен сізге микроконтроллерсіз жалпы радиожиілік модульді қалай қолдануға болатынын көрсетемін, бұл бізді кез келген құрылғының IR қашықтан басқару пультін ЖЖ -ге түрлендіре алатын жобаны құруға әкеледі. Қашықтан басқару. Түрлендірудің басты артықшылығы