Мазмұны:
- 1 -қадам: SIM800l жұмысқа кірісіңіз
- 2 -қадам: жұмыс істеу үшін DS18B20 сенсорымен DS1307 RTC алыңыз
- 3 -қадам: Thermistor NTC MF52AT жұмыс істеуін қамтамасыз етіңіз
- 4 -қадам: Барлығын бірге жұмыс істеуге шақырыңыз
- 5 -қадам: ол жұмыс істеді
Бейне: Температурасы бар хабарламаны уақытында жібереді: 5 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
Идея - әкемнің үйінен температуралық смс алу.
Бөлшектерді тез біріктіру ештеңеге қызық емес.
Бөлімдері мыналар:
- 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 қуаты.
Мен 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 алыңыз
Мен бұл жағын қолдандым: 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 жұмыс істеуін қамтамасыз етіңіз
Мен термистормен жұмыс істедім, сондықтан бұл оңай бөлігі.
Бірақ мұнда сіз басқа шешімді таба аласыз.
Соңғы кодта сіз менікін таба аласыз.
Сіз сонымен қатар 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 келеді.
Ұсынылған:
Үй температурасы реттегіші бар Пельтиер салқындатқышы / тоңазытқыш: 6 қадам (суреттермен)
Температураны реттегіші бар үйдегі Peltier салқындатқышы / тоңазытқышы: W1209 температура реттегіші бар үй термоэлектрлік Пельтиер салқындатқышы / шағын тоңазытқыш DIY қалай жасауға болады. Бұл TEC1-12706 модулі мен Пельтиер эффектісі DIY-ді салқындатуға мүмкіндік береді
OLED экраны бар IoT температурасы мен ылғалдылығын өлшейтін құрал: 5 қадам (суреттермен)
OLED экраны бар IoT температурасы мен ылғалдылығын өлшегіш: OLED экранында температураны және ылғалдылықты кез келген уақытта тексеріңіз және сол уақытта IoT платформасында сол деректерді жинаңыз. Өткен аптада мен қарапайым IoT температурасы мен ылғалдылығын өлшеуіш деп аталатын жобаны жарияладым. Бұл жақсы жоба, өйткені сіз
Кішкене хабарламаны жасырушы/құпия агент таяқшасы: 4 қадам (суреттермен)
Little Message Hider/құпия агент Chapstick: досыңызға кішкене хабарлама сақтайтын орын іздеп жүрсіз бе? Сіз жасырын агент туралы жұмыс туралы не айтасыз? Бұл қарапайым дизайн мұндай жағдайлар үшін өте қолайлы және оны жасау өте арзан
Сандық сағат пен температурасы бар музыкалық спектр: 9 қадам (суреттермен)
Сандық сағат пен температурасы бар музыкалық спектр: Біз сізге ұнайтын жобамен тағы да келдік. Егер сіз музыка тыңдағанды ұнатсаңыз және визуалдылықтан ләззат алсаңыз, бұл жоба сізге арналған. ТЕМПЕРАТУРАЛЫҚ ДИГИТАЛЬДІ САҒАТТЫ САУЫҚ МУЗЫКАЛЫҚ СПЕКТРЛІ ЭЛЕКТРОНДЫҚ ЖИНАҚ. Бұл электронды жинақ. Бағдарламаны аяқтаған кезде
MPU-6050/A0 нақты уақытында Arduino және Android көмегімен деректерді тіркеу: 7 қадам (суреттермен)
Нақты уақыттағы MPU-6050/A0 Arduino және Android көмегімен деректерді тіркеу: Мен Arduino-ны машиналық оқыту үшін қолдануға қызығушылық таныттым. Алғашқы қадам ретінде мен Android құрылғысымен нақты уақыт режимінде (немесе оған жақын жерде) деректер дисплейі мен тіркеушіні құрғым келеді. Мен MPU-6050-ден акселерометр деректерін алғым келеді, сондықтан мен