Semua Tentang Belajar Teknologi Digital Dalam Kehidupan Sehari - Hari

Kamis, 02 September 2021

Python ESP8266 - Part3 - Kirim Terima TCP Socket di MicroPython

 



Untuk praktek kali ini diperlukan aplikasi TCP server yg bisa menggunakan pc maupun smartphone android yang pernah saya bahas sebelumnya dalam pembahasan dasar wemos (klik disini). Kali ini akan saya singkat saja karena pada dasarnya untuk pemahamannya tidak jauh berbeda, hanya cukup memahami proses pada gambar berikut ini :




Penjelasan dari REPL micropython diatas sebagai berikut :


1 . Inisialisasi package socket pada micropython

>>> import socket  

>>> s=socket.socket()


2. IP dan port dari socket yg akan dikirimi  data,  alamatnya berupa tupple berisi 5 anggota


>>> alamat=socket.getaddrinfo('192.168.1.65',4000)

>>> print(alamat)

[(2, 1, 0, '', ('192.168.1.65', 4000))]


3. Hanya dibutuhkan   sampai isi tupple [-1] untuk koneksi socket


>>> s.connect(alamat[0][-1])


4. Kirim data teks ke lawan 


>>> sock.send('halo bos..apa kabar ?')

>>> s.send('halo bos..apa kabar ?')
21

>>> s.send('\n')
1

>>> s.send('sudah makan siang apa belum ?')
29

5. Jangan lupa menutup socket kalau sudah selesai 


>>> s.close()


6. Hasilnya pada aplikasi tcp terminal di smartphone saya seperti berikut ini : 





Pasti anda bertanya ? Kok langsung bisa kirim data padahal wifinya belum tersambung ? Ini dikarenakan ESP8266 saya sudah pernah melakukan sambungan dan sukses terhubung dengan router wifi dirumah. Lalu kalau belum bagaimana caranya ? Begini caranya jika ingin melakukan hubungan antara ESP8266 dengan access point atau wifi baru.





Script diatas akan melakukan scan terhadap wifi disektar ESP8266 dan akan menghasilkan tupple / list berupa data hasil scan, sehingga dengan perintah for diambil bagian pertama saja dari list ( net[0] ) untuk menampilkan nama hotspot hasil scan.

 
Sedangkan untuk konek ke wifinya seperti berikut :





Jadi sekali saja perlu dijalankan perintah atau script diatas, maka otomastis ESP8266 meningat koneksi terakhirnya.


Bagaimana kalau ESP8266 ingin menjadi servernya, dan siap dikirimi perintah untuk menghidupkan atau mematikan  LED ? Kalau yang seperti ini kita butuhkan python IDE Thonny.org, seperti yg saya gunakan digambar diatas biar lebih mudah mengetiknya.



import network
import socket
import time
from machine import Pin

wlan = network.WLAN(network.STA_IF)

conf=wlan.ifconfig()
print( 'IP : {}'.format(conf[0]))

led = Pin(2, Pin.OUT)
led.value(1) # active Low, matikan dulu

s = socket.socket()
s.bind(('', 8000))
s.listen(5)

while True:
  conn, addr = s.accept()
  print('Got a connection from %s' % str(addr))
  request = conn.recv(10).decode('UTF-8')
  print('Content = %s' % request)
  if request == 'ledon':
    print('LED ON')
    led.value(0)
    conn.send('LED telah dinyalakan\n')
    time.sleep(1)
  if request == 'ledoff':
    print('LED OFF')
    led.value(1)
    conn.send('LED telah dimatikan\n')
    time.sleep(1)
  conn.close()




Penjelasan :


  • Esp8266 micropython sebagai server, dan aplikasi smartphone TCP terminal sebagai client
  • Client akan mengirimkan text dan kemudian sesuai prinsip TCP / IP maka akan koneksi segera di close oleh server setelah selesai menerima data. Jadi butuh proses koneksi ulang jika mengirim perintah baru.
  • Jika ada data yg dikirim atau istilah TCP nya request, maka data yg masuk akan di bandingkan sesuai kondisi ledon atau ledoff



Share:

0 komentar:

Posting Komentar

Kontak Penulis



12179018.png (60×60)
+628155737755

Mail : ahocool@gmail.com

Site View

Categories

555 (8) 7 segmen (3) adc (4) amplifier (2) analog (19) android (12) antares (11) arduino (27) artikel (11) attiny (3) attiny2313 (19) audio (5) baterai (5) blog (1) bluetooth (1) chatgpt (2) cmos (2) crypto (2) dasar (46) digital (11) dimmer (5) display (3) esp8266 (26) euro2020 (13) gcc (1) gsm (1) iklan (1) infrared (2) Input Output (3) iot (74) jam (7) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (17) komputer (3) komunikasi (1) kontrol (8) lain-lain (8) lcd (2) led (14) led matrix (6) line tracer (1) lm35 (1) lora (11) lorawan (2) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (1) mikrokontroller (14) mikrotik (5) modbus (9) mqtt (3) ninmedia (5) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (88) pcb (2) power (1) praktek (2) project (33) proyek (1) python (8) radio (28) raspberry pi (9) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (2) sharing (3) signage (1) sinyal (1) sms (6) software (18) solar (1) solusi (1) tachometer (2) technology (1) teknologi (2) telegram (2) telepon (9) televisi (167) television (28) telkomiot (5) transistor (2) troubleshoot (3) tulisan (94) tutorial (108) tv digital (6) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3) yolo (7)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika