Talaan ng mga Nilalaman:

Nagpapadala ng isang Sms Na May Temperatur sa Oras: 5 Hakbang (na may Mga Larawan)
Nagpapadala ng isang Sms Na May Temperatur sa Oras: 5 Hakbang (na may Mga Larawan)

Video: Nagpapadala ng isang Sms Na May Temperatur sa Oras: 5 Hakbang (na may Mga Larawan)

Video: Nagpapadala ng isang Sms Na May Temperatur sa Oras: 5 Hakbang (na may Mga Larawan)
Video: Металл больше не нужен! Теперь есть ФИБЕРГЛАСС своими руками в домашних условиях. 2024, Nobyembre
Anonim
Nagpapadala ng isang Sms Na May Temperatur sa Oras
Nagpapadala ng isang Sms Na May Temperatur sa Oras

Ang ideya ay upang makakuha ng isang temperatur sms mula sa bahay ng aking mga ama.

Walang magarbong mabilis lamang na pagsasama-sama ng mga bahagi.

Ang mga bahagi ay:

  • Geekcreit® ATmega328P Nano V3 Controller Board Tugmang Arduino
  • DIY NANO IO Shield V1. O Expansion Board Para sa Arduino
  • DS1307 Batay sa RTC IIC / I2C Real Time Clock Module at DS18b20
  • SIM800L Quad-band GSM / GPRS
  • LM2596 Mini DC-DC Converter Adjustable Step Down Power Supply Module
  • Temperatura ng Thermistor NTC MF52AT

Una sa lahat ng maraming off sa pagbabasa at paghahanap.

Dahil sa wakas ay ginagamit ko ang Geekcreit® Nano, sinusubukan ko ang lahat ng mga bahagi sa isang Arduino Uno.

Hakbang 1: Kunin ang SIM800l upang Magtrabaho

Kunin ang SIM800l upang Magtrabaho
Kunin ang SIM800l upang Magtrabaho

Ang isang pangunahing punto ay ang lakas para sa Sim800L.

Gumagamit ako ng isang LM2596 Mini DC-DC converter, naayos sa 3.7 volts at isang hiwalay na power supply.

Upang masubukan ang koneksyon sa mga utos ng AT + sa panig na ito ay lubos na magagamit:

Quickstart SIM800 (SIM800L) kasama ang Arduino

Sa Huwag paganahin ang pin code gamit ang gsm modem sa mga utos na nakuha ko ang sim pin code.

Ang susunod na pagsasaalang-alang sa aling silid aklatan. Nag-aalok ang internet ng iba't ibang solusyon.

Ang solusyon ko ay ang silid-aklatan mula sa Mattias Aabmets: AspenSIM800

Ang kanyang halimbawa: Ang Send_SMS.ino ay ginamit ko bilang pangunahing programa at isa-isang ikonekta ang lahat ng iba pang mga bahagi nang magkasama.

Ang Tx pin at Rx pin ay code sa:

RX_PIN 10 ng Arduino. Dapat na konektado sa TX pin ng module na SIM800. TX_PIN 11 ng Arduino. Dapat na konektado sa RX pin ng module na SIM800

Palaging magandang ideya na basahin ang mga *.ccp at *.h file sa mga aklatan.

Naglalaman ang mga ito ng maraming mga kagiliw-giliw na mga pahiwatig at kaalaman.

Hakbang 2: Kunin ang RTC DS1307 Sa DS18B20 Sensor upang Magtrabaho

Kunin ang RTC DS1307 Gamit ang DS18B20 Sensor upang Magtrabaho
Kunin ang RTC DS1307 Gamit ang DS18B20 Sensor upang Magtrabaho

Ginamit ko ang panig na ito: simtronyx - ang blog para sa DS1307 at DS18B20.

Ang orasan ay may koneksyon sa I2C bus at iyon ay para sa Arduino Uno: A4 (SDA) - A5 (SCL)

Ang DS18B20 na konektado ko sa D3.

Nabasa ko na sa isang SMS hindi ka maaaring magpadala ng Floats lamang ng String, kaya kinailangan kong isalin ang floats sa string.

Ginagawa ko iyon sa snippet ng code na nahanap ko:

n

MyString1 = String (kasalukuyangTemp, 2); // I-convert ang float sa String

MyString1 = (MyString1 + "C - RoomTemperatur:)");

// convert string to char nagsisimula dito

// Haba (na may isang labis na character para sa null terminator)

int str_len1 = MyString1.length () + 1; // Ihanda ang character array (ang buffer)

char char_array1 [str_len1]; // Kopyahin ito

MyString1.toCharArray (char_array1, str_len1); // convert string to char nagtatapos sa kanya

Ako ay magiging matapat hindi ko kung paano ito gumagana, ngunit ito gumagana.

Hakbang 3: Kunin ang Thermistor NTC MF52AT upang Magtrabaho

Kunin ang Thermistor NTC MF52AT upang Magtrabaho
Kunin ang Thermistor NTC MF52AT upang Magtrabaho

Nagtrabaho ako ng befor sa isang thermistor kaya't ito ang madaling bahagi.

Ngunit dito ka rin makakahanap ng iba`t ibang solusyon.

Sa finaly code maaari kang makahanap ng minahan.

Maaari mo ring makita ang pagsasalin na Floats to String.

Naghinang ng ilang kawad at ang 10 k ohm risistor sa thermistor.

Hakbang 4: Gawin ang Lahat upang Magtulungan

Kaya't sinulat ko nang magkasama ang lahat ng mga bahagi ng programa.

Ngayon kailangan kong malaman kung paano magpadala ng isang SMS araw-araw, sa parehong oras.

Nabasa ko ang tungkol sa magkakaibang ideya, ang ilan ay may TimerAlarm at iba pang diskarte.

Ngunit nakakita ako ng isang simpleng solusyon sa ilang lugar sa forum ng arduino:

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

{

SIM.smsSend (addr, char_array); // thermistor

pagkaantala (500); SIM.smsSend (addr, char_array1); // DS18B20}

Ngunit bakit ngayon.second = 59 dahil nagpapadala ito ng isang buong minut SMS. Ginagawa ito para sa akin ngunit subukan ang iyong sarili.

Matapos ang ilang pagsubok ay na-upload ko ang programm sa Geekcreit® Nano.

Ito ay maaaring hindi ang pinakamahusay na pagsusulat ng programa:) ngunit ginagawa nito ang ninanais.

Dahil ang Geekcreit® ATmega328P Nano ay may ilang mga problema sa Arduino IDE, ina-upload ko sa pamamagitan ng terminal (Linux Mint) itapon ang USBtinyisp sa pamamagitan nito: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

Hakbang 5: Gumana Ito

Oo nag-ehersisyo ito at inilalagay ito sa bahay.

Araw-araw sa ganap na 6:00 ay nakakakuha ako ng isang SMS na may temperatur.

Inirerekumendang: