Turinys:
- 1 veiksmas: priverskite SIM800l veikti
- 2 veiksmas: pradėkite veikti RTC DS1307 su DS18B20 jutikliu
- 3 veiksmas: pradėkite veikti termistorių NTC MF52AT
- 4 žingsnis: priverskite visus dirbti kartu
- 5 žingsnis: tai pavyko
Video: Laiku siunčia SMS su „Temperatur“: 5 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:49
Idėja yra gauti temperatūros pranešimą iš mano tėvų namų.
Nieko nuostabaus - tik greitas dalių sujungimas.
Dalys yra:
- „Geekcreit® ATmega328P Nano V3“valdiklio plokštė suderinama su „Arduino“
- „Pasidaryk pats“„NANO IO Shield V1. O“išplėtimo plokštė, skirta „Arduino“
- DS1307 pagrįstas RTC IIC / I2C realaus laiko laikrodžio modulis ir DS18b20
- SIM800L keturių juostų GSM / GPRS
- LM2596 Mini DC-DC keitiklis Reguliuojamas mažinimo maitinimo blokas
- Termistoriaus NTC MF52AT temperatūra
Pirmiausia labai daug nuo skaitymo ir paieškos.
Kadangi pagaliau naudoju „Geekcreit® Nano“, visas dalis išbandau su „Arduino Uno“.
1 veiksmas: priverskite SIM800l veikti
Pagrindinis dalykas yra „Sim800L“galia.
Aš naudoju LM2596 mini DC-DC keitiklį, sureguliuotą iki 3,7 voltų ir atskirą maitinimo šaltinį.
Norint išbandyti ryšį naudojant AT+ komandas, ši pusė yra labai tinkama:
Greitas paleidimas SIM800 (SIM800L) su „Arduino“
Naudodami komandų parinktį Išjungti PIN kodą naudojant „gsm“modemą, gavau sim PIN kodą.
Kitas svarstymas, kokia biblioteka. Internetas siūlo kitokį sprendimą.
Mano sprendimas yra Mattias Aabmets biblioteka: AspenSIM800
Jo pavyzdys: Send_SMS.ino naudojo I kaip pagrindinę programą ir po vieną sujungė visas kitas dalis.
„Tx“ir „Rx“kaiščiai yra kodai:
RX_PIN 10 iš „Arduino“. Turi būti prijungtas prie SIM800 modulio TX kaiščio. TX_PIN 11 iš „Arduino“. Turi būti prijungtas prie SIM800 modulio RX kaiščio
Visada gera idėja skaityti *.ccp ir *.h failus bibliotekose.
Juose yra daug įdomių patarimų ir žinių.
2 veiksmas: pradėkite veikti RTC DS1307 su DS18B20 jutikliu
Aš naudoju šią šoninę pusę: simtronyx - DS1307 ir DS18B20 tinklaraštis.
Laikrodis turi I2C magistralės jungtį, tai yra „Arduino Uno“: A4 (SDA) - A5 (SCL)
DS18B20 I prijungtas prie D3.
Aš perskaičiau, kad SMS žinute negalima siųsti „Floats“tik eilutės, todėl turėjau išversti plūdes į eilutes.
Ką darau su šiuo rastu kodo fragmentu:
n
MyString1 = Styga (currentTemp, 2); // Konvertuokite plūdę į eilutę
MyString1 = (MyString1 + "C - RoomTemperatur:)");
// konvertuoti eilutę į char prasideda čia
// Ilgis (su vienu papildomu simboliu nuliniam terminatoriui)
int str_len1 = MyString1.length () + 1; // Paruoškite simbolių masyvą (buferį)
char char_array1 [str_len1]; // Nukopijuokite
MyString1.toCharArray (char_array1, str_len1); // konvertuoti eilutę į char baigia ją
Pasakysiu atvirai, nesuprantu, kaip tai veikia, bet veikia.
3 veiksmas: pradėkite veikti termistorių NTC MF52AT
Aš dirbau su termistoriumi, todėl tai buvo lengva dalis.
Bet čia taip pat galite rasti kitokį sprendimą.
Galutiniame kode galite rasti mano.
Taip pat galite rasti vertimą „Floats to String“.
Prie termistoriaus buvo prilituotas tam tikras laidas ir 10 k omų rezistorius.
4 žingsnis: priverskite visus dirbti kartu
Taigi visas programos dalis parašiau kartu.
Dabar turėjau išsiaiškinti, kaip siųsti vieną SMS kiekvieną dieną tuo pačiu metu.
Skaičiau apie įvairias idėjas, kai kurios naudoja „TimerAlarm“ir kitą metodą.
Bet kažkur arduino forume radau paprastą sprendimą:
if (now.hour () == 8 && now.minute () == 00 && now.second () == 59)
{
SIM.smsSend (addr, char_array); // termistorius
vėlavimas (500); SIM.smsSend (addr, char_array1); // DS18B20}
Bet kodėl dabar.sekundė = 59, nes siunčia visą minutę SMS. Man tai tinka, bet pabandyk pats.
Po tam tikro testo įkėliau programą į „Geekcreit® Nano“.
Tai ne pats geriausias programos rašymas:) bet tai daro norimą.
Kadangi „Geekcreit® ATmega328P Nano“turi tam tikrų „Arduino IDE“problemų, įkeliu per terminalą („Linux Mint“), mesti USBtinyisp su šia: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex
5 žingsnis: tai pavyko
Taip, tai pavyko ir jis dedamas į namą.
Kiekvieną dieną 6:00 gaunu SMS žinutę su temperatūra.
Rekomenduojamas:
Pasukite rotacinį telefoną į radiją ir keliaukite laiku: 5 žingsniai (su nuotraukomis)
Pasukite rotacinį telefoną į radiją ir keliaukite per laiką: aš nulaužiau rotacinį telefoną į radiją! Paimkite telefoną, pasirinkite šalį ir dešimtmetį ir klausykitės puikios muzikos! Kaip tai veikia Šis sukamasis telefonas turi įmontuotą mikrokompiuterį („Raspberry Pi“), kuris perduoda ryšį su interneto radiju radiooooo.com
Sukurkite „pasidaryk pats“laistymo puodą su „WiFi“- „Waters Plants“automatiškai ir siunčia įspėjimus, kai vandens yra mažai: 19 žingsnių
Sukurkite „pasidaryk pats“laistymo puodą su „WiFi“- „Waters Plants“automatiškai ir siunčia įspėjimus, kai vandens yra mažai: Šioje pamokoje parodyta, kaip sukurti pritaikytą „WiFi“prijungtą savaiminio laistymo sodinuką naudojant seną sodo sodintuvą, šiukšliadėžę, šiek tiek klijų ir „Self“Laistymo puodo surinkimo rinkinys iš „Adosia“
„Nodemcu“siunčia temperatūros ir drėgmės duomenis į kalbas: 7 žingsniai
„Nodemcu“siunčia temperatūros ir drėgmės duomenis į „Thingspeak“: šioje pamokoje mes sujungėme „nodemcu“su dht11 jutikliu ir siunčiame temperatūros ir drėgmės duomenis į „thingspeak“serverį. Čia mes taip pat nubraižėme temperatūros ir drėgmės grafiką į „Thingspeak“serverį
„Arduino“siunčia Dht11 duomenis į „MySQL“serverį (PHPMYADMIN), naudodamas „Python“: 5 žingsniai
„Arduino“siunčia „Dht11“duomenis į „MySQL“serverį (PHPMYADMIN) naudodamas „Python“: Šiame projekte aš sujungiau DHT11 su „arduino“ir tada siunčiu dht11, kuris yra drėgmė ir temperatūra, duomenis į „phpmyadmin“duomenų bazę. Skirtingai nuo ankstesnio projekto, šiuo atveju nenaudojame jokio „Ethernet“skydo, čia mes tik skaitome
„Arduino“siunčia temperatūros ir drėgmės duomenis į „MySQL“serverį (PHPMYADMIN): 5 žingsniai
„Arduino“siunčia temperatūros ir drėgmės duomenis į „MySQL“serverį (PHPMYADMIN): Šiame projekte aš sujungiau DHT11 su „arduino“ir tada siunčiu dht11, kuris yra drėgmė ir temperatūra, duomenis į „phpmyadmin“duomenų bazę. Čia mes naudojame vieną PHP scenarijų, norėdami perkelti duomenis į „phpmyadmin“duomenų bazę