Мазмуну:
- 1 -кадам: Берилиштер
- 2 -кадам: LoRa түйүнү
- 3 -кадам: түйүн жана сенсор туташуусу
- 4 -кадам: маалыматтарды шлюзга жөнөтүү
- 5 -кадам: MakePython Lora
- 6 -кадам: LoRaWAN шлюзу
- 7 -кадам: Кодду жүктөп алыңыз
- 8 -кадам: маалыматтарды алуу
- 9 -кадам: ThingSpeak IoT колдонуңуз
- 10 -кадам: Жыйынтык
Video: Lora Gateway MicroPython ESP32 негизинде: 10 кадам (Сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Лора акыркы жылдары абдан популярдуу болуп калды. Бул технологияны колдонгон зымсыз байланыш модулу, адатта, арзан (бекер спектрди колдонуу менен), кичине өлчөмдө, энергияны үнөмдөөчү жана байланыштын узак аралыкына ээ жана негизинен IoT терминалдарынын ортосундагы өз ара байланыш же хост менен маалымат алмашуу үчүн колдонулат. Рынокто көптөгөн LoRa модулдары бар, мисалы RFM96W, ал абдан кичинекей SX1278 (шайкеш) чип менен жабдылган. Мен аны MakePython ESP32 менен шлюз катары колдоном.
Андан кийин, мен температура жана нымдуулук маалыматтарын шлюзга жөнөтүү үчүн эки LoRa түйүнүн колдоном, анан шлюз аркылуу интернетке жүктөйм. Бул жерде сиз шлюз аркылуу булутка бир нече LoRa түйүнүнүн алыскы маалыматын кантип жүктөөнү үйрөнөсүз.
1 -кадам: Берилиштер
1*MakePython ESP32
MakePython ESP32 - бул интеграцияланган SSD1306 OLED дисплейи бар ESP32 тактасы.
2*Maduino LoRa радиосу
Maduino Lora Radio - бул Atmel's Atmega328P MCU жана Lora модулуна негизделген IoT (Интернет нерселери) чечими. Бул IoT долбоорлору үчүн чыныгы долбоор болушу мүмкүн (айрыкча узак аралыкка, аз кубаттуулуктагы колдонмо)
2*DHT11
1*MakePython Lora
2 -кадам: LoRa түйүнү
Бул Maduino Lora радиосунун схемасы.
Arduino Lora Radio модулу LoRa түйүнү катары биз аны шлюзга температура жана нымдуулук маалыматын жөнөтүү үчүн колдонобуз.
(Бул WiKi Maduino Lora радиосун кантип колдонууну жана маалыматтарды жөнөтүүнү жана кабыл алууну таанытат)
3 -кадам: түйүн жана сенсор туташуусу
VCC жана GND DHT11 3V3 жана GND Maduino менен туташкан, ал эми DATA пини Maduino D4 менен туташкан.
0 түйүн паркта, 1 түйүн компаниянын жанындагы офистик имаратта, алар 2 километрдей аралыкта, анан мен алардын температурасы жана нымдуулугу жөнүндө маалыматтарды үйдөн алам
4 -кадам: маалыматтарды шлюзга жөнөтүү
TransmitterDHT11.ino жүктөп алыңыз, аны Arduino IDEде ачыңыз.
Түйүн кошуп жатканда, түйүндүн номерин ошого жараша өзгөртүңүз. Мисалы, азыр 2 түйүндү колдонуңуз, биринчи түйүн = nodenum = 0 программаны иштетүү үчүн, экинчи nodenum = 1 программаны иштетүү үчүн, жана башкалар, сиз дагы түйүн кошо аласыз.
int16_t packetnum = 0; // пакет эсептегич, биз xmission күнүнө көбөйтөбүз
int16_t nodenum = 0; // Түйүндүн номерин өзгөртүү
Маалыматтарды чогултуп, басып чыгарыңыз
String message = "#"+(String) nodenum+"Нымдуулук:"+(String) нымдуулук+"% Температура:"+(String) температура+"C"+"num:"+(String) packetnum; Serial.println (билдирүү); packetnum ++;
Rf95_serverге билдирүү жөнөтүңүз
uint8_t radioPacket [message.length ()+1];
message.toCharArray (radioPacket, message.length ()+1); radioPacket [message.length ()+1] = '\ 0'; rf95.send ((uint8_t *) radioPacket, message.length ()+1);
Сериялык мониторду ачыңыз, сиз чогултулган температура жана нымдуулук маалыматын көрө аласыз жана аны жөнөтө аласыз.
#0 Нымдуулук: 6.00% Температура: 27.00C саны: 0
Берүү: rf95_serverге жөнөтүлүүдө Жөнөтүлүүдө… Пакеттин бүтүшүн күтүүдө… Жоопту күтүүдө… Жооп жок, тегерегинде угуучу барбы?
Аны кой, азыр биз Лора шлюзун жасашыбыз керек.
5 -кадам: MakePython Lora
Бул RFM96W модулунун жана MakePython ESP32нин тиешелүү пини. MakePython ESP32 менен байланышты жеңилдетүү үчүн мен RFM96W модулу менен схема түздүм. Ооба, анын үстүндө эки RFM96W бар, алар бир убакта маалыматтарды жөнөтүп жана ала алышат, бирок азыр мага бирөө гана керек.
6 -кадам: LoRaWAN шлюзу
LoRaWAN-бул LoRa негизделген аз кубаттуулуктагы кеңири тармак, ал төмөнкүлөрдү камсыздай алат: аз энергия керектөө, масштабдуулугу, тейлөөнүн жогорку сапаты жана коопсуз алыскы зымсыз тармак.
MakePython Lora жана ESP32ди чогултуп, алыскы маалыматтарды кабыл алып, интернетке жүктөй турган шлюз жасаңыз.
7 -кадам: Кодду жүктөп алыңыз
Бардык 'xxx.py' файлдарын WiKiден жүктөп алып, ESP32ге жүктөңүз.
LoRaDuplexCallback.py файлын ачыңыз, сиздин ESP32 тармагыңызга туташып, серверге маалыматтарды жүктөй алгыдай кылып кээ бир тууралоолорду киргизишиңиз керек.
ThingSpeak -те алган API_KEYди өзгөртүңүз (мен аны кийинчерээк кантип алууну тааныштырам)
#https://thingspeak.com/channels/1047479
API_KEY = 'UBHIRHVV9THUJVUI'
WiFi туташуу үчүн SSID жана PSW өзгөртүү
ssid = "Makerfabs"
pswd = "20160704"
8 -кадам: маалыматтарды алуу
LoRaDuplexCallback.py файлында on_receive (lora, payload) функциясын табыңыз, анда ESP32ге маалыматты алгандан кийин эмне кылуу керектигин айта аласыз. Төмөнкү код талдоо жана алынган температура жана нымдуулук маалыматтарды көрсөтөт.
def on_receive (лора, пайдалуу жүк):
lora.blink_led () rssi = lora.packetRssi () аракет кылыңыз: узундук = лен (жүктөө) -1 myStr = str ((жүктөм [4: узундук)), 'utf-8') узундук = = MyStr.find (':') myNum1 = myStr [(length1+1):(length1+6)] myNum2 = myStr [(length1+20):(length1+25)] print ("*** Алынган билдирүү *** / n {}"). format (payload)) if config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (payload [4: length])), rssi) if wlan.isconnected (): глобалдык msgCount басып чыгаруу ('Тармакка жөнөтүлүүдө…') node = int (str (payload [5: 6], 'utf-8')) if node == 0: URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& field1 = "+myNum1+" & field2 = "+myNum2 res = urequests.get (URL) басып чыгаруу (res.text) elif node == 1: URL =" https://api.thingspeak.com/update?api_key= "+API_KEY+" & field3 = "+myNum1+" & field4 = "+myNum2 res = urequests.get (URL) print (res.text) in except Exception as e: print (e) print (" with RSSI {} n ".format (rssi))
Түйүндөрдү айырмалоо үчүн жана сот аркылуу URLди интернетке жүктөө, биз ар кандай түйүндөрдүн алыскы маалыматтарын каалаган убакта көзөмөлдөй алабыз. Сиз дагы түйүндөрдү кошуп, кодго окшош өзгөртүүлөрдү киргизе аласыз.
эгер түйүн == 0:
URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& field1 ="+myNum1+"& field2 ="+myNum2 res = urequests.get (URL) басып чыгаруу (res.text)
9 -кадам: ThingSpeak IoT колдонуңуз
Кадамдар:
- Https://thingspeak.com/ дарегине катталыңыз. Эгер сизде мурунтан эле бар болсо, түздөн -түз кириңиз.
- Жаңы ThingSpeak каналын түзүү үчүн Жаңы Каналды басыңыз.
- Киргизүү аты, Сыпаттама, Тандоо 1 -талаа. Андан кийин каналды түбүнө сактап коюңуз.
- API ачкычтарын басыңыз, API ачкычын көчүрүңүз, биз аны программада колдонобуз.
10 -кадам: Жыйынтык
0 түйүндүн жана 1 -түйүндүн маалыматтарын экрандан 2 километр алыстыкта болсо да көрө аласыз.
ThingSpeak эсебиңизге кириңиз жана өзүңүз түзгөн каналды чыкылдатыңыз, жүктөлгөн температура жана нымдуулук маалыматын көрө аласыз.
Талаа1 графасы жана талаа2 графалары - бул Лора түйүнүнүн 0 нымдуулугу жана температурасы маалыматы, ал эми талаа3 графасы менен талаа4 графасы - Лора түйүнүнүн 1 нымдуулугу жана температурасы жөнүндө маалымат.
Сунушталууда:
Альтиметр (бийиктикти өлчөөчү) Атмосфералык басымдын негизинде: 7 кадам (Сүрөттөр менен)
Альтиметр (бийиктикти өлчөөчү) Атмосфералык басымга негизделген: [Оңдоо]; Кол менен баштапкы бийиктикке кирүү менен 6 -кадамдын 2 -версиясын караңыз. Бул Arduino Nano жана Bosch BMP180 атмосфералык басым сенсоруна негизделген Altimeter (Altimetre Metre) имаратынын сүрөттөлүшү. Дизайн жөнөкөй, бирок өлчөөлөр
Apple HomeKit Wi-Fi нымдагычтары ESP8266 негизинде?: 6 кадам (сүрөттөр менен)
Apple HomeKit Wi-Fi нымдагычтары ESP8266 негизинде?: Тилекке каршы, Apple HomeKitти колдогон бир же эки DeHumidifiers бар, бирок алардын баасы абдан жогору (300 $+). Ошентип, менде бар Wi-Fiга жөндөмдүү Apple HomeKit нымдагычын жасоону чечтим, менде бар болгон арзан баага негизделген? Мен
MQTT MicroPython ESP32 негизинде: 5 кадам
MQTT MicroPython ESP32 негизинде: Мен мышыктарды кармоону жакшы көрөм. Күчтүү жумуштан бир күн өткөндөн кийин, мышык үйгө келгенде мени эс алдырат. Катуу машыгуудан кийин бул мышыктын " ресторанда " күн сайын. Бирок жакында мен бир нече күнгө саякатка чыгууга туура келди жана
[15мин] Уизли Сааты / Үйдүн индикатору ким - TR -064 негизинде (бета): 4 кадам (Сүрөттөр менен)
[15мин] Уизли Сааты / Үйдүн индикатору ким-TR-064 негизинде (бета): UPDATE: 3-кадамды караңыз. Узун окуя (TL; Төмөндө DR): Бир нече убакыт мурун мен компьютериме кичинекей баш-скрипт жазгам тармакты катталган түзмөктөр үчүн издеңиз жана алардын хост аттарын байланышкан аттары бар тизмеге салыштырыңыз. Ар бир түзмөк журналга киргенде
MQTT & AWS негизинде виндсерфинг үчүн шамал станциясы: 3 кадам (сүрөттөр менен)
MQTT & AWS негизинде виндсерфинг үчүн шамал станциясы: Шенженде көптөгөн кооз пляждар бар. Жайкы күндөрдө мен эң жакшы көргөн спорттун түрү - сүзүү. Парустук спорт үчүн мен дагы эле баштайм, мага деңиз суусунун бетиме тийгенин сезүү жагат, жана дагы бул спорт менен көптөгөн жаңы досторум бар