avatar_Bahri Bilir

Pic Web Server Sistem Mantığı?

Başlatan Bahri Bilir, 05 Kasım 2015, 22:41:02

Bahri Bilir

Arkadaşlar hepinize iyi akşamlar.
Bu aralar pic ile internette bir site yayınlamak ve siteye picden veri aktarımı sağlamaya çalışıyorum.Orta seviyede PHP-Jquery-C#-HTML5-Picbasic biliyorum.
Bilgisayardaki bir uygulamayı eş zamanlı olarak siteden kontrol ediyor,usb üzerinden siteden devre kontrol edebiliyorum.Ama siteyle iletişim konusunu bilgisayar üzerinden yapabiliyorum.
Hedefim ise bilgisayarı aradan çıkarıp direk site ile pici haberleştirmek.
Bu konuya daha önce girmiş ve CSS in kütüphaneleriyle basit bir hazır uygulama yapmıştım.Ama tamamen ezbere hazırcılığa dayalı basit bir çalışmaydı.
Şimdi ise pic ile site yayınlamak ve veri işleme işlemlerinin mantığını öğrenip picbasicle bir çalışma yapmak istiyorum.

Ve ilk olarak site pic web server olarak kullanmanın mantığını ( örneğin site dosyaları nerede nasıl saklanacak ? ) ve mümkünse picbasicle yapılmış çok basit bir örnek çalışma konusunda yardımlarınızı bekliyor şimdiden teşekkürediyorum.
"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

Burak

ESP8266'yı araştırıcaksın ... Daha pahalı modüllerde var tabi .. Yada microchip'in ethernet modül kontrol entegrelerini araştıracaksın ... ESP8266 endüstriyel olarakta kullanılabilecek çok güçlü ve güzel bir işlemci ... PIC'in içine HTML kodu gömüp istemciye göndermek çok basit .. HTML'de biliyomuşsun .. Geriye ESP8266'yı öğrenmek kalıyor .. Ben oturup çözdüm , kod paylaşımı yapmayacağım , ama kafana takılanlar konusunda herzaman ki gibi yardımcı olurum ..

Burak
Ω Gens Una Sumus Ω

Bahri Bilir

#2
Burak bey teşekkürler.
Yukardaki bahsettiğim basit çalışmamıda ENC28J60 ile yapmıştım.Bu entegrenin en temel görevi galiba etherneti uasrt a çevirmesi.
Yani bu entegreyle hserin ve hseroutla mı haberleşegiz? HTML pic içinde nasıl çalışacak nerede yer alacak,değişkenler nereye kaydedilecek...Benim asıl kafamı karıştıran bu noktalar?

Edit:ESP ile ENC yi karıştırmışım kusura bakmayın.
"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

Burak

#3
HSEROUT'lar ile tarayıcıya bildiğimiz HTML kodu göndereceksin .. Ben olay biraz daha güvenli portta gerçekleşsin diye TELNET(23) portunuda kullanmıştım .. Ama 80 veyahut 8080 portları ilede bildiğimiz PC HTML server'ı gibide kullanabilirsin bu işlemciyi .. AT komut setini iyi bilmen gerekiyor maalesef .. Ayrıca , modemden de port açma firewall'dan izin verme gibi işlemleride bilmen gerekiyor ..

Burak
Ω Gens Una Sumus Ω

Bahri Bilir

#4
Burak bey ESP At komutlarını Fırat Devecinin videosunda kullandığı programdan az çok biliyorum.Ve bir başka deneme çalışmamıda Fırat beyin videolarında esinlenerek ESP ile yaptım.Ama oradaki html gönderme kısmını o zamanda yapamamıştım.ESP ile ilk çalışmalarımda espyi pice bağlamadan bilgisayar usb to usart ile yapmıştım.Ve yine hazır kodlar kullanarak espnin içerisindeki entekreyi programlayıp entegre kullanmadan sadece esp, transistör ve role ile firmadaki ışığı yaydığı site üzerinden kontrol etmiştim.Ama malesef hepsi hazır farklı dillerdeki kod ve programlarla yapmıştım :( .Ve tek amaç işe bir yerden başlayıp işin içine girmekti.

Bu arada espnin içindeki entegre bicbasic ile programlanabilir mi?

Birde bu port açma meselesi var dediğiniz gibi.Bunu bildiğim tek yol olan modemin admin panelinden yapıyorum.Bu amatör için çözüm ama ortam değiştiğinde yine portun açılması gerekecek ki bu bilgisayarda yaptığım projelerde de kötü bir sıkıntı.
Bu işlemi pic üzerinden kodlarla tüm modemde port açabilecek bir kodlama yapılabilir mi?
Veya bu sorunun çözüm yöntemleri nelerdir?

Birde wifi değilde enc28j60 ile ethernet üzerinden CSS nin hazır kütüphanesiyle bi web server yapmıştım gerçek devreye dökmek nasip olmadı ama isis üzerinde port açarak çalıştırmıştım.ENC28J60 ın gerçek devrede ethernetten bağlandığı için port açımına ihtiyacı olmadığını öğrendim.

Ama çalışmalarım da esp üzerine yoğunlaşmayı düşünüyorum.Sonuçta wifinin bir çok projelerde çok avantajı olacak.

Diğer bir problemde wifi ağa bağlanacağı ağ ismi ve şifresini tüm modemlerde çalışabilmesi için izlenecek yol.
"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

Bahri Bilir

#5
Aslında hem port meselesinin hemde espnin bağlanacağı ağ sorununu projenin yanında medem vererek çözebiliriz...( veya enc28j60 ile wifi sunucu yapmak falan... ??? )

Ama bu maliyet için hoş olmaz heralde. (ESP 2 dolar,espnin çalışması için yanında 15 dolarlık modem :) )

Fikirlerinizi bekliyorum.
"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

Burak

Öncelikle ESP8266 WiFi işlemcisini yapılandırmada kullanılan birimi basit bir tabirle entegre olarak ifade edemeyiz , kendisi 32 bitlik çok güçlü bir işlemcidir .. Bu işlemci içerisinde gömülü bir bootloader parçası var ve farklı SDK'ları usart aracılığı ile yükleyip güncelleyebiliyorsun .. Dolayısıyla farklı AT komut setleri ve farklı fonksiyonlara erişim sağlayabiliyorsun ... Bu işlemciyi PicBasic ile felan programlayamazsın , çünkü bu işlemcinin üreticisi Microchip değil ... Ama bu işlemci ile 8'er bitlik parçalarla klasik UART seri iletişim yöntemiyle konuşabilirsin .. MCU kullanmadan ESP'yi kullanan modlardan birisi LUA firmware'i , LUA çok meşhur oldu , çünkü geliştiricileri açık kaynak kodla bunu dünyaya sundu , dolayısıyla hobistler ikinci bir MCU programlama derdinden kurtuldu gibi oldu .. Ama birşeyleri nereye kadar yapabilirsin ? Nereye kadar kontrol edebilirsin , ?? Elbette geliştiricinin geliştirdiği yere kadar ... Ama AT komut seti ile sen yönetmek istersen Robust bir sistem elde edebilirsin ... ESP8266 ile 4-5 aylık bir süre geçirdim , durmadan daha kurşun geçirmez bir sistem elde etmeye çalıştım ve sonunda ulaştığım nokta çok tatmin edici oldu ..

ESP ile internetteki Push Notification hizmeti veren , veyahut bir seranın sıcaklığını grafik arayüzde görmeyi sağlayan sunucu hizmetleri var  .. Bunlarla konuşmak asıl iş ... Ben aylarımı vererek çözdüm , çoğu zaman çıldırtıcı oldu  ... Umarım sende sabırlı bir adamsındır ... İşin kötü tarafı piyasada PBP için hazır bir kod yok .. O yüzden iş başa düşüyor ...

Port açma olaylarını maalesef her modemde manuel yapmaktan başka çare yok ... Dolayısıyla ESP'ye modem hack'lettirecek bir durum yok ...

Son soruna gelince , LCD arayüzünden modem SSID ve şifresini , Rotary Encoder tipi bir komponent kullanarak girmeyi sağlayabilirsin .. Ben bu şekilde yaptım ...

Şu ana kadar yapılmış ticari projelerim arasında , 6 adet seranın sıcaklıklarını grafik arayüzde tarayıcıda görüntüleyip , logger gibi çalıştırma , Kazan dairesindeki sıcaklık limitleri aşıldığında smartphone'a whatsapp türevi bir uygulama aracılığı ile push notification gönderme .. Evdeki aydınlatmaları , sıcaklık kontrolünü , kombinin kontrolünü , panjurların kontrolünü , evde birisinin olup olmadığını , sigorta ve kontaktör kontrollerini ESP8266 - NRF24L01 ikilisi ile yapan birçok sistem var ... Yani limit yok .. Gerisi senin sabrına ve hayal gücüne kalmış ...

Burak
Ω Gens Una Sumus Ω

Bahri Bilir

#7
Burak bey paylaştığınız net bilgiler için teşekkür ederim.

Bu kadar küçük bir parçanın bu kadar ucuz olması elektroniği 1-2 yıl içinde (özellikle orta seviye elektroniği) çok çok öteye taşıyacak. Gerçekten esp ile hayal gücünü bile zorlayacak ürünler ortaya koyulabilir.

Elimde şu an 1 tane esp var 4 ünü 1 ay önce denemelerde yaktım.Ve az önce 20 ESP ,5 ENC ,LM317(ESPnin 3,3 için) ebaydan sipariş verdim.
Bütün problemleriyle espyi ele alıp tüm ortamlarda çalışabilecek ve hem pic ile hemde kendi işlemcisiyle iyi derecede kullanabilecek şekilde espyi çok iyi kavramam gerekiyor.

ESP bundan sonra yakamızı bırakmaz.Projelerin %50-60 ında esp kullanacağız heralde.İnternet olduğu sürece zaten sınır yokta ,internetsiz bile olsa bilgisayardan kablosuz kontrol,aralarında kablosuz iletişim,telefonla kablosuz iletişim ....


"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

Burak

#8
ESP8266 akım gereksinimi çok yüksek bir komponent ... SSID ararken 250 ma civarlarında akım gerektiriyor , bu anlık peak akımını LM317 gibi ayarlı regülatörler sağlayamıyor , ve sağlayamadığı zaman ESP8266 çok yüksek bir akım moduna atliyor ... Projende ESP8266 chip'inin üzerinde bir sıcaklık sensörü kullanmak zorunda bile kalacaksın belkide kontrol altında tutmak için ... AMS1117 3.3V veya LM1117 3.3V gibi regülatörler kullanmak zorunda kalacaksın ... Senin yakma sebebin neydi bilmiyorum ama benim ilk günkü denememde bundan mütevellit ESP8266'ya zarar vermiştim .. Çünkü bir hotspot ağına bağlatmaya çalışıyordum .. Maalesef hotspot'ları ve bazı modemleri bile beğenmiyor bu modül .... O yüzden çok uğraşacaksın ... İnternet modemin olmadığı bir ortamda ESP8266 Ağ elementi olarak kullanılamaz bunuda aklında bulundur .. Yolun çok başındasın ... Allah kolaylık versin ..

Burak
Ω Gens Una Sumus Ω

Bahri Bilir

#9
Burak bey http://www.picproje.org/index.php/topic,55311.30.html linkteki konuda espnin internetsizde wifi üzerinden veri aktarılabileceğiz söylenmiş.

Alıntı: - "Yani:ethernet kullandığınız hemen hemen her yerde kablosuz iletişim sağlanabilir. Bilgisayardan da veri okur/gönderir, internet bağlantısı varsa internetten de. Hayal gücünüze bağlı."

Ve aynı sayfadan başka bir alıntı :- "Modülde softap özelliği var access point gibi davranabiliyor yani modülden modüle, bilgisayardan modüle direkt bağlantı yapılabilir."

Zaten mantıkende modül hem wifi yayabiliyor hemde aynı zamanda bağlanabiliyor.Bilgisayardan internet yokken wifi ağı yayılabiliyor.Bu ağa bağlandığında veri aktarımı sağlanabilir diye düşünüyorum.

Birde LM317 nin 1 amper narmalde ve soğutucuyla 1.5 amper verdiğini Ve LM1117 yide internette 800 mA olarak ulaştım. (malesef ingilizcem datasheeft okuyabilecek kadar iyi değil )

Birde Burak Bey espnin çektiği yüksek akımı kontrol etmek için 3.3 volta direnç kullanılması çözüm olmaz mı?
"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

Burak

#10
Station olarak değilde AP olarak kullanıldığında evet ama yinede aynı ağa bağlı oldukları gerçeğinden yola çıkmak gerek .. Ayrıca DSL bağlantısının olmadığı bir anda ve modem tarafından bir IP atanmış olsada nedense birden ısınmaya başlıyor ... Bunu bazen yapıyor bazende yapmıyor .. Sanki bootloader'da bir web sitesine bağlanmaya programlanmışta DSL bağlantısı olmadığı için sürekli bağlanmaya çalışarak yüksek bir güç tüketimi yapıyor .. Bu durum ESP-01 versiyonunda var , diğer modül türlerinde bu durum pek oluşmuyor nedense halbuki iç yapısı ve komponentler tamamen aynı ..

Besleme muhabbetine gelecek olursak .. Ben LM317 250 ma veremez demedim , ESP'nin ihtiyacı olduğu anda 'anında' bunu veremiyor dedim .. Hızlı bir gerilim düşmesine sebep oluyor LM317'lerde bu anlık akım ihtyacı .. Ama AMS1117 ve LM1117 bu konuda çok daha kaliteli regülatörler grubunda .. Bu arada .. AMS1117 3.3 ancak 5-7 v giriş geriliminde yanmadan kullanılabilir .. Aksi takdirde üzerinde kızılderili dumanını görürsün .. Yani 9V'la felan beslemeye kalkma .. Alacaksan AMS1117 5V ve AMS1117 ikilisini birlikte satın al .. Pic'in de 3.3V ta çalışması gerektiğini hatırlatayım .. Bu durumda LCD'yi nasıl süreceksin ? gerilim dönüştürücü entegreleri ile ..

Bir işlemcinin Drain-Drain girişine KATİYEN ! direnç bağlanmaz ! (Maksimum kaç amper akım gereksinimi olduğunu bilmiyorsak) ... Çünkü besleme girişi empedansı ile oynamak gibi bir hakkımız yok .. Üretici ne diyorsa o ..

Burak
Ω Gens Una Sumus Ω

Bahri Bilir

Burak Bey pici 3.3 ile süremek yerine MAX232 ile veya benzeri bir entegre ile sadece usartı 3.3 e düşürsek olmaz mı?

Yoksa dediğiniz gibi tüm parçalar 3.3 ile çalışmak zorunda ve her araya 3.3 to 5 yapmak zorunda kalırız.

Birde bilgisayardan ESP ile iletişim kurarken usart hatlarını 3.3 e düşürmeden direk girmiştim ve hiç bir sıkıntı yaşamamıştım.

Veya bu sefer araya direnç (100 ohm ??? ) koysak sıkıntı yaşamayız heralde ? :)

Birde espnin versiyonlarından bahsetmişsiniz bu versiyon sadece içindeki yazılıma ait değil mi? Yani yapısal olarak birebir aynılar?

"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

Burak

#12
Datasheet'teki ifadeler giriş ve çıkışların 5V'a tolere olduğunu ifade etmemiş , bu tür ifadelerin belirtilmediği entegreler için ben garanti olsun diye modül besleme voltajının 0.3 volt fazlasını uygularım her zaman girişlere , sadece önlem yani .... Ayrıca denemişsin , olmuşsa kullan ama ben taraftarı değilim , biraz garantici bir yapım var özellikle iletişim sistemlerinde .. Bunun başlıca nedenleri schmitt trigger tarzı girişlere sahip sistemlerde histeresiz voltajını giriş olarak ifade ettiğimiz pin'lerdeki kapasitans etkiden dolayı düşme ve yükselme zamanlarında oluşabilecek problemlere meydan vermemek içindir ve bunun gibi daha birçok sebep sıralanabilir ..

İlk ifadendeki dediğin gibide level shifting yapılabilir elbette neden olmasın , çokta mantıklı , zaten benim sistemimdede keza başka 3.3V'a duyarlı yapılar olsaydı bende dediğin gibi bir bağlantı biçimi kullanırdım ve en düşük maliyette bir tasarım elde ederdim ... Sistemde NRF24L01+ vardı fazladan o da zaten 5V ve 3.3 Volta uyumlu girişlere sahip olduğundan problem yapmadım .. 100 ohm olayına gelince , kullansanda kullanmasanda birşeyin değişeceği yok , çünkü input'ların giriş empedansları her daim çok yüksektir dolayısıyla 100 ohm devede kulak kalır ...

Son soruna gelicek olursak , ESP'nin farklı versiyonları var evet .. çünkü üzerindeki işlemciye ait bazı pinler ESP01'de atıl bırakılmış , LUA geliştiricileri (yani sen ben gibi MCU - ESP bağlantısı değilde PC-ESP bağlantısı ile işi çözen geliştiriciler) ADC ölçümleri yapma ihtiyacı duymuşlar, üzerinde 32 birtlik işlemcinin bu atıl bacaklarıda ileriki versiyonlarda farklı modül PCB tasarımı ile üzerinde o pinleride devreye almışlar .. Kimilerinde LNA var .. ki sinyal alıcı gücünü artırmak için korkunç önemli .. Ayrıca bazılarında da seramik anten eklentisi var ki iletişimci arkadaşlar bilirler PCB antene kıyasla neredeyse SMA kadar 3-5 DB civarlarından kazanç sağlamaktalar , yani senin anlayacağın sürekli internet bağlantısı adına yapılmış geliştirmeler mevcut ... Ama başlangıçta öğrencelik anlamda ESP01 ideal .. Tatmin etmezse ileriki veriyonlara geçiş yapabilrsin ..

Burak
Ω Gens Una Sumus Ω

Bahri Bilir

#13
Elimdeki tek esp ile diğerleri gelene kadar çalışmalar başladım.
Buda ilk çalışma:
https://www.youtube.com/watch?v=etvewXgAImw

Deneyde lua kodlarını Sublime Text ile düzenleyip değişiklikleri gözlemledim.Ve lua kodlarda türkçe kaynak çok sınırlı olmasına rağmen oldukça fazla ingilizce kaynak var.Özellikle github üzerinde.
En son esp gpo0 çıkışını 2n7000 mosfet ile araya direnç ve ters emk koruyucu kullanmadan direk 5 volt role sürdüm onunlada tabiki odanın ışığını :).
Ama dün işlemler sırasında lehim makinası arza çıkardı ve şalter attı.Şalteri açtığımda modem resetlediği için malesef espninde ipsi değişmişti.Tekrar ampülü tavandan söküp pcye bağlayıp "prinp(paydop)" gibi bir kodla ipyi öğrenmem gerekiyordu.Saat gece 3 olduğu için ve ip değişimleri son 3. blokta , 255 sayıdan biri olduğu için 3-5 şansımı denemek istedim ve tahmini rakamlar denedim 14. rakamda ip numarasını buldum :)
Evet ipnin değişmeside şu anda çözemediğim diğer bir problem.Ama ingilizce kaynaklar içinde "statik ip" (ingilizce) başlıklı bazı çalışmalar vardı biraz kafa yordum ama başaramadım.Ama anladığım kadarıyla çözülemez bir problem değil.

Ve yine usart pinlerinin direk bağladım.3.3 volt beslemesinide Burak Beyin önerisi üzerine LM1117T ile yaptım.Bakalım diğerleri gelene kadar şimdilik bu şekilde çalıştırmayı düşünüyorum.
"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

Burak

LUA bana göre değil , herşey benim kontrolümde olmalı dolayısıyla ben SDK 0.9.5 AT komut seti firmware'i ile mutluyum tabii bu kişiye göre değişir .. Endüstriyel projelerde TTNET'in statik IP hizmeti olmazsa olmaz .. Bunun dışında kendi evimde kullandığım sistem için şöyle bir yöntem izledim .. Evde kullanılmayan bir tableti IP takip edici olarak ücretsiz dns server hizmeti veren bir sistem için ayırdım .. Yani siz sizin belirlediğiniz bir web adresini kullanıyorsunuz o da nameserver'larını sürekli sizin evinizin public IP'sine yönlendiriyor .. Tabii bu takip işinide evde sürekli çalışmakta olan bir tablet ,içerisinde yüklü olan bir program aracılığı ile yapıyor .. Mesela ben modemiminde arayüzüne sürekli olarak dünyanın istediğim yerinden giriş yapıyorum .. Bunun için xx.xx.net şeklinde benim belirlediğim bir adresten giriyorum , bu adresin arkasındaki IP'yi güncelleyen sistem evimdeki IP tracker/updater yazılım ...

Yıllık çokta bir para değil statik IP , en azından bu sistemi öğrenene kadar abonelik alabilirsin ..

Burak
Ω Gens Una Sumus Ω

Powered by EzPortal