Мазмұны:

Температурасы бар хабарламаны уақытында жібереді: 5 қадам (суреттермен)
Температурасы бар хабарламаны уақытында жібереді: 5 қадам (суреттермен)

Бейне: Температурасы бар хабарламаны уақытында жібереді: 5 қадам (суреттермен)

Бейне: Температурасы бар хабарламаны уақытында жібереді: 5 қадам (суреттермен)
Бейне: Титаниктің құпиясы: олар айсбергті қалай байқамады?! Ең егжей-тегжейлі оқиға! 2024, Қараша
Anonim
Температурасы бар SMS хабарламаны уақытында жібереді
Температурасы бар SMS хабарламаны уақытында жібереді

Идея - әкемнің үйінен температуралық смс алу.

Бөлшектерді тез біріктіру ештеңеге қызық емес.

Бөлімдері мыналар:

  • Geekcreit® ATmega328P Nano V3 контроллер тақтасы үйлесімді Arduino
  • DIY NANO IO Shield V1. O Arduino үшін кеңейту тақтасы
  • DS1307 негізіндегі RTC IIC / I2C нақты уақыт модулі және DS18b20
  • SIM800L төрт жолақты GSM / GPRS
  • LM2596 DC DC DC конвертері реттелетін төмен түсетін қуат модулі
  • Thermistor NTC MF52AT температурасы

Ең алдымен оқу мен ізденуден бас тартады.

Мен Geekcreit® Nano -ны қолданамын, мен барлық бөлшектерді Arduino Uno көмегімен тексеремін.

1 -қадам: SIM800l жұмысқа кірісіңіз

SIM800l -ді жұмысқа қосыңыз
SIM800l -ді жұмысқа қосыңыз

Бір маңызды мәселе - Sim800L қуаты.

Мен LM2596 Mini DC-DC түрлендіргішін қолданамын, 3,7 вольтке реттелген және бөлек қуат көзі.

AT+ командаларымен қосылуды тексеру үшін бұл жақ өте ыңғайлы:

Жылдам бастау SIM800 (SIM800L) Arduino көмегімен

Командаларда gsm модемін қолдана отырып, пин -кодты өшіру арқылы мен SIM -кодты қолдандым.

Келесі қарастыру қай кітапхана. Интернет әртүрлі шешімдерді ұсынады.

Менің шешімім - Mattias Aabmets кітапханасы: AspenSIM800

Оның мысалы: Send_SMS.ino I -ді негізгі бағдарлама ретінде қолданды және қалған бөліктерді бір -бірлеп қосады.

Tx және Rx түйреуіштері келесі кодтарға арналған:

Arduino RX_PIN 10. SIM800 модулінің TX істікшесіне қосылу керек. TX_PIN 11 Arduino. SIM800 модулінің RX істікшесіне қосылуы керек

Кітапханалардан *.ccp және *.h файлдарын оқу әрқашан жақсы идея.

Олар көптеген қызықты кеңестер мен білімдерді қамтиды.

2 -қадам: жұмыс істеу үшін DS18B20 сенсорымен DS1307 RTC алыңыз

DS18B20 сенсорымен жұмыс істеу үшін DS1307 RTC алыңыз
DS18B20 сенсорымен жұмыс істеу үшін DS1307 RTC алыңыз

Мен бұл жағын қолдандым: simtronyx - DS1307 мен DS18B20 блогы.

Сағат I2C шинасына қосылған, бұл Arduino Uno үшін: A4 (SDA) - A5 (SCL)

DS18B20 I D3 -ке қосылды.

Мен SMS -те Floats only String жібере алмайтынын оқыдым, сондықтан мен флоттарды жолға аударуға тура келді.

Мен тапқан осы код үзіндісімен жасаймын:

n

MyString1 = Жол (currentTemp, 2); // float -ты String -ке түрлендіру

MyString1 = (MyString1 + «C - RoomTemperatur:)»);

// жолды char -қа түрлендіру осы жерден басталады

// Ұзындық (нөлдік терминатор үшін бір қосымша таңбамен)

int str_len1 = MyString1.length () + 1; // Таңбалар жиынын дайындаңыз (буфер)

char char_array1 [str_len1]; // Оны көшіріп алыңыз

MyString1.toCharArray (char_array1, str_len1); // жолды char -ге түрлендіру оны аяқтайды

Мен шынымды айтамын, бұл қалай жұмыс жасамайды, бірақ ол жұмыс істейді.

3 -қадам: Thermistor NTC MF52AT жұмыс істеуін қамтамасыз етіңіз

Thermistor NTC MF52AT жұмыс істеуін алыңыз
Thermistor NTC MF52AT жұмыс істеуін алыңыз

Мен термистормен жұмыс істедім, сондықтан бұл оңай бөлігі.

Бірақ мұнда сіз басқа шешімді таба аласыз.

Соңғы кодта сіз менікін таба аласыз.

Сіз сонымен қатар Floats to String аудармасын таба аласыз.

Термисторға бірнеше сым мен 10 к Ом резисторды дәнекерледі.

4 -қадам: Барлығын бірге жұмыс істеуге шақырыңыз

Сондықтан мен бағдарламаның барлық бөліктерін бірге жаздым.

Енді мен күн сайын бір уақытта қалай бір SMS жіберу керектігін түсінуім керек болды.

Мен әр түрлі идеялар туралы оқыдым, олардың кейбірі TimerAlarm және басқа тәсілмен.

Бірақ мен arduino форумында қарапайым шешімді таптым:

if (now.hour () == 8 && now.minute () == 00 && now.second () == 59)

{

SIM.smsSend (addr, char_array); // термистор

кешіктіру (500); SIM.smsSend (addr, char_array1); // DS18B20}

Бірақ неге now.second = 59, себебі ол бір минуттық SMS жібереді. Бұл мен үшін жақсы, бірақ өзіңізді сынап көріңіз.

Бірнеше тестілеуден кейін мен бағдарламаны Geekcreit® Nano -ға жүктедім.

Бұл, мүмкін, ең жақсы бағдарлама жазуы емес:) бірақ ол қалағанын жасайды.

Geekcreit® ATmega328P Nano -да Arduino IDE -де кейбір ақаулар болғандықтан, мен терминалды жүктеймін (Linux Mint) USBtinyisp -ты осымен жібереді: avrdude -c usbtiny -p atmega328p -U жарқыл: w: SomeHexFile.hex

5 -қадам: ол жұмыс істеді

Иә, ол шешілді және ол үйге орналастырылды.

Күн сайын таңғы 6: 00 -де маған температурасы туралы SMS келеді.

Ұсынылған: