Например TDA7294

Форум РадиоКот • Просмотр темы - ATmega8+sim800 управление нагрузкой по СМС
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 23, 2024 20:16:05

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: ATmega8+sim800 управление нагрузкой по СМС
СообщениеДобавлено: Вс авг 30, 2020 12:48:40 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вт апр 21, 2020 07:44:24
Сообщений: 118
Откуда: Сумы, Украина
Рейтинг сообщения: 0
Доброго здоровья всем!
На просторах интернета нашел исходник управления модулем SIM800l по USART при помощи ATMEGA32. В нем присутствует вывод на дисплей 16*2. Сам код предполагает при получении сообщения с определённым текстом перезванивать на номер отправителя. Для моих целей нужно, чтоб по сообщению с определенным текстом включалась/выключалась нагрузка. Я переписал код под свои цели и всё заработало. Потом я портировал код с ATMEGA32 на ATMEGA8, всё так же заработало. НО, мне теперь дисплей не нужен, т.к., смотреть на нём нечего, занимает место и память контроллера. При попытке вырезать всё, что с ним связано- нагрузка перестала вкл/откл. Подскажите, что конкретно нужно вырезать, дабы оставить только прием сообщения и управление нагрузкой. Спасибо.

Спойлер
Код:
#define F_CPU 8000000UL                  /* define Clock Frequency */
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
#include "LCD_16x2_H_file.h"            /* include 16x2 LCD Header file */
#include "USART_Interrupt.h"            /* include USART Header file */

#define SREG   _SFR_IO8(0x3F)

void GSM_Begin();
void GSM_Calling(char *);
void GSM_HangCall();
void GSM_Response();
void GSM_Response_Display();
void GSM_Msg_Read(int);
bool GSM_Wait_for_Msg();
void GSM_Msg_Display();
void GSM_Msg_Delete(unsigned int);
void GSM_Send_Msg(char* , char*);
void GSM_Delete_All_Msg();

char buff[160];                        /* buffer to store responses and messages */
char status_flag = 0;                  /* for checking any new message */
volatile int buffer_pointer;
char Mobile_no[14];                     /* store mobile no. of received message */
char message_received[60];               /* save received message */
int position = 0;                     /* save location of current message */


int main(void)
{
    DDRA=0xff;
    PORTA=0x00;
    buffer_pointer = 0;
    int is_msg_arrived;
    memset(message_received, 0, 60);
    LCD_Init();
    USART_Init(9600);                      /* initialize USART communication */
    sei();
    LCD_String_xy(1,0,"GSM Initializing");
    _delay_ms(3000);
    LCD_Clear();
    LCD_String_xy(1,0,"AT");
    GSM_Begin();                        /* check GSM responses and initialize GSM */
    LCD_Clear();
   
    while (1){
       
        /*check if any new message received */
       
            is_msg_arrived = GSM_Wait_for_Msg();      /*check for message arrival*/
            if(is_msg_arrived== true)
            {
                LCD_Clear();
                LCD_String_xy(1,0,"New SMS");      /* new message arrived */
                _delay_ms(1000);
                LCD_Clear();
                GSM_Msg_Read(position);               /* read arrived message */
                _delay_ms(3000);
               
                /*check if received message is "call me" */
                if(strstr( message_received,"PA1_on")){
                   
                    /*GSM_Calling(Mobile_no);            / * call sender of message * /*/
                    LCD_Clear();
                    LCD_String_xy(1,0,"PORT is ON");
                    _delay_ms(1000);
                    PORTA|=0x01;
                   
                }
                 if(strstr( message_received,"PA1_off")){
                   
                    /*GSM_Calling(Mobile_no);            / * call sender of message * /*/
                    LCD_Clear();
                    LCD_String_xy(1,0,"PORT is OFF");
                    _delay_ms(1000);
                    PORTA&=~(0x01);
                   
                }
               
                LCD_Clear();
                GSM_Delete_All_Msg();            /* to save SIM memory delete current message */
                LCD_String_xy(1,0,"Clear all SMS");
                GSM_Response();
                _delay_ms(1000);
               
            }
           
           
            is_msg_arrived=0;
           
            LCD_Clear();
        }
       
        memset(Mobile_no, 0, 14);
        memset(message_received, 0, 60);
       
       
    }


void GSM_Begin()
{

    while(1)
    {
        LCD_Command(0xc0);
        USART_SendString("ATE0\r");         /* send ATE0 to check module is ready or not */
        _delay_ms(500);
        if(strstr(buff,"OK"))
        {
            GSM_Response();                 /* get Response */
            memset(buff,0,160);
            break;
        }
        else
        {
            LCD_String("Error");
        }
    }
    _delay_ms(1000);

    LCD_Clear();
    LCD_String_xy(1,0,"Text Mode");
    LCD_Command(0xc0);
    USART_SendString("AT+CMGF=1\r");/* select message format as text */
    GSM_Response();
    _delay_ms(1000);
}

void GSM_Msg_Delete(unsigned int position)
{
    buffer_pointer=0;
    char delete_cmd[20];
    sprintf(delete_cmd,"AT+CMGD=%d\r",position);    /* delete message at specified position */
    USART_SendString(delete_cmd);
}

void GSM_Delete_All_Msg()
{
    USART_SendString("AT+CMGDA=\"DEL ALL\"\r");      /* delete all messages of SIM */
}

bool GSM_Wait_for_Msg()
{
    char msg_location[4];
    int i;
    _delay_ms(500);
    buffer_pointer=0;

    while(1)
    {
        if(buff[buffer_pointer]=='\r' || buff[buffer_pointer]== '\n') /*eliminate "\r \n" which is start of string */
        {
            buffer_pointer++;
        }
        else
        break;
    }
   
    if(strstr(buff,"CMTI:"))                                          /* "CMTI:" to check if any new message received */
    {
        while(buff[buffer_pointer]!= ',')
        {
            buffer_pointer++;
        }
        buffer_pointer++;
       
        i=0;
        while(buff[buffer_pointer]!= '\r')
        {
            msg_location[i]=buff[buffer_pointer];                  /* copy location of received message where it is stored */
            buffer_pointer++;
            i++;
        }

        /* convert string of position to integer value */
        position = atoi(msg_location);
       
        memset(buff,0,strlen(buff));
        buffer_pointer=0;

        return true;
    }
    else
    {
        return false;
    }
}

/* ISR routine to save responses/new message */
ISR(USART_RXC_vect)
{
    buff[buffer_pointer] = UDR;                     /* copy UDR(received value) to buffer */
    buffer_pointer++;
    status_flag = 1;                              /* flag for new message arrival */
}


void GSM_Send_Msg(char *num,char *sms)
{
    char sms_buffer[35];
    buffer_pointer=0;
    sprintf(sms_buffer,"AT+CMGS=\"%s\"\r",num);
    USART_SendString(sms_buffer);                       /*send command AT+CMGS="Mobile No."\r */
    _delay_ms(200);
    while(1)
    {
        if(buff[buffer_pointer]==0x3e)                  /* wait for '>' character*/
        {
            buffer_pointer = 0;
            memset(buff,0,strlen(buff));
            USART_SendString(sms);                      /* send msg to given no. */
            USART_TxChar(0x1a);                         /* send Ctrl+Z then only message will transmit*/
            break;
        }
        buffer_pointer++;
    }
    _delay_ms(300);
    buffer_pointer = 0;
    memset(buff,0,strlen(buff));
    memset(sms_buffer,0,strlen(sms_buffer));
}

void GSM_Calling(char *Mob_no)
{
    char call[20];
    sprintf(call,"ATD%s;\r",Mob_no);
    USART_SendString(call);                          /* send command ATD<Mobile_No>; for calling*/
}

void GSM_HangCall()
{
    LCD_Clear();
    USART_SendString("ATH\r");                       /*send command ATH\r to hang call*/
   
}

void GSM_Response()
{
    unsigned int timeout=0;
    int CRLF_Found=0;
    char CRLF_buff[2];
    int Response_Length=0;
    while(1)
    {
        if(timeout>=60000)                        /*if timeout occur then return */
        return;
        Response_Length = strlen(buff);
        if(Response_Length)
        {
            _delay_ms(2);
            timeout++;
            if(Response_Length==strlen(buff))
            {
                for(int i=0;i<Response_Length;i++)
                {
                    memmove(CRLF_buff,CRLF_buff+1,1);
                    CRLF_buff[1]=buff[i];
                    if(strncmp(CRLF_buff,"\r\n",2))
                    {
                        if(CRLF_Found++==2)            /* search for \r\n in string */
                        {
                            GSM_Response_Display();      /* display response */
                            return;
                        }
                    }

                }
                CRLF_Found = 0;

            }
           
        }
        _delay_ms(1);
        timeout++;
    }
    status_flag=0;
}

void GSM_Response_Display()
{
    buffer_pointer = 0;
    int lcd_pointer = 0;
    while(1)
    {
        if(buff[buffer_pointer]== '\r' || buff[buffer_pointer]== '\n')  /* search for \r\n in string */
        {
            buffer_pointer++;
        }
        else
        break;
    }
   

    LCD_Command(0xc0);
    while(buff[buffer_pointer]!='\r')                           /* display response till "\r" */
    {
        LCD_Char(buff[buffer_pointer]);
        buffer_pointer++;
        lcd_pointer++;
        if(lcd_pointer==15)                                       /* check for end of LCD line */
        LCD_Command(0x80);
    }
    buffer_pointer=0;
    memset(buff,0,strlen(buff));
}

void GSM_Msg_Read(int position)
{
    char read_cmd[10];
    sprintf(read_cmd,"AT+CMGR=%d\r",position);
    USART_SendString(read_cmd);                     /* read message at specified location/position */
    GSM_Msg_Display();                           /* display message */
}

void GSM_Msg_Display()
{
    _delay_ms(500);
    if(!(strstr(buff,"+CMGR")))                         /*check for +CMGR response */
    {
        LCD_String_xy(1,0,"No message");
    }
    else
    {
        buffer_pointer = 0;
       
        while(1)
        {
            if(buff[buffer_pointer]=='\r' || buff[buffer_pointer]== 'n')  /*wait till \r\n not over*/
            {
                buffer_pointer++;
            }
            else
            break;
        }
       
        /* search for 1st ',' to get mobile no.*/
        while(buff[buffer_pointer]!=',')
        {
            buffer_pointer++;
        }
        buffer_pointer = buffer_pointer+2;

        /* extract mobile no. of message sender */
        for(int i=0;i<=12;i++)
        {
            Mobile_no[i] = buff[buffer_pointer];
            buffer_pointer++;
        }
       
        do
        {
            buffer_pointer++;
        }while(buff[buffer_pointer-1]!= '\n');
       
        LCD_Command(0xC0);
        int i=0;

        /* display and save message */
        while(buff[buffer_pointer]!= '\r' && i<31)
        {
            LCD_Char(buff[buffer_pointer]);
            message_received[i]=buff[buffer_pointer];
           
            buffer_pointer++;
            i++;
            if(i==16)
            LCD_Command(0x80);                  /* display on 1st line */
        }
       
        buffer_pointer = 0;
        memset(buff,0,strlen(buff));
    }
    status_flag = 0;
}


Вложения:
LCD_16x2_C_file.c [2.23 KiB]
Скачиваний: 139
USART_Interrupt.h [746 байт]
Скачиваний: 164
LCD_16x2_C_file.c [2.23 KiB]
Скачиваний: 167
USART_Interrupt.c [1.18 KiB]
Скачиваний: 162
main.c [10.65 KiB]
Скачиваний: 205

_________________
Хочется всё и сразу, а получаешь нихрена и постепенно...
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8+sim800 управление нагрузкой по СМС
СообщениеДобавлено: Вс авг 30, 2020 17:14:05 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1384
Рейтинг сообщения: 0
Прикрепи архив со всем проектом. Ещё лучше, все материалы по этому проекту в архив и на файлообменник.
Валяется у меня макетка с модемом. Поиграюсь.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8+sim800 управление нагрузкой по СМС
СообщениеДобавлено: Вс авг 30, 2020 22:11:34 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вт апр 21, 2020 07:44:24
Сообщений: 118
Откуда: Сумы, Украина
Рейтинг сообщения: 0
вот архив

Добавлено after 4 hours 46 seconds:
Вот поправил немного еще исходник, вроде работает. Может подскажет еще что-то кто-нибудь.
В этот раз пришлось ужимать под atmega48 ввиду того, что 8-ки (внезапно!) закончились...
Спойлер
Код:
[b]#define F_CPU 8000000UL                  /* define Clock Frequency */
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
#include "USART_Interrupt.h"            /* include USART Header file */
#define SREG   _SFR_IO8(0x3F)
void GSM_Begin();
void GSM_Calling(char *);
void GSM_HangCall();
void GSM_Response();
void GSM_Response_Display();
void GSM_Msg_Read(int);
bool GSM_Wait_for_Msg();
void GSM_Msg_Display();
void GSM_Msg_Delete(unsigned int);
void GSM_Delete_All_Msg();
char buff[160];                        /* buffer to store responses and messages */
char status_flag = 0;                  /* for checking any new message */
volatile int buffer_pointer;
char message_received[60];               /* save received message */
int position = 0;                     /* save location of current message */

int main(void)
{
    DDRD|=0xF0;
    PORTD|=0x00;
    DDRB|=0xff;
    PORTB|=0x00;
    buffer_pointer = 0;
    int is_msg_arrived;
    memset(message_received, 0, 60);
    USART_Init(9600);                      /* initialize USART communication */
    sei();
    GSM_Begin();                        /* check GSM responses and initialize GS*/
   
    while (1)
    {
        is_msg_arrived = GSM_Wait_for_Msg();      
        if(is_msg_arrived== true)
        {
 
            GSM_Msg_Read(position);               /* read arrived message */
            if(strstr( message_received,"On")){
            PORTD|=(1<<4);
               
        }
            if(strstr( message_received,"Off")){
            PORTD&=~(1<<4);
               
        }
           GSM_Delete_All_Msg();            /* to save SIM memory delete current message*/
           GSM_Response();
 
       }
        is_msg_arrived=0;
       }
         memset(message_received, 0, 60);
    }

void GSM_Begin()
{

    while(1)
    {
        USART_SendString("ATE0\r");   
        _delay_ms(200);      
            if(strstr(buff,"OK"))
        {
            GSM_Response();                 /* get Response */
            memset(buff,0,160);
            PORTB|=1<<0;
            PORTB&=~(1<<1);
            break;
        }
             else
        {
        PORTB|=(1<<1);
        }
    }
        USART_SendString("AT+CMGF=1\r");/* select message format as text */
        GSM_Response();
}

void GSM_Msg_Delete(unsigned int position)
{
    buffer_pointer=0;
    char delete_cmd[20];
    sprintf(delete_cmd,"AT+CMGD=%d\r",position);    /* delete message at specified position */
    USART_SendString(delete_cmd);
}

void GSM_Delete_All_Msg()
{
    USART_SendString("AT+CMGDA=\"DEL ALL\"\r");      /* delete all messages of SIM */
}

bool GSM_Wait_for_Msg()
{
    char msg_location[4];
    int i;
 
    buffer_pointer=0;

    while(1)
    {
        if(buff[buffer_pointer]=='\r' || buff[buffer_pointer]== '\n') /*eliminate "\r \n" which is start of string */
        {
            buffer_pointer++;
        }
        else
        break;
    }
   
    if(strstr(buff,"CMTI:"))                                          /* "CMTI:" to check if any new message received */
    {
        while(buff[buffer_pointer]!= ',')
        {
            buffer_pointer++;
        }
        buffer_pointer++;
       
        i=0;
        while(buff[buffer_pointer]!= '\r')
        {
            msg_location[i]=buff[buffer_pointer];                  /* copy location of received message where it is stored */
            buffer_pointer++;
            i++;
        }

        /* convert string of position to integer value */
        position = atoi(msg_location);
       
        memset(buff,0,strlen(buff));
        buffer_pointer=0;

        return true;
    }
    else
    {
        return false;
    }
}

/* ISR routine to save responses/new message */
ISR(USART_RX_vect)
{
    buff[buffer_pointer] = UDR0;                     /* copy UDR(received value) to buffer */
    buffer_pointer++;
    status_flag = 1;                              /* flag for new message arrival */
}

void GSM_Send_Msg(char *num,char *sms)
{
    char sms_buffer[35];
    buffer_pointer=0;
    sprintf(sms_buffer,"AT+CMGS=\"%s\"\r",num);
    USART_SendString(sms_buffer);                       /*send command AT+CMGS="Mobile No."\r */
   
    while(1)
    {
        if(buff[buffer_pointer]==0x3e)                  /* wait for '>' character*/
        {
            buffer_pointer = 0;
            memset(buff,0,strlen(buff));
            USART_SendString(sms);                      /* send msg to given no. */
            USART_TxChar(0x1a);                         /* send Ctrl+Z then only message will transmit*/
            break;
        }
        buffer_pointer++;
    }
   
    buffer_pointer = 0;
    memset(buff,0,strlen(buff));
    memset(sms_buffer,0,strlen(sms_buffer));
}

void GSM_Response()
{
    unsigned int timeout=0;
    int CRLF_Found=0;
    char CRLF_buff[2];
    int Response_Length=0;
    while(1)
    {
        if(timeout>=60000)                        /*if timeout occur then return */
        return;
        Response_Length = strlen(buff);
        if(Response_Length)
        {
           
            timeout++;
            if(Response_Length==strlen(buff))
            {
                for(int i=0;i<Response_Length;i++)
                {
                    memmove(CRLF_buff,CRLF_buff+1,1);
                    CRLF_buff[1]=buff[i];
                    if(strncmp(CRLF_buff,"\r\n",2))
                    {
                        if(CRLF_Found++==2)            /* search for \r\n in string */
                        {
                            GSM_Response_Display();      /* display response */
                            return;
                        }
                    }

                }
                CRLF_Found = 0;

            }
           
        }
       
        timeout++;
    }
    status_flag=0;
}

void GSM_Response_Display()
{
    buffer_pointer = 0;
    int lcd_pointer = 0;
    while(1)
    {
        if(buff[buffer_pointer]== '\r' || buff[buffer_pointer]== '\n')  /* search for \r\n in string */
        {
            buffer_pointer++;
        }
        else
        break;
    }
   

   // LCD_Command(0xc0);
    while(buff[buffer_pointer]!='\r')                           /* display response till "\r" */
    {
    //    LCD_Char(buff[buffer_pointer]);
        buffer_pointer++;
        lcd_pointer++;
    //    if(lcd_pointer==15)                                       /* check for end of LCD line */
    //    LCD_Command(0x80);
    }
    buffer_pointer=0;
    memset(buff,0,strlen(buff));
}

void GSM_Msg_Read(int position)
{
    char read_cmd[10];
    sprintf(read_cmd,"AT+CMGR=%d\r",position);
    USART_SendString(read_cmd);                     /* read message at specified location/position */
    GSM_Msg_Display();                           /* display message */
}

void GSM_Msg_Display()
{
   
    if(!(strstr(buff,"+CMGR")))                         /*check for +CMGR response */
    {
//        LCD_String_xy(1,0,"No message");
    }
    else
    {
        buffer_pointer = 0;
       
        while(1)
        {
            if(buff[buffer_pointer]=='\r' || buff[buffer_pointer]== 'n')  /*wait till \r\n not over*/
            {
                buffer_pointer++;
            }
            else
            break;
        }
       
        /* search for 1st ',' to get mobile no.*/
        while(buff[buffer_pointer]!=',')
        {
            buffer_pointer++;
        }
        buffer_pointer = buffer_pointer+2;

        /* extract mobile no. of message sender */
        for(int i=0;i<=12;i++)
        {
           
            buffer_pointer++;
        }
       
        do
        {
            buffer_pointer++;
        }while(buff[buffer_pointer-1]!= '\n');
       
//        LCD_Command(0xC0);
        int i=0;

        /* display and save message */
        while(buff[buffer_pointer]!= '\r' && i<31)
        {
//            LCD_Char(buff[buffer_pointer]);
            message_received[i]=buff[buffer_pointer];
           
            buffer_pointer++;
            i++;
            //if(i==16)
//            LCD_Command(0x80);                  /* display on 1st line */
        }
       
        buffer_pointer = 0;
        memset(buff,0,strlen(buff));
    }
    status_flag = 0;
}[/b]


Вложения:
ATMEGA8_GSM.rar [58.73 KiB]
Скачиваний: 249

_________________
Хочется всё и сразу, а получаешь нихрена и постепенно...
Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: ATmega8+sim800 управление нагрузкой по СМС
СообщениеДобавлено: Чт ноя 26, 2020 00:44:46 
Родился

Зарегистрирован: Чт ноя 26, 2020 00:07:28
Сообщений: 19
Рейтинг сообщения: 0
Здравствуйте,приобрёл SIM800C GSM GPRS модуль четырёхдиапазонная Плата развития с SMA антенной слот Micro SIM для Arduino Raspberry Pi,в место Arduino ,планирую использовать ATmega8,в таблице для модуля (SIM800C Плата развития с AliExpress,файл страница продавца) есть распиновка платы,по SPI,SIM800C_POWKEY,GND,5 В,3V3 всё понятно, а для чего вот эти: GPIO02----SDA, GPIO03---SCL, GPIO14---GSM_IN, GPIO1---GSM_OUT, GPIO18---SIM800C_NET, 27---ID_SD,28---ID_SC, и если на контактное имя GPIO нет описания,значит он к плате не подключен,есть ещё функция обнаружения глушения передачи сигнала GSM,как её использовать в программе ?с уважением.


Вложения:
Screenshot.png [17.4 KiB]
Скачиваний: 175
Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ATmega8+sim800 управление нагрузкой по СМС
СообщениеДобавлено: Чт ноя 26, 2020 11:43:24 
Нашел транзистор. Понюхал.

Зарегистрирован: Пт ноя 16, 2012 18:53:40
Сообщений: 171
Рейтинг сообщения: 0
Прикрепи архив со всем проектом. Ещё лучше, все материалы по этому проекту в архив и на файлообменник.
Валяется у меня макетка с модемом. Поиграюсь.


А еще лучше github ведь, разве нет? ;)


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ATmega8+sim800 управление нагрузкой по СМС
СообщениеДобавлено: Чт ноя 26, 2020 17:26:49 
Родился

Зарегистрирован: Чт ноя 26, 2020 00:07:28
Сообщений: 19
Рейтинг сообщения: 0
нашёл описание распиновки SIM800C GSM GPRS модуль четырехдиапазонная Плата развития с SMA антенной слот Micro SIM для Arduino Raspberry Pi,вопрос остался про функцию обнаружения глушения передачи,с уважением.

Добавлено after 3 hours 16 minutes:
Распиновка Raspberry Pi,вот сайт:https://pinout.xyz/pinout/pin8_gpio14,с лева на картинке нажимаете на необходимый пин и с права появляется описание.для чего он нужен.с уважением.


Вложения:
Screenshot2.png [40.49 KiB]
Скачиваний: 143
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8+sim800 управление нагрузкой по СМС
СообщениеДобавлено: Сб ноя 28, 2020 18:08:00 
Родился

Зарегистрирован: Чт ноя 26, 2020 00:07:28
Сообщений: 19
Рейтинг сообщения: 0
Здравствуйте,для записи телефона,с которого приходят смс,команда так записывается:char Mobile_no[14]="+79123456789"; /* мобильный ном. полученного сообщения */,
а если с двух номеров:
char Mobile_no[14]="+79123456789";
char Mobile_no2[14]="+79123456789";
скажите как продублировать,принять смс и отправить с двух номеров,записывать в коде проекта для каждого номера функции принять и отправить смс или можно в одной функцией обойтись ,пример если можно?
с уважением.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8+sim800 управление нагрузкой по СМС
СообщениеДобавлено: Пн дек 07, 2020 19:04:39 
Родился

Зарегистрирован: Чт ноя 26, 2020 00:07:28
Сообщений: 19
Рейтинг сообщения: 0
Здравствуйте,кому не трудно поделитесь ссылкой на русскоязычный сайт,
где понятным языком расписаны все функции в библиотеках Atmel Studio 6.2
или прокомментированы,в виде таблицы,например так:

extern void *memset(void *, int, size_t); ? пример:memset(buff,0,160);?//прокомментировать.

пример:atoi(msg_location);?//прокомментировать.

extern size_t strnlen(const char *, size_t) __ATTR_PURE__; ? пример:strlen(buff);?//прокомментировать.


P.S. В проекте без дисплея строку: if(strstr( message_received,"ON")) записал так: if(strstr( buff,"ON")) и светодиод загорелся.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8+sim800 управление нагрузкой по СМС
СообщениеДобавлено: Пн дек 07, 2020 19:15:10 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Это не библиотеки Atmel Studio, это стандартные библиотеки языка Си.
Примеры использования можно найти в интернете.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8+sim800 управление нагрузкой по СМС
СообщениеДобавлено: Пн дек 07, 2020 23:45:40 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вт апр 21, 2020 07:44:24
Сообщений: 118
Откуда: Сумы, Украина
Рейтинг сообщения: 0
A^ex, Здравствуйте, я как доберусь до исходников, смогу подсказать.

_________________
Хочется всё и сразу, а получаешь нихрена и постепенно...


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y